mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-28 07:22:50 -05:00
27
DMSShell.qml
27
DMSShell.qml
@@ -143,36 +143,13 @@ ShellRoot {
|
|||||||
active: false
|
active: false
|
||||||
|
|
||||||
property var modalRef: colorPickerModal
|
property var modalRef: colorPickerModal
|
||||||
|
property LazyLoader powerModalLoaderRef: powerMenuModalLoader
|
||||||
|
|
||||||
ControlCenterPopout {
|
ControlCenterPopout {
|
||||||
id: controlCenterPopout
|
id: controlCenterPopout
|
||||||
colorPickerModal: controlCenterLoader.modalRef
|
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: {
|
onLockRequested: {
|
||||||
lock.activate()
|
lock.activate()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,10 +6,9 @@ import qs.Widgets
|
|||||||
Rectangle {
|
Rectangle {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
property bool powerOptionsExpanded: false
|
|
||||||
property bool editMode: false
|
property bool editMode: false
|
||||||
|
|
||||||
signal powerActionRequested(string action, string title, string message)
|
signal powerButtonClicked()
|
||||||
signal lockRequested()
|
signal lockRequested()
|
||||||
signal editModeToggled()
|
signal editModeToggled()
|
||||||
|
|
||||||
@@ -83,13 +82,11 @@ Rectangle {
|
|||||||
|
|
||||||
DankActionButton {
|
DankActionButton {
|
||||||
buttonSize: 36
|
buttonSize: 36
|
||||||
iconName: root.powerOptionsExpanded ? "expand_less" : "power_settings_new"
|
iconName: "power_settings_new"
|
||||||
iconSize: Theme.iconSize - 4
|
iconSize: Theme.iconSize - 4
|
||||||
iconColor: root.powerOptionsExpanded ? Theme.primary : Theme.surfaceText
|
iconColor: Theme.surfaceText
|
||||||
backgroundColor: "transparent"
|
backgroundColor: "transparent"
|
||||||
onClicked: {
|
onClicked: root.powerButtonClicked()
|
||||||
root.powerOptionsExpanded = !root.powerOptionsExpanded
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DankActionButton {
|
DankActionButton {
|
||||||
|
|||||||
@@ -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?")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -21,13 +21,11 @@ DankPopout {
|
|||||||
id: root
|
id: root
|
||||||
|
|
||||||
property string expandedSection: ""
|
property string expandedSection: ""
|
||||||
property bool powerOptionsExpanded: false
|
|
||||||
property var triggerScreen: null
|
property var triggerScreen: null
|
||||||
property bool editMode: false
|
property bool editMode: false
|
||||||
property int expandedWidgetIndex: -1
|
property int expandedWidgetIndex: -1
|
||||||
property var expandedWidgetData: null
|
property var expandedWidgetData: null
|
||||||
|
|
||||||
signal powerActionRequested(string action, string title, string message)
|
|
||||||
signal lockRequested
|
signal lockRequested
|
||||||
|
|
||||||
function collapseAll() {
|
function collapseAll() {
|
||||||
@@ -122,28 +120,22 @@ DankPopout {
|
|||||||
HeaderPane {
|
HeaderPane {
|
||||||
id: headerPane
|
id: headerPane
|
||||||
width: parent.width
|
width: parent.width
|
||||||
powerOptionsExpanded: root.powerOptionsExpanded
|
|
||||||
editMode: root.editMode
|
editMode: root.editMode
|
||||||
onPowerOptionsExpandedChanged: root.powerOptionsExpanded = powerOptionsExpanded
|
|
||||||
onEditModeToggled: root.editMode = !root.editMode
|
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: {
|
onLockRequested: {
|
||||||
root.close()
|
root.close()
|
||||||
root.lockRequested()
|
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 {
|
DragDropGrid {
|
||||||
id: widgetGrid
|
id: widgetGrid
|
||||||
width: parent.width
|
width: parent.width
|
||||||
@@ -226,4 +218,5 @@ DankPopout {
|
|||||||
}
|
}
|
||||||
|
|
||||||
property var colorPickerModal: null
|
property var colorPickerModal: null
|
||||||
|
property var powerMenuModalLoader: null
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user