2019-07-08 13:52:41 +10:00
|
|
|
// Copyright 2019 miruka
|
|
|
|
// This file is part of harmonyqml, licensed under LGPLv3.
|
|
|
|
|
2019-07-13 19:39:01 +10:00
|
|
|
import QtQuick 2.12
|
2019-07-03 03:59:52 +10:00
|
|
|
import SortFilterProxyModel 0.2
|
2019-04-29 05:18:36 +10:00
|
|
|
import "../../Base"
|
2019-03-22 14:28:14 +11:00
|
|
|
|
2019-05-12 07:51:00 +10:00
|
|
|
HRectangle {
|
2019-07-14 10:15:20 +10:00
|
|
|
property alias listView: eventList
|
2019-07-07 07:29:32 +10:00
|
|
|
|
2019-07-14 10:15:20 +10:00
|
|
|
color: theme.chat.eventList.background
|
2019-04-29 01:01:38 +10:00
|
|
|
|
2019-05-14 03:15:03 +10:00
|
|
|
HListView {
|
2019-07-14 10:15:20 +10:00
|
|
|
id: eventList
|
2019-05-03 05:01:25 +10:00
|
|
|
clip: true
|
2019-03-22 14:28:14 +11:00
|
|
|
|
2019-07-03 03:59:52 +10:00
|
|
|
model: HListModel {
|
2019-07-05 06:01:44 +10:00
|
|
|
sourceModel: timelines
|
2019-07-03 03:59:52 +10:00
|
|
|
|
|
|
|
filters: ValueFilter {
|
|
|
|
roleName: "roomId"
|
|
|
|
value: chatPage.roomId
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-07-03 12:29:09 +10:00
|
|
|
delegate: EventDelegate {}
|
2019-07-03 03:59:52 +10:00
|
|
|
|
2019-04-29 01:01:38 +10:00
|
|
|
anchors.fill: parent
|
2019-07-16 19:29:47 +10:00
|
|
|
anchors.leftMargin: theme.spacing
|
|
|
|
anchors.rightMargin: theme.spacing
|
2019-04-29 01:01:38 +10:00
|
|
|
|
2019-07-16 19:29:47 +10:00
|
|
|
topMargin: theme.spacing
|
|
|
|
bottomMargin: theme.spacing
|
2019-04-18 06:43:18 +10:00
|
|
|
verticalLayoutDirection: ListView.BottomToTop
|
2019-04-18 03:44:04 +10:00
|
|
|
|
|
|
|
// Keep x scroll pages cached, to limit images having to be
|
|
|
|
// reloaded from network.
|
2019-07-07 16:35:22 +10:00
|
|
|
cacheBuffer: height * 4
|
2019-04-18 04:27:22 +10:00
|
|
|
|
2019-07-05 16:45:30 +10:00
|
|
|
// Declaring this as "alias" provides the on... signal
|
2019-04-18 12:34:22 +10:00
|
|
|
property real yPos: visibleArea.yPosition
|
2019-07-05 16:45:30 +10:00
|
|
|
property bool canLoad: true
|
2019-07-05 09:49:55 +10:00
|
|
|
property int zz: 0
|
2019-07-05 16:45:30 +10:00
|
|
|
|
2019-04-18 12:34:22 +10:00
|
|
|
onYPosChanged: {
|
2019-07-05 16:45:30 +10:00
|
|
|
if (chatPage.category != "Invites" && canLoad && yPos <= 0.1) {
|
2019-07-05 09:49:55 +10:00
|
|
|
zz += 1
|
2019-07-05 16:45:30 +10:00
|
|
|
print(canLoad, zz)
|
2019-07-14 10:15:20 +10:00
|
|
|
eventList.canLoad = false
|
2019-07-05 16:45:30 +10:00
|
|
|
py.callClientCoro(
|
|
|
|
chatPage.userId,
|
|
|
|
"load_past_events",
|
|
|
|
[chatPage.roomId],
|
2019-07-14 10:15:20 +10:00
|
|
|
function(more_to_load) { eventList.canLoad = more_to_load }
|
2019-07-05 16:45:30 +10:00
|
|
|
)
|
2019-04-18 12:34:22 +10:00
|
|
|
}
|
2019-04-18 06:43:18 +10:00
|
|
|
}
|
2019-03-22 14:28:14 +11:00
|
|
|
}
|
2019-04-23 01:31:06 +10:00
|
|
|
|
2019-05-03 04:20:21 +10:00
|
|
|
HNoticePage {
|
2019-04-29 04:20:30 +10:00
|
|
|
text: qsTr("Nothing to show here yet...")
|
|
|
|
|
2019-07-14 10:15:20 +10:00
|
|
|
visible: eventList.model.count < 1
|
2019-05-03 04:20:21 +10:00
|
|
|
anchors.fill: parent
|
2019-04-23 01:31:06 +10:00
|
|
|
}
|
2019-03-22 14:28:14 +11:00
|
|
|
}
|