Update userlistmodel permission roles

Change the userlist model so that permission names are based upon the following power level convention:
- 0: member
- 50: moderator
- 100: admin
- other: custom

This is inline with the new permission room page. Follow on from network/neochat!712
This commit is contained in:
James Graham
2023-01-12 19:13:20 +00:00
parent 5f2cd92da7
commit 28b5631d06
4 changed files with 33 additions and 92 deletions

View File

@@ -291,7 +291,8 @@ Kirigami.OverlayDrawer {
room: roomDrawer.room
}
sortRole: "perm"
sortRole: "powerLevel"
sortOrder: Qt.DescendingOrder
filterRole: "name"
filterCaseSensitivity: Qt.CaseInsensitive
}
@@ -325,22 +326,9 @@ Kirigami.OverlayDrawer {
}
trailing: QQC2.Label {
visible: perm != UserType.Member
visible: powerLevel > 0
text: {
switch (perm) {
case UserType.Owner:
return i18n("Owner");
case UserType.Admin:
return i18n("Admin");
case UserType.Moderator:
return i18n("Mod");
case UserType.Muted:
return i18n("Muted");
default:
return "";
}
}
text: powerLevelString
color: Kirigami.Theme.disabledTextColor
textFormat: Text.PlainText
wrapMode: Text.NoWrap

View File

@@ -44,10 +44,11 @@ Kirigami.ScrollablePage {
Repeater {
model: KSortFilterProxyModel {
sourceModel: userListModel
sortRole: "perm"
sortRole: "powerLevel"
sortOrder: Qt.DescendingOrder
filterRowCallback: function(source_row, source_parent) {
let permRole = sourceModel.data(sourceModel.index(source_row, 0, source_parent), Qt.UserRole + 5)
return permRole != UserType.Muted && permRole != UserType.Member;
let powerLevelRole = sourceModel.data(sourceModel.index(source_row, 0, source_parent), Qt.UserRole + 5)
return powerLevelRole > 0;
}
}
delegate: MobileForm.FormTextDelegate {
@@ -57,22 +58,7 @@ Kirigami.ScrollablePage {
spacing: Kirigami.Units.largeSpacing
QQC2.Label {
visible: !room.canSendState("m.room.power_levels")
text: {
switch (perm) {
case UserType.Owner:
return i18n("Owner");
case UserType.Admin:
return i18n("Admin");
case UserType.Moderator:
return i18n("Mod");
case UserType.Muted:
return i18n("Muted");
case UserType.Member:
return i18n("Member");
default:
return ""
}
}
text: powerLevelString
color: Kirigami.Theme.disabledTextColor
}
QQC2.ComboBox {
@@ -191,22 +177,9 @@ Kirigami.ScrollablePage {
}
trailing: QQC2.Label {
visible: perm != UserType.Member
visible: powerLevel > 0
text: {
switch (perm) {
case UserType.Owner:
return i18n("Owner");
case UserType.Admin:
return i18n("Admin");
case UserType.Moderator:
return i18n("Mod");
case UserType.Muted:
return i18n("Muted");
default:
return "";
}
}
text: powerLevelString
color: Kirigami.Theme.disabledTextColor
textFormat: Text.PlainText
wrapMode: Text.NoWrap