Somewhat better hierarchy.
Init separate .qml files.
This commit is contained in:
56
imports/Spectral/Panel/RoomPanel.qml
Normal file
56
imports/Spectral/Panel/RoomPanel.qml
Normal file
@@ -0,0 +1,56 @@
|
||||
import QtQuick 2.9
|
||||
|
||||
RoomPanelForm {
|
||||
roomHeader.onClicked: roomDrawer.open()
|
||||
roomHeader.image: spectralController.safeImage(currentRoom ? currentRoom.avatar : null)
|
||||
roomHeader.topic: currentRoom ? (currentRoom.topic).replace(/(\r\n\t|\n|\r\t)/gm,"") : ""
|
||||
|
||||
sortedMessageEventModel.onModelReset: {
|
||||
if (currentRoom)
|
||||
{
|
||||
var lastScrollPosition = sortedMessageEventModel.mapFromSource(currentRoom.savedTopVisibleIndex())
|
||||
if (lastScrollPosition === 0)
|
||||
messageListView.positionViewAtBeginning()
|
||||
else
|
||||
{
|
||||
console.log("Scrolling to position", lastScrollPosition)
|
||||
messageListView.currentIndex = lastScrollPosition
|
||||
}
|
||||
if (messageListView.contentY < messageListView.originY + 10 || currentRoom.timelineSize === 0)
|
||||
currentRoom.getPreviousContent(100)
|
||||
}
|
||||
console.log("Model timeline reset")
|
||||
}
|
||||
|
||||
messageListView {
|
||||
property int largestVisibleIndex: messageListView.count > 0 ? messageListView.indexAt(messageListView.contentX, messageListView.contentY + height - 1) : -1
|
||||
|
||||
onContentYChanged: {
|
||||
if(messageListView.verticalVelocity < 0 && messageListView.contentY - 5000 < messageListView.originY)
|
||||
currentRoom.getPreviousContent(50);
|
||||
}
|
||||
|
||||
onMovementEnded: {
|
||||
currentRoom.saveViewport(sortedMessageEventModel.mapToSource(messageListView.indexAt(messageListView.contentX, messageListView.contentY)), sortedMessageEventModel.mapToSource(largestVisibleIndex))
|
||||
var newReadMarker = sortedMessageEventModel.get(largestVisibleIndex).eventId
|
||||
if (newReadMarker) currentRoom.readMarkerEventId = newReadMarker
|
||||
}
|
||||
|
||||
displaced: Transition {
|
||||
NumberAnimation {
|
||||
property: "y"; duration: 200
|
||||
easing.type: Easing.OutQuad
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
goTopFab {
|
||||
onClicked: messageListView.positionViewAtBeginning()
|
||||
|
||||
Behavior on opacity { NumberAnimation { duration: 200 } }
|
||||
}
|
||||
|
||||
uploadButton.onClicked: currentRoom.chooseAndUploadFile()
|
||||
|
||||
emojiButton.onClicked: emojiPicker.visible ? emojiPicker.close() : emojiPicker.open()
|
||||
}
|
||||
Reference in New Issue
Block a user