Fix loading events when scrolling or opening a room for the first time

Fix #362


(cherry picked from commit bae7813f68)
This commit is contained in:
Carl Schwan
2021-05-23 18:24:55 +02:00
parent 1e047a8ff1
commit 1d3d61ed77
3 changed files with 30 additions and 12 deletions

View File

@@ -232,20 +232,17 @@ Kirigami.ScrollablePage {
model: !isLoaded ? undefined : sortedMessageEventModel
onContentYChanged: fetchMoreContent()
function fetchMoreContent() {
if(!noNeedMoreContent && contentY - 5000 < originY) {
currentRoom.getPreviousContent(20);
}
}
MessageEventModel {
id: messageEventModel
room: currentRoom
}
// HACK: The view should do this automatically but doesn't.
onAtYBeginningChanged: if (atYBeginning && messageEventModel.canFetchMore(messageEventModel.index(0, 0))) {
messageEventModel.fetchMore(messageEventModel.index(0, 0));
}
QQC2.Popup {
anchors.centerIn: parent
@@ -596,7 +593,11 @@ Kirigami.ScrollablePage {
DelegateChoice {
roleValue: "other"
delegate: Item {}
delegate: Rectangle {
height: 10
width: ListView.view.width
color: "red"
}
}
}
@@ -646,10 +647,10 @@ Kirigami.ScrollablePage {
}
Component.onCompleted: {
updateReadMarker()
if (currentRoom) {
if (currentRoom.timelineSize < 20)
currentRoom.getPreviousContent(50)
if (currentRoom.timelineSize < 20) {
currentRoom.getPreviousContent(50);
}
}
positionViewAtBeginning();