config/modules/home/services/quickshell/qml/Widgets/Lockscreen/PowerButtons.qml

87 lines
2.5 KiB
QML
Raw Normal View History

2025-07-22 20:21:21 -04:00
import QtQuick
import "root:/Data" as Data
// Reboot and shutdown buttons positioned at bottom right
Row {
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.margins: 40
spacing: 16
required property bool isVisible
signal rebootRequested()
signal shutdownRequested()
// Fade in with delay
opacity: isVisible ? 1.0 : 0.0
Behavior on opacity {
SequentialAnimation {
PauseAnimation { duration: 900 } // Wait for most elements to appear
NumberAnimation {
duration: 500
easing.type: Easing.OutCubic
}
}
}
// Reboot button
Rectangle {
width: 45
height: 45
radius: 22
color: rebootMouseArea.containsMouse ? Data.ThemeManager.withOpacity(Data.ThemeManager.secondaryText, 0.3) : Data.ThemeManager.withOpacity(Data.ThemeManager.secondaryText, 0.2)
border.color: Data.ThemeManager.withOpacity(Data.ThemeManager.secondaryText, 0.6)
border.width: 1
Text {
anchors.centerIn: parent
text: "restart_alt"
font.family: "Material Symbols Outlined"
font.pixelSize: 20
color: Data.ThemeManager.secondaryText
}
MouseArea {
id: rebootMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: rebootRequested()
}
Behavior on color {
ColorAnimation { duration: 200 }
}
}
// Shutdown button
Rectangle {
width: 45
height: 45
radius: 22
color: shutdownMouseArea.containsMouse ? Data.ThemeManager.withOpacity(Data.ThemeManager.secondaryText, 0.3) : Data.ThemeManager.withOpacity(Data.ThemeManager.secondaryText, 0.2)
border.color: Data.ThemeManager.withOpacity(Data.ThemeManager.secondaryText, 0.6)
border.width: 1
Text {
anchors.centerIn: parent
text: "power_settings_new"
font.family: "Material Symbols Outlined"
font.pixelSize: 18
color: Data.ThemeManager.secondaryText
}
MouseArea {
id: shutdownMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: shutdownRequested()
}
Behavior on color {
ColorAnimation { duration: 200 }
}
}
}