diff -r 16d8024aca5e -r f7ac710697a9 src/hbcore/decorators/hbstatusbar.cpp --- 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(); } }