homescreenapp/widgetplugins/hsclockwidgetplugin/src/hsclockwidget.cpp
changeset 85 35368b604b28
parent 61 2b1b11a301d2
child 86 e4f038c420f7
--- a/homescreenapp/widgetplugins/hsclockwidgetplugin/src/hsclockwidget.cpp	Wed Aug 18 09:40:07 2010 +0300
+++ b/homescreenapp/widgetplugins/hsclockwidgetplugin/src/hsclockwidget.cpp	Thu Sep 02 20:17:27 2010 +0300
@@ -19,6 +19,7 @@
 #include <QGraphicsLinearLayout>
 
 #include "hsclockwidget.h"
+#include "hsclockwidgettimer.h"
 #include "hsanalogclockwidget.h"
 #include "hsdigitalclockwidget.h"
 
@@ -56,7 +57,6 @@
   : HbWidget(parent, flags),
     mWidget(0),
     mLayout(0),
-    mTimer(0),
     mClockType(ANALOG),
     mTimeType(TIME12)
 {
@@ -90,9 +90,7 @@
     mLayout = new QGraphicsLinearLayout(Qt::Vertical);
     mLayout->setContentsMargins(0, 0, 0, 0);
     mWidget = loadClockWidget();
-    mLayout->addItem(mWidget);   
-    mTimer = new QTimer(this);
-    connect(mTimer, SIGNAL(timeout()), SLOT(updateTime()));
+    mLayout->addItem(mWidget);           
     setLayout(mLayout);
 #ifdef Q_OS_SYMBIAN  
     connect(mClockSettingsNotifier, SIGNAL(settingsChanged(QString, QString)), this, SLOT(onSettingsChanged(QString, QString)));
@@ -105,7 +103,11 @@
 */
 void HsClockWidget::onShow()
 {    
-    mTimer->start(clockUpdateInterval);
+    HsClockWidgetTimer::instance();
+    connect(HsClockWidgetTimer::instance(), 
+        SIGNAL(tick()), 
+        SLOT(updateTime()), 
+        Qt::UniqueConnection);
 }
 
 
@@ -114,7 +116,7 @@
 */
 void HsClockWidget::onHide()
 {
-    mTimer->stop();
+    HsClockWidgetTimer::instance()->disconnect(this);
 }
 
 /*!
@@ -122,7 +124,7 @@
 */
 void HsClockWidget::onUninitialize()
 {
-    mTimer->stop();
+    HsClockWidgetTimer::instance()->disconnect(this);
 }
 
 /*!