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:
@@ -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()
|
||||||
|
@@ -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(
|
||||||
|
@@ -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)
|
||||||
|
Reference in New Issue
Block a user