---
 lib/signond/SignOn/secure-storage-ui.h   |    4 +++-
 src/signond/credentialsaccessmanager.cpp |    9 +++++++++
 src/signond/credentialsaccessmanager.h   |    1 +
 src/signond/signonui_interface.cpp       |    3 +++
 src/signond/signonui_interface.h         |    1 +
 5 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/lib/signond/SignOn/secure-storage-ui.h 
b/lib/signond/SignOn/secure-storage-ui.h
index 3d99f4a..3a3be49 100644
--- a/lib/signond/SignOn/secure-storage-ui.h
+++ b/lib/signond/SignOn/secure-storage-ui.h
@@ -58,8 +58,10 @@ enum UiInteractionType
 */
 enum UiReplyType
 {
-    ClearPasswordsStorage,  /**< User decides to clear the passwords'
+    ClearPasswordsStorage = 0,  /**< User decides to clear the passwords'
                                storage. */
+    NoKeyPresentAccepted,       /**< User has accepted the notification about
+                                     unavailability of storage keys. */
     UiRejected,             /**< Ui closed by user. */
 };
 
diff --git a/src/signond/credentialsaccessmanager.cpp 
b/src/signond/credentialsaccessmanager.cpp
index 489c707..f837fbe 100644
--- a/src/signond/credentialsaccessmanager.cpp
+++ b/src/signond/credentialsaccessmanager.cpp
@@ -478,6 +478,9 @@ void CredentialsAccessManager::onKeyDisabled(const 
SignOn::Key key)
             }
 
             connect(m_secureStorageUiAdaptor,
+                    SIGNAL(noKeyPresentAccepted()),
+                    SLOT(onNoKeyPresentAccepted()));
+            connect(m_secureStorageUiAdaptor,
                     SIGNAL(uiClosed()),
                     SLOT(onSecureStorageUiClosed()));
             connect(m_secureStorageUiAdaptor,
@@ -648,6 +651,12 @@ QSet<SignOn::Key> 
CredentialsAccessManager::authorizedInsertedKeys() const
         intersect(authorizedKeys.toSet());
 }
 
+void CredentialsAccessManager::onNoKeyPresentAccepted()
+{
+    onSecureStorageUiClosed();
+    setCoreKeyAuthorizationMech(AuthorizedKeyRemovedFirst);
+}
+
 void CredentialsAccessManager::onClearPasswordsStorage()
 {
     if (insertedKeys.isEmpty()) {
diff --git a/src/signond/credentialsaccessmanager.h 
b/src/signond/credentialsaccessmanager.h
index fc326c8..5429c7b 100644
--- a/src/signond/credentialsaccessmanager.h
+++ b/src/signond/credentialsaccessmanager.h
@@ -316,6 +316,7 @@ private Q_SLOTS:
     void onKeyAuthorized(const SignOn::Key key, bool authorized);
     void onClearPasswordsStorage();
     void onSecureStorageUiClosed();
+    void onNoKeyPresentAccepted();
 
 protected:
     void customEvent(QEvent *event);
diff --git a/src/signond/signonui_interface.cpp 
b/src/signond/signonui_interface.cpp
index 4ec4186..8183d90 100644
--- a/src/signond/signonui_interface.cpp
+++ b/src/signond/signonui_interface.cpp
@@ -196,6 +196,9 @@ void 
SignonSecureStorageUiAdaptor::callFinished(QDBusPendingCallWatcher *call)
     }
 
     switch (replyType) {
+        case SignOn::NoKeyPresentAccepted:
+            emit noKeyPresentAccepted();
+            break;
         case SignOn::ClearPasswordsStorage:
             emit clearPasswordsStorage();
             break;
diff --git a/src/signond/signonui_interface.h b/src/signond/signonui_interface.h
index d90d83e..4e6c674 100644
--- a/src/signond/signonui_interface.h
+++ b/src/signond/signonui_interface.h
@@ -85,6 +85,7 @@ public:
     void closeUi();
 
 Q_SIGNALS:
+    void noKeyPresentAccepted();
     void clearPasswordsStorage();
     void uiClosed();
     void error();
-- 
1.6.3.3

_______________________________________________
MeeGo-dev mailing list
[email protected]
http://lists.meego.com/listinfo/meego-dev
http://wiki.meego.com/Mailing_list_guidelines

Reply via email to