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

openSUSE Build Service is sponsored by