PowerLevelControl: add error and warning texts
This commit is contained in:
parent
757679a6e0
commit
7277b5d198
13
TODO.md
13
TODO.md
|
@ -1,15 +1,12 @@
|
||||||
# TODO
|
# TODO
|
||||||
|
|
||||||
- fix reply bar height
|
|
||||||
- don't trust PowerLevelsEvent, may be old
|
- don't trust PowerLevelsEvent, may be old
|
||||||
|
- fix button layout
|
||||||
|
- improve power levels event text
|
||||||
|
|
||||||
|
- fix reply bar height
|
||||||
- joining new DM, not loading past events?
|
- joining new DM, not loading past events?
|
||||||
- HLabeledItem disabled opacity
|
- fix HLabeledItem disabled opacity
|
||||||
- cancel setPowerLevel future on Cancel button click
|
|
||||||
- enter to trigger apply button
|
|
||||||
- destroy setPowerLevel future on Component.onDestruction
|
|
||||||
- warn about setting level of someone to 100
|
|
||||||
- gray out if no permission to change
|
|
||||||
- improve event text
|
|
||||||
|
|
||||||
- save and restore status in accounts.json
|
- save and restore status in accounts.json
|
||||||
- mark accounts as offline when closing mirage
|
- mark accounts as offline when closing mirage
|
||||||
|
|
|
@ -11,9 +11,8 @@ AutoDirectionLayout {
|
||||||
|
|
||||||
readonly property alias changed: field.changed
|
readonly property alias changed: field.changed
|
||||||
|
|
||||||
readonly property int level:
|
readonly property int uncappedLevel: parseInt(field.text || "0", 10)
|
||||||
Math.min(maximumLevel, parseInt(field.text || "0", 10))
|
readonly property int level: Math.min(maximumLevel, uncappedLevel)
|
||||||
|
|
||||||
readonly property alias fieldFocused: field.activeFocus
|
readonly property alias fieldFocused: field.activeFocus
|
||||||
|
|
||||||
readonly property bool fieldOverMaximum:
|
readonly property bool fieldOverMaximum:
|
||||||
|
@ -35,7 +34,7 @@ AutoDirectionLayout {
|
||||||
horizontalAlignment: Qt.AlignHCenter
|
horizontalAlignment: Qt.AlignHCenter
|
||||||
validator: IntValidator { top: root.maximumLevel }
|
validator: IntValidator { top: root.maximumLevel }
|
||||||
inputMethodHints: Qt.ImhFormattedNumbersOnly
|
inputMethodHints: Qt.ImhFormattedNumbersOnly
|
||||||
maximumLength: root.level < 0 ? 16 : String(root.maximumLevel).length
|
maximumLength: root.level < 0 ? 16 : 3
|
||||||
defaultText: String(root.defaultLevel)
|
defaultText: String(root.defaultLevel)
|
||||||
error: root.fieldOverMaximum
|
error: root.fieldOverMaximum
|
||||||
|
|
||||||
|
@ -59,7 +58,7 @@ AutoDirectionLayout {
|
||||||
height: parent.height
|
height: parent.height
|
||||||
icon.name: "user-power-default"
|
icon.name: "user-power-default"
|
||||||
toolTip.text: qsTr("Limited")
|
toolTip.text: qsTr("Limited")
|
||||||
checked: root.level < 50
|
checked: root.uncappedLevel < 50
|
||||||
uncheckable: false
|
uncheckable: false
|
||||||
onClicked: field.text = 0
|
onClicked: field.text = 0
|
||||||
}
|
}
|
||||||
|
@ -68,7 +67,7 @@ AutoDirectionLayout {
|
||||||
height: parent.height
|
height: parent.height
|
||||||
icon.name: "user-power-50"
|
icon.name: "user-power-50"
|
||||||
toolTip.text: qsTr("Moderator")
|
toolTip.text: qsTr("Moderator")
|
||||||
checked: root.level >= 50 && root.level < 100
|
checked: root.uncappedLevel >= 50 && root.uncappedLevel < 100
|
||||||
uncheckable: false
|
uncheckable: false
|
||||||
onClicked: field.text = 50
|
onClicked: field.text = 50
|
||||||
}
|
}
|
||||||
|
@ -77,7 +76,7 @@ AutoDirectionLayout {
|
||||||
height: parent.height
|
height: parent.height
|
||||||
icon.name: "user-power-100"
|
icon.name: "user-power-100"
|
||||||
toolTip.text: qsTr("Admin")
|
toolTip.text: qsTr("Admin")
|
||||||
checked: root.level >= 100
|
checked: root.uncappedLevel >= 100
|
||||||
uncheckable: false
|
uncheckable: false
|
||||||
onClicked: field.text = 100
|
onClicked: field.text = 100
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,6 +169,35 @@ HListView {
|
||||||
label.text: qsTr("Power level:")
|
label.text: qsTr("Power level:")
|
||||||
label.horizontalAlignment: Qt.AlignHCenter
|
label.horizontalAlignment: Qt.AlignHCenter
|
||||||
|
|
||||||
|
errorLabel.horizontalAlignment: Qt.AlignHCenter
|
||||||
|
errorLabel.text:
|
||||||
|
! item.changed ?
|
||||||
|
"" :
|
||||||
|
|
||||||
|
item.fieldOverMaximum && root.userId === member.id ?
|
||||||
|
qsTr("Can't set your own level higher") :
|
||||||
|
|
||||||
|
item.fieldOverMaximum ?
|
||||||
|
qsTr("Can't set level higher than your own") :
|
||||||
|
|
||||||
|
item.uncappedLevel === root.ownPowerLevel ?
|
||||||
|
qsTr("You won't be able to demote this user") :
|
||||||
|
|
||||||
|
item.uncappedLevel <
|
||||||
|
root.ownPowerLevel && root.userId === member.id ?
|
||||||
|
qsTr("You won't be able to regain power") :
|
||||||
|
|
||||||
|
""
|
||||||
|
|
||||||
|
errorLabel.color:
|
||||||
|
item.uncappedLevel === root.ownPowerLevel ||
|
||||||
|
(
|
||||||
|
item.uncappedLevel <
|
||||||
|
root.ownPowerLevel && root.userId === member.id
|
||||||
|
) ?
|
||||||
|
theme.colors.warningText :
|
||||||
|
theme.colors.errorText
|
||||||
|
|
||||||
Layout.preferredWidth: parent.width
|
Layout.preferredWidth: parent.width
|
||||||
|
|
||||||
PowerLevelControl {
|
PowerLevelControl {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user