Improve and fix powerlevels dialog

This commit is contained in:
Tobias Fella
2023-11-11 18:29:23 +01:00
parent 4065aa6a2e
commit bbb0bc3092

View File

@@ -6,46 +6,56 @@ import QtQuick.Controls as QQC2
import QtQuick.Layouts import QtQuick.Layouts
import org.kde.kirigami as Kirigami import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.formcard as FormCard
import org.kde.neochat import org.kde.neochat
Kirigami.OverlaySheet { Kirigami.Dialog {
id: root id: root
title: i18n("Edit user power level") title: i18nc("@title", "Edit User Power Level")
property NeoChatRoom room property NeoChatRoom room
property var userId property var userId
property int powerLevel property int powerLevel
width: Kirigami.Units.gridUnit * 24
standardButtons: QQC2.Dialog.NoButton
onOpened: { onOpened: {
if (sheetOpen) { if (root.opened) {
powerLevelComboBox.currentIndex = powerLevelComboBox.indexOfValue(root.powerLevel) powerLevelComboBox.currentIndex = powerLevelComboBox.indexOfValue(root.powerLevel)
} }
} }
Kirigami.FormLayout {
QQC2.ComboBox { FormCard.FormCard {
FormCard.FormComboBoxDelegate {
id: powerLevelComboBox id: powerLevelComboBox
text: i18n("New power level")
model: ListModel { model: ListModel {
id: powerLevelModel id: powerLevelModel
} }
textRole: "text" textRole: "text"
valueRole: "powerLevel" valueRole: "powerLevel"
popup.z: root.z + 1 // Otherwise the popup will be behind the overlay sheet.
// Done this way so we can have translated strings. // Done this way so we can have translated strings.
Component.onCompleted: { Component.onCompleted: {
powerLevelModel.append({"text": i18n("Member (0)"), "powerLevel": 0}); powerLevelModel.append({"text": i18n("Member (0)"), "powerLevel": 0});
powerLevelModel.append({"text": i18n("Moderator (50)"), "powerLevel": 50}); powerLevelModel.append({"text": i18n("Moderator (50)"), "powerLevel": 50});
powerLevelModel.append({"text": i18n("Admin (100)"), "powerLevel": 100}); powerLevelModel.append({"text": i18n("Admin (100)"), "powerLevel": 100});
} }
} }
QQC2.Button { }
customFooterActions: [
Kirigami.Action {
text: i18n("Confirm") text: i18n("Confirm")
onClicked: { icon.name: "dialog-ok"
room.setUserPowerLevel(root.userId, powerLevelComboBox.currentValue) onTriggered: {
root.room.setUserPowerLevel(root.userId, powerLevelComboBox.currentValue)
root.close() root.close()
root.destroy() root.destroy()
} }
} }
} ]
} }