Set invited and left rooms position in model

Invited rooms at the start, left rooms at the end, with the bonus effect
of fixing the roomList height problem.
This commit is contained in:
miruka 2019-04-21 16:53:16 -04:00
parent 677117983a
commit 424405e3e8
3 changed files with 15 additions and 3 deletions

View File

@ -197,7 +197,6 @@ class ListModel(QAbstractListModel):
if (n <= 0) or (from_ == to) or (qlast == to) or \ if (n <= 0) or (from_ == to) or (qlast == to) or \
not (self.rowCount() > qlast >= 0) or \ not (self.rowCount() > qlast >= 0) or \
not self.rowCount() >= to >= 0: not self.rowCount() >= to >= 0:
logging.warning("No need for move or out of range")
return return
qidx = QModelIndex() qidx = QModelIndex()

View File

@ -115,6 +115,14 @@ class SignalManager(QObject):
) )
model.updateOrAppendWhere("roomId", room_id, item) model.updateOrAppendWhere("roomId", room_id, item)
index = model.indexWhere("roomId", room_id)
if category == "Invites":
model.move(index, 0)
elif category == "Left":
model.move(index, len(model))
def onRoomSyncPrevBatchTokenReceived( def onRoomSyncPrevBatchTokenReceived(

View File

@ -8,9 +8,9 @@ ListView {
property int childrenHeight: 36 property int childrenHeight: 36
property int sectionHeight: 16 + spacing property int sectionHeight: 16 + spacing
property int contentHeight: 0 property int contentHeight: getContentHeight()
onCountChanged: { function getContentHeight() {
var sections = [] var sections = []
for (var i = 0; i < model.count; i++) { for (var i = 0; i < model.count; i++) {
@ -24,6 +24,11 @@ ListView {
sectionHeight * sections.length sectionHeight * sections.length
} }
Connections {
target: model
onChanged: getContentHeight()
}
id: roomList id: roomList
spacing: 8 spacing: 8
model: Backend.models.rooms.get(forUserId) model: Backend.models.rooms.get(forUserId)