From bbb0bc309233bb4341c3ec4e1604a2a8ca827603 Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Sat, 11 Nov 2023 18:29:23 +0100 Subject: [PATCH] Improve and fix powerlevels dialog --- src/qml/PowerLevelDialog.qml | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/src/qml/PowerLevelDialog.qml b/src/qml/PowerLevelDialog.qml index 3894b8e5a..c25be7702 100644 --- a/src/qml/PowerLevelDialog.qml +++ b/src/qml/PowerLevelDialog.qml @@ -6,46 +6,56 @@ import QtQuick.Controls as QQC2 import QtQuick.Layouts import org.kde.kirigami as Kirigami +import org.kde.kirigamiaddons.formcard as FormCard import org.kde.neochat -Kirigami.OverlaySheet { +Kirigami.Dialog { id: root - title: i18n("Edit user power level") + title: i18nc("@title", "Edit User Power Level") property NeoChatRoom room property var userId property int powerLevel + width: Kirigami.Units.gridUnit * 24 + + standardButtons: QQC2.Dialog.NoButton + onOpened: { - if (sheetOpen) { + if (root.opened) { powerLevelComboBox.currentIndex = powerLevelComboBox.indexOfValue(root.powerLevel) } } - Kirigami.FormLayout { - QQC2.ComboBox { + + FormCard.FormCard { + FormCard.FormComboBoxDelegate { id: powerLevelComboBox + + text: i18n("New power level") model: ListModel { id: powerLevelModel } textRole: "text" 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. Component.onCompleted: { - powerLevelModel.append({"text": i18n("Member (0)"), "powerLevel": 0}); - powerLevelModel.append({"text": i18n("Moderator (50)"), "powerLevel": 50}); - powerLevelModel.append({"text": i18n("Admin (100)"), "powerLevel": 100}); + powerLevelModel.append({"text": i18n("Member (0)"), "powerLevel": 0}); + powerLevelModel.append({"text": i18n("Moderator (50)"), "powerLevel": 50}); + powerLevelModel.append({"text": i18n("Admin (100)"), "powerLevel": 100}); } } - QQC2.Button { + } + customFooterActions: [ + Kirigami.Action { text: i18n("Confirm") - onClicked: { - room.setUserPowerLevel(root.userId, powerLevelComboBox.currentValue) + icon.name: "dialog-ok" + onTriggered: { + root.room.setUserPowerLevel(root.userId, powerLevelComboBox.currentValue) root.close() root.destroy() } } - } + ] }