From 052e477392e0415a21f5d5cc696078fce825d462 Mon Sep 17 00:00:00 2001 From: reionwong Date: Tue, 27 Jul 2021 22:55:24 +0800 Subject: [PATCH] ShutdownUI: Support lock screen --- shutdown-ui/actions.cpp | 7 +++++++ shutdown-ui/actions.h | 1 + shutdown-ui/icons/system-lock-screen.svg | 8 ++++++++ shutdown-ui/icons/system-log-out.svg | 21 ++++++--------------- shutdown-ui/icons/system-reboot.svg | 15 +++++---------- shutdown-ui/icons/system-shutdown.svg | 21 ++++++--------------- shutdown-ui/icons/system-suspend.svg | 18 +++++++----------- shutdown-ui/main.qml | 8 ++++++++ shutdown-ui/qml.qrc | 1 + 9 files changed, 49 insertions(+), 51 deletions(-) create mode 100755 shutdown-ui/icons/system-lock-screen.svg diff --git a/shutdown-ui/actions.cpp b/shutdown-ui/actions.cpp index fcb8752..91c22b5 100644 --- a/shutdown-ui/actions.cpp +++ b/shutdown-ui/actions.cpp @@ -21,6 +21,7 @@ #include #include #include +#include const static QString s_dbusName = "org.cutefish.Session"; const static QString s_pathName = "/Session"; @@ -56,6 +57,12 @@ void Actions::reboot() } } +void Actions::lockScreen() +{ + QProcess::startDetached("cutefish-screenlocker", QStringList()); + qApp->exit(0); +} + void Actions::suspend() { QDBusInterface iface(s_dbusName, s_pathName, s_interfaceName, QDBusConnection::sessionBus()); diff --git a/shutdown-ui/actions.h b/shutdown-ui/actions.h index e19b511..a63f3c3 100644 --- a/shutdown-ui/actions.h +++ b/shutdown-ui/actions.h @@ -32,6 +32,7 @@ public: Q_INVOKABLE void shutdown(); Q_INVOKABLE void logout(); Q_INVOKABLE void reboot(); + Q_INVOKABLE void lockScreen(); Q_INVOKABLE void suspend(); }; diff --git a/shutdown-ui/icons/system-lock-screen.svg b/shutdown-ui/icons/system-lock-screen.svg new file mode 100755 index 0000000..8eac56d --- /dev/null +++ b/shutdown-ui/icons/system-lock-screen.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/shutdown-ui/icons/system-log-out.svg b/shutdown-ui/icons/system-log-out.svg index 21aec54..dc42ba6 100644 --- a/shutdown-ui/icons/system-log-out.svg +++ b/shutdown-ui/icons/system-log-out.svg @@ -1,17 +1,8 @@ - - - + + diff --git a/shutdown-ui/icons/system-reboot.svg b/shutdown-ui/icons/system-reboot.svg index ee34451..6dca162 100644 --- a/shutdown-ui/icons/system-reboot.svg +++ b/shutdown-ui/icons/system-reboot.svg @@ -1,13 +1,8 @@ - - + + diff --git a/shutdown-ui/icons/system-shutdown.svg b/shutdown-ui/icons/system-shutdown.svg index 4b1ed8e..d116ed7 100644 --- a/shutdown-ui/icons/system-shutdown.svg +++ b/shutdown-ui/icons/system-shutdown.svg @@ -1,17 +1,8 @@ - - - + + diff --git a/shutdown-ui/icons/system-suspend.svg b/shutdown-ui/icons/system-suspend.svg index da7813e..c9145c8 100644 --- a/shutdown-ui/icons/system-suspend.svg +++ b/shutdown-ui/icons/system-suspend.svg @@ -1,13 +1,9 @@ - - + + + + diff --git a/shutdown-ui/main.qml b/shutdown-ui/main.qml index 285ad2e..e2d4b2d 100644 --- a/shutdown-ui/main.qml +++ b/shutdown-ui/main.qml @@ -92,6 +92,14 @@ ApplicationWindow { onClicked: actions.logout() } + IconButton { + id: lockscreenButton + Layout.alignment: Qt.AlignVCenter + text: qsTr("Lock screen") + icon: "qrc:/icons/system-lock-screen.svg" + onClicked: actions.lockScreen() + } + IconButton { id: suspendButton Layout.alignment: Qt.AlignVCenter diff --git a/shutdown-ui/qml.qrc b/shutdown-ui/qml.qrc index cc8a8cd..391d9ce 100644 --- a/shutdown-ui/qml.qrc +++ b/shutdown-ui/qml.qrc @@ -6,5 +6,6 @@ icons/system-shutdown.svg icons/system-suspend.svg IconButton.qml + icons/system-lock-screen.svg