From 04ea742830408c7e68d2ea2a657c0e38b5d82b0d Mon Sep 17 00:00:00 2001 From: bbedward Date: Fri, 3 Oct 2025 17:14:43 -0400 Subject: [PATCH] Reapply "Always use power menu modal" This reverts commit 5a5c860cef8bc90827d00fb195e823417d25d411. --- DMSShell.qml | 27 +------ .../ControlCenter/Components/HeaderPane.qml | 11 ++- .../Components/PowerOptionsPane.qml | 70 ------------------- Modules/ControlCenter/ControlCenterPopout.qml | 25 +++---- 4 files changed, 15 insertions(+), 118 deletions(-) delete mode 100644 Modules/ControlCenter/Components/PowerOptionsPane.qml diff --git a/DMSShell.qml b/DMSShell.qml index 79d89250..d9ed7864 100644 --- a/DMSShell.qml +++ b/DMSShell.qml @@ -143,36 +143,13 @@ ShellRoot { active: false property var modalRef: colorPickerModal + property LazyLoader powerModalLoaderRef: powerMenuModalLoader ControlCenterPopout { id: controlCenterPopout colorPickerModal: controlCenterLoader.modalRef + powerMenuModalLoader: controlCenterLoader.powerModalLoaderRef - onPowerActionRequested: (action, title, message) => { - powerConfirmModalLoader.active = true - if (powerConfirmModalLoader.item) { - powerConfirmModalLoader.item.confirmButtonColor = action === "poweroff" ? Theme.error : action === "reboot" ? Theme.warning : Theme.primary - powerConfirmModalLoader.item.show(title, message, function () { - switch (action) { - case "logout": - SessionService.logout() - break - case "suspend": - SessionService.suspend() - break - case "hibernate": - SessionService.hibernate() - break - case "reboot": - SessionService.reboot() - break - case "poweroff": - SessionService.poweroff() - break - } - }, function () {}) - } - } onLockRequested: { lock.activate() } diff --git a/Modules/ControlCenter/Components/HeaderPane.qml b/Modules/ControlCenter/Components/HeaderPane.qml index 62f48d2d..5a919f73 100644 --- a/Modules/ControlCenter/Components/HeaderPane.qml +++ b/Modules/ControlCenter/Components/HeaderPane.qml @@ -6,10 +6,9 @@ import qs.Widgets Rectangle { id: root - property bool powerOptionsExpanded: false property bool editMode: false - signal powerActionRequested(string action, string title, string message) + signal powerButtonClicked() signal lockRequested() signal editModeToggled() @@ -83,13 +82,11 @@ Rectangle { DankActionButton { buttonSize: 36 - iconName: root.powerOptionsExpanded ? "expand_less" : "power_settings_new" + iconName: "power_settings_new" iconSize: Theme.iconSize - 4 - iconColor: root.powerOptionsExpanded ? Theme.primary : Theme.surfaceText + iconColor: Theme.surfaceText backgroundColor: "transparent" - onClicked: { - root.powerOptionsExpanded = !root.powerOptionsExpanded - } + onClicked: root.powerButtonClicked() } DankActionButton { diff --git a/Modules/ControlCenter/Components/PowerOptionsPane.qml b/Modules/ControlCenter/Components/PowerOptionsPane.qml deleted file mode 100644 index 06ac8990..00000000 --- a/Modules/ControlCenter/Components/PowerOptionsPane.qml +++ /dev/null @@ -1,70 +0,0 @@ -import QtQuick -import qs.Common -import qs.Services -import qs.Widgets - -Item { - id: root - - property bool expanded: false - - signal powerActionRequested(string action, string title, string message) - - implicitHeight: expanded ? 60 : 0 - height: implicitHeight - clip: true - - Rectangle { - width: parent.width - height: 60 - radius: Theme.cornerRadius - color: Theme.surfaceContainerHigh - border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, - Theme.outline.b, 0.08) - border.width: root.expanded ? 1 : 0 - opacity: root.expanded ? 1 : 0 - clip: true - - Row { - anchors.centerIn: parent - spacing: SessionService.hibernateSupported ? Theme.spacingS : Theme.spacingL - visible: root.expanded - - PowerButton { - width: SessionService.hibernateSupported ? 85 : 100 - iconName: "logout" - text: "Logout" - onPressed: root.powerActionRequested("logout", "Logout", "Are you sure you want to logout?") - } - - PowerButton { - width: SessionService.hibernateSupported ? 85 : 100 - iconName: "restart_alt" - text: "Restart" - onPressed: root.powerActionRequested("reboot", "Restart", "Are you sure you want to restart?") - } - - PowerButton { - width: SessionService.hibernateSupported ? 85 : 100 - iconName: "bedtime" - text: "Suspend" - onPressed: root.powerActionRequested("suspend", "Suspend", "Are you sure you want to suspend?") - } - - PowerButton { - width: SessionService.hibernateSupported ? 85 : 100 - iconName: "ac_unit" - text: "Hibernate" - visible: SessionService.hibernateSupported - onPressed: root.powerActionRequested("hibernate", "Hibernate", "Are you sure you want to hibernate?") - } - - PowerButton { - width: SessionService.hibernateSupported ? 85 : 100 - iconName: "power_settings_new" - text: "Shutdown" - onPressed: root.powerActionRequested("poweroff", "Shutdown", "Are you sure you want to shutdown?") - } - } - } -} \ No newline at end of file diff --git a/Modules/ControlCenter/ControlCenterPopout.qml b/Modules/ControlCenter/ControlCenterPopout.qml index 63fc27e9..6de41227 100644 --- a/Modules/ControlCenter/ControlCenterPopout.qml +++ b/Modules/ControlCenter/ControlCenterPopout.qml @@ -21,13 +21,11 @@ DankPopout { id: root property string expandedSection: "" - property bool powerOptionsExpanded: false property var triggerScreen: null property bool editMode: false property int expandedWidgetIndex: -1 property var expandedWidgetData: null - signal powerActionRequested(string action, string title, string message) signal lockRequested function collapseAll() { @@ -122,28 +120,22 @@ DankPopout { HeaderPane { id: headerPane width: parent.width - powerOptionsExpanded: root.powerOptionsExpanded editMode: root.editMode - onPowerOptionsExpandedChanged: root.powerOptionsExpanded = powerOptionsExpanded onEditModeToggled: root.editMode = !root.editMode - onPowerActionRequested: (action, title, message) => root.powerActionRequested(action, title, message) + onPowerButtonClicked: { + if (powerMenuModalLoader) { + powerMenuModalLoader.active = true + if (powerMenuModalLoader.item) { + powerMenuModalLoader.item.open() + } + } + } onLockRequested: { root.close() root.lockRequested() } } - PowerOptionsPane { - id: powerOptionsPane - width: parent.width - expanded: root.powerOptionsExpanded - onPowerActionRequested: (action, title, message) => { - root.powerOptionsExpanded = false - root.close() - root.powerActionRequested(action, title, message) - } - } - DragDropGrid { id: widgetGrid width: parent.width @@ -226,4 +218,5 @@ DankPopout { } property var colorPickerModal: null + property var powerMenuModalLoader: null } \ No newline at end of file