Files
illogical-impulse/dots/.config/quickshell/ii/modules/waffle/sessionScreen/SessionScreenContent.qml
T

140 lines
3.8 KiB
QML

import qs
import qs.services
import qs.modules.common
import qs.modules.common.widgets
import qs.modules.common.functions
import qs.modules.waffle.looks
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell
Item {
id: root
Component.onCompleted: {
lockButton.forceActiveFocus();
}
ColumnLayout {
anchors.centerIn: parent
spacing: 4
WSessionScreenTextButton {
id: lockButton
focus: true
text: Translation.tr("Lock")
onClicked: {
GlobalStates.sessionOpen = false;
Session.lock();
}
KeyNavigation.up: powerButton
KeyNavigation.down: signOutButton
}
WSessionScreenTextButton {
id: signOutButton
focus: true
text: Translation.tr("Sign out")
onClicked: {
GlobalStates.sessionOpen = false;
Session.logout();
}
KeyNavigation.up: lockButton
KeyNavigation.down: changePasswordButton
}
WSessionScreenTextButton {
id: changePasswordButton
focus: true
text: Translation.tr("Change password")
onClicked: {
GlobalStates.sessionOpen = false;
Session.changePassword();
}
KeyNavigation.up: signOutButton
KeyNavigation.down: taskManagerButton
}
WSessionScreenTextButton {
id: taskManagerButton
focus: true
text: Translation.tr("Task Manager")
onClicked: {
GlobalStates.sessionOpen = false;
Session.launchTaskManager();
}
KeyNavigation.up: signOutButton
KeyNavigation.down: cancelButton
}
CancelButton {
id: cancelButton
Layout.fillWidth: true
Layout.leftMargin: 5
Layout.rightMargin: 5
Layout.topMargin: 38
onClicked: GlobalStates.sessionOpen = false
KeyNavigation.up: taskManagerButton
KeyNavigation.down: powerButton
}
}
RowLayout {
anchors {
bottom: parent.bottom
right: parent.right
bottomMargin: 21
rightMargin: 31
}
PowerButton {
id: powerButton
KeyNavigation.up: cancelButton
KeyNavigation.down: lockButton
}
}
component CancelButton: WBorderlessButton {
id: root
implicitHeight: 32
colBackground: Looks.darkColors.bg1Base
colBackgroundHover: Qt.lighter(Looks.darkColors.bg1Base, 1.2)
colBackgroundActive: Qt.lighter(Looks.darkColors.bg1Base, 1.1)
colForeground: Looks.darkColors.fg
property bool keyboardDown: false
Keys.onPressed: event => {
if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
keyboardDown = true;
event.accepted = true;
}
}
Keys.onReleased: event => {
if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
keyboardDown = false;
root.clicked();
event.accepted = true;
}
}
contentItem: WText {
text: Translation.tr("Cancel")
horizontalAlignment: Text.AlignHCenter
font.pixelSize: Looks.font.pixelSize.large
color: root.colForeground
}
Rectangle {
visible: cancelButton.focus
anchors {
fill: parent
margins: -3
}
radius: cancelButton.background.radius + 4
color: "transparent"
border.width: 2
border.color: "#ffffff"
}
}
}