59 lines
1.6 KiB
QML
59 lines
1.6 KiB
QML
import QtQuick 2.7
|
|
import SortFilterProxyModel 0.2
|
|
import "Base"
|
|
|
|
QtObject {
|
|
property HListModel accounts: HListModel {
|
|
sorters: StringSorter {
|
|
roleName: "userId"
|
|
numericMode: true // human numeric sort
|
|
}
|
|
}
|
|
|
|
property HListModel users: HListModel {
|
|
function getUser(user_id) {
|
|
var found = users.getWhere({"userId": user_id}, 1)
|
|
if (found.length > 0) { return found[0] }
|
|
|
|
users.append({
|
|
"userId": user_id,
|
|
"displayName": "",
|
|
"avatarUrl": "",
|
|
"statusMessage": ""
|
|
})
|
|
|
|
py.callCoro("request_user_update_event", [user_id])
|
|
|
|
return users.getWhere({"userId": user_id}, 1)[0]
|
|
}
|
|
}
|
|
|
|
property HListModel devices: HListModel {}
|
|
|
|
property HListModel roomCategories: HListModel {
|
|
sorters: FilterSorter {
|
|
ValueFilter { roleName: "name"; value: "Invites" }
|
|
ValueFilter { roleName: "name"; value: "Rooms" }
|
|
ValueFilter { roleName: "name"; value: "Left" }
|
|
}
|
|
}
|
|
|
|
property HListModel rooms: HListModel {}
|
|
|
|
property HListModel timelines: HListModel {
|
|
function lastEventOf(room_id) {
|
|
// Return an event item or undefined if none found
|
|
|
|
for (var i = 0; i < timelines.count; i++) {
|
|
var item = timelines.get(i) // TODO: standardize
|
|
if (item.roomId == room_id) { return item }
|
|
}
|
|
}
|
|
|
|
sorters: RoleSorter {
|
|
roleName: "date"
|
|
sortOrder: Qt.DescendingOrder
|
|
}
|
|
}
|
|
}
|