File 0001-introduce-a-locked-property-for-the-qml-lock-screen.patch of Package kdebase4-workspace.openSUSE_13.1_Update
From f3a6a90213694373ce9f0510db5d94c12435de1c Mon Sep 17 00:00:00 2001
From: Aaron Seigo <aseigo@kde.org>
Date: Fri, 22 Nov 2013 09:59:49 +0100
Subject: [PATCH 1/1] introduce a 'locked' property for the qml lock screen
if password locking is turned off, this lets the locker not show a
password unlocker (e.g.)
if password locking is on but there is a grace period, then the
property gets set once the grace period times out and the locker
can show the unlock UI
---
ksmserver/screenlocker/greeter/greeterapp.cpp | 21 +++++++++++++++++++++
ksmserver/screenlocker/greeter/greeterapp.h | 1 +
.../org.kde.passworddialog/contents/ui/main.qml | 2 ++
3 files changed, 24 insertions(+)
diff --git a/ksmserver/screenlocker/greeter/greeterapp.cpp b/ksmserver/screenlocker/greeter/greeterapp.cpp
index bf33945..e4d933d 100644
--- a/ksmserver/screenlocker/greeter/greeterapp.cpp
+++ b/ksmserver/screenlocker/greeter/greeterapp.cpp
@@ -162,6 +162,19 @@ void UnlockApp::desktopResized()
connect(view->rootObject(), SIGNAL(unlockRequested()), SLOT(quit()));
+ QDeclarativeProperty lockProperty(view->rootObject(), "locked");
+ KScreenSaverSettings::lockGrace();
+ if (KScreenSaverSettings::lock()) {
+ if (KScreenSaverSettings::lockGrace() < 1) {
+ lockProperty.write(true);
+ } else {
+ QTimer::singleShot(KScreenSaverSettings::lockGrace(),
+ this, SLOT(setLockedPropertyOnViews()));
+ }
+ } else{
+ lockProperty.write(false);
+ }
+
QDeclarativeProperty sleepProperty(view->rootObject(), "suspendToRamSupported");
sleepProperty.write(spdMethods.contains(Solid::PowerManagement::SuspendState));
if (spdMethods.contains(Solid::PowerManagement::SuspendState) &&
@@ -226,6 +239,14 @@ void UnlockApp::getFocus()
}
}
+void UnlockApp::setLockedPropertyOnViews()
+{
+ foreach (QDeclarativeView *view, m_views) {
+ QDeclarativeProperty lockProperty(view->rootObject(), "locked");
+ lockProperty.write(true);
+ }
+}
+
void UnlockApp::resetRequestIgnore()
{
m_ignoreRequests = false;
diff --git a/ksmserver/screenlocker/greeter/greeterapp.h b/ksmserver/screenlocker/greeter/greeterapp.h
index 951b1e3..8dbcff4 100644
--- a/ksmserver/screenlocker/greeter/greeterapp.h
+++ b/ksmserver/screenlocker/greeter/greeterapp.h
@@ -57,6 +57,7 @@ private Q_SLOTS:
void suspendToDisk();
void shutdown();
void getFocus();
+ void setLockedPropertyOnViews();
private:
void initialize();
diff --git a/ksmserver/screenlocker/greeter/themes/org.kde.passworddialog/contents/ui/main.qml b/ksmserver/screenlocker/greeter/themes/org.kde.passworddialog/contents/ui/main.qml
index 1e08367..0d3c7d5 100644
--- a/ksmserver/screenlocker/greeter/themes/org.kde.passworddialog/contents/ui/main.qml
+++ b/ksmserver/screenlocker/greeter/themes/org.kde.passworddialog/contents/ui/main.qml
@@ -27,6 +27,7 @@ Item {
id: lockScreen
signal unlockRequested()
property alias capsLockOn: unlockUI.capsLockOn
+ property bool locked: false
PlasmaCore.Theme {
id: theme
@@ -48,6 +49,7 @@ Item {
PlasmaCore.FrameSvgItem {
id: dialog
+ visible: lockScreen.locked
anchors.centerIn: parent
imagePath: "widgets/background"
width: mainStack.currentPage.implicitWidth + margins.left + margins.right
--
1.8.4.3