Disable settings when user doesnt have enough power level

This commit is contained in:
Black Hat
2020-01-01 15:11:04 +08:00
parent 5a154eab04
commit 7c60459e1f
4 changed files with 124 additions and 29 deletions

View File

@@ -9,6 +9,11 @@ import Spectral.Setting 0.1
Dialog {
property var room
readonly property bool canChangeAvatar: room.canSendState("m.room.avatar")
readonly property bool canChangeName: room.canSendState("m.room.name")
readonly property bool canChangeTopic: room.canSendState("m.room.topic")
readonly property bool canChangeCanonicalAlias: room.canSendState("m.room.canonical_alias")
anchors.centerIn: parent
width: 480
@@ -36,6 +41,8 @@ Dialog {
circular: true
enabled: canChangeAvatar
onClicked: {
var fileDialog = openFileDialog.createObject(ApplicationWindow.overlay)
@@ -61,6 +68,8 @@ Dialog {
text: room.name
placeholderText: "Room Name"
enabled: canChangeName
}
AutoTextField {
@@ -70,6 +79,8 @@ Dialog {
text: room.topic
placeholderText: "Room Topic"
enabled: canChangeTopic
}
}
}
@@ -179,6 +190,8 @@ Dialog {
Button {
Layout.alignment: Qt.AlignRight
visible: canChangeName || canChangeTopic
text: "Save"
highlighted: true
@@ -216,6 +229,8 @@ Dialog {
id: canonicalAliasComboBox
enabled: canChangeCanonicalAlias
model: room.remoteAliases
currentIndex: room.remoteAliases.indexOf(room.canonicalAlias)
@@ -275,6 +290,42 @@ Dialog {
}
}
}
RowLayout {
Layout.fillWidth: true
Label {
Layout.preferredWidth: 100
Layout.alignment: Qt.AlignTop
wrapMode: Label.Wrap
text: "Remote Aliases"
color: MPalette.lighter
}
ColumnLayout {
Layout.fillWidth: true
spacing: 0
Repeater {
model: {
var localAliases = room.localAliases
var remoteAliases = room.remoteAliases
return remoteAliases.filter(n => !localAliases.includes(n))
}
delegate: Label {
width: parent.width
text: modelData
font.pixelSize: 12
color: MPalette.lighter
}
}
}
}
}
}