screensaver/snsrplugins/snsrbigclockscreensaverplugin/src/snsrbigclockscreensaver.cpp
changeset 98 e6f74eb7f69f
parent 97 66b5fe3c07fd
--- a/screensaver/snsrplugins/snsrbigclockscreensaverplugin/src/snsrbigclockscreensaver.cpp	Wed Oct 06 16:06:24 2010 +0300
+++ b/screensaver/snsrplugins/snsrbigclockscreensaverplugin/src/snsrbigclockscreensaver.cpp	Mon Oct 18 10:20:15 2010 +0300
@@ -18,9 +18,9 @@
 #include "snsrbigclockscreensaver.h"
 
 #ifdef Q_OS_SYMBIAN
-#include <e32std.h>
 #include <XQSettingsManager> 
 #include <screensaverdomaincrkeys.h>
+#include <clockdomaincrkeys.h>
 #endif // Q_OS_SYMBIAN
 
 #include <QDebug>
@@ -57,6 +57,9 @@
     // This model holds indicator status information and must exist as
     // long as screensaver does.
     mIndicatorModel = new SnsrIndicatorModel(this);
+    
+    // connect timer for time updates
+    connect( &mTimer, SIGNAL(timeout()), SLOT(updateTime()) );
 }
 
 /*!
@@ -117,12 +120,12 @@
     // Check ScreensaverStatus from repository
     XQSettingsManager::Error error;
     XQCentralRepositorySettingsKey settingsKey(
-            KCRUidScreensaverSettings.iUid, KScreensaverStatus ); // TUid as same repository used in control panel via Symbian APIs 
+            KCRUidValueScreensaverSettings, KScreensaverStatus ); 
     XQSettingsManager setManager;
     int screensaverOn = setManager.readItemValue(settingsKey, XQSettingsManager::TypeInt).toInt();
     error = setManager.error();
     if (error != XQSettingsManager::NoError) {
-        qDebug("Error reading value from XQSettingsManager.. error = %d", error);
+        qDebug("Error reading screensaver status from XQSettingsManager.. error = %d", error);
     }
 #else
     int screensaverOn = 1;
@@ -298,11 +301,16 @@
 SnsrBigClockScreensaver::ClockFormat SnsrBigClockScreensaver::clockFormat()
 {
 #ifdef Q_OS_SYMBIAN
-    if (TLocale().ClockFormat() == EClockAnalog) {
-        return ClockFormatAnalog;
-    } else {
-        return ClockFormatDigital;
+    XQSettingsManager::Error error;
+    XQCentralRepositorySettingsKey settingsKey(
+        KCRUidClockApp, KClockType ); 
+    XQSettingsManager setManager;
+    int useDigital = setManager.readItemValue(settingsKey, XQSettingsManager::TypeInt).toInt();
+    error = setManager.error();
+    if (error != XQSettingsManager::NoError) {
+        qDebug("Error reading clock format from XQSettingsManager.. error = %d", error);
     }
+    return ( useDigital ? ClockFormatDigital : ClockFormatAnalog );
 #else
     // windows build - change the format every 30 seconds for testing purposes
     if (QTime::currentTime().second() < 30) {
@@ -316,13 +324,6 @@
 void SnsrBigClockScreensaver::removeCurrentContainer()
 {
     if ( mCurrentContainer ) {
-        disconnect(
-            &mTimer, SIGNAL(timeout()),
-            this, SLOT(updateTime())
-            );
-        disconnect( 
-            mCurrentContainer, SIGNAL(unlockRequested()), 
-            this, SIGNAL(unlockRequested()) );
         if (mTimer.timerId()!= -1) {
             mTimer.stop();
         }
@@ -337,7 +338,6 @@
 {
     mCurrentContainer = newContainer;
     mCurrentContainer->setParent(this);
-    connect( &mTimer, SIGNAL(timeout()), SLOT(updateTime()) );
     connect( mCurrentContainer, SIGNAL(unlockRequested()), SIGNAL(unlockRequested()) );
     
     mCurrentContainer->setIndicatorModel(*mIndicatorModel);