src/hbcore/decorators/hbstatusbar.cpp
changeset 1 f7ac710697a9
parent 0 16d8024aca5e
child 2 06ff229162e9
--- a/src/hbcore/decorators/hbstatusbar.cpp	Mon Apr 19 14:02:13 2010 +0300
+++ b/src/hbcore/decorators/hbstatusbar.cpp	Mon May 03 12:48:33 2010 +0300
@@ -46,7 +46,7 @@
  */
 
 HbStatusBarPrivate::HbStatusBarPrivate() : 
-    mTimeText(0),
+    mTimeText(),
     mTimeTextItem(0),
     mSignalIndicator(0),
     mBatteryIndicator(0),
@@ -57,6 +57,23 @@
 {
 }
 
+void HbStatusBarPrivate::delayedConstruction()
+{
+    Q_Q(HbStatusBar);
+
+    mSignalIndicator->delayedConstruction();
+    mBatteryIndicator->delayedConstruction();
+    mNotificationIndicatorGroup->delayedConstruction();
+    mSettingsIndicatorGroup->delayedConstruction();
+
+    q->connect(mNotificationIndicatorGroup, SIGNAL(notificationCountChanged(int)), 
+        q, SIGNAL(notificationCountChanged(int)));
+    q->connect(mMainWindow, SIGNAL(currentViewChanged(HbView*)), q, SLOT(currentViewChanged(HbView*)));
+
+    mClockTimerId = q->startTimer(clockUpdateDelay);
+	updateTime();
+}
+
 void HbStatusBarPrivate::init()
 {
     Q_Q(HbStatusBar);
@@ -70,21 +87,14 @@
 
     mNotificationIndicatorGroup = new HbIndicatorGroup(HbIndicatorGroup::NotificationType, q);
     q->style()->setItemName(mNotificationIndicatorGroup, "notificationindicators");
-    q->connect(mNotificationIndicatorGroup, SIGNAL(notificationCountChanged(int)), 
-        q, SIGNAL(notificationCountChanged(int)));
 
     mSettingsIndicatorGroup = new HbIndicatorGroup(HbIndicatorGroup::SettingsType, q);
     q->style()->setItemName(mSettingsIndicatorGroup, "settingsindicators");
-
-	mClockTimerId = q->startTimer(clockUpdateDelay);
-
-    q->connect(mMainWindow, SIGNAL(currentViewChanged(HbView*)), q, SLOT(currentViewChanged(HbView*)));
-
-	updateTime();
 }
 
 void HbStatusBarPrivate::updateTime()
 {
+    Q_Q(HbStatusBar);
 	// use QLocale to find out whether there is am/pm info
     QString timeFormat(QLocale().timeFormat(QLocale::ShortFormat));
 
@@ -100,6 +110,8 @@
 
     // set time, using a proper formatting
     mTimeText = current.toString(timeFormat);
+
+    q->updatePrimitives();
 }
 
 /*
@@ -129,6 +141,15 @@
     }
 }
 
+/*
+    Delayed constructor.
+ */
+void HbStatusBar::delayedConstruction()
+{
+   Q_D(HbStatusBar);
+   d->delayedConstruction();
+}
+
 void HbStatusBar::propertiesChanged()
 {
     Q_D(HbStatusBar);
@@ -193,7 +214,6 @@
     Q_D(HbStatusBar);
     if (event->timerId() == d->mClockTimerId) {
         d->updateTime(); // get current time
-		updatePrimitives();
 	}
 }