diff -r f7ac710697a9 -r 06ff229162e9 src/hbcore/decorators/hbstatusbar.cpp --- a/src/hbcore/decorators/hbstatusbar.cpp Mon May 03 12:48:33 2010 +0300 +++ b/src/hbcore/decorators/hbstatusbar.cpp Fri May 14 16:09:54 2010 +0300 @@ -24,6 +24,7 @@ ****************************************************************************/ #include + #include #include #include @@ -35,6 +36,12 @@ #include "hbbatteryindicator_p.h" #include "hbindicatorgroup_p.h" +#if defined(Q_OS_SYMBIAN) +#include "hbindicatorsym_p.h" +#else +#include "hbindicatorwin32_p.h" +#endif // defined(Q_OS_SYMBIAN) + const int clockUpdateDelay = 10000; // 10 s /* @@ -53,10 +60,17 @@ mNotificationIndicatorGroup(0), mSettingsIndicatorGroup(0), mMainWindow(0), - mPreviousProperties(0) + mPreviousProperties(0), + mIndicatorPrivate(0) { } +HbStatusBarPrivate::~HbStatusBarPrivate() +{ + mIndicatorPrivate->stopListen(); + delete mIndicatorPrivate; +} + void HbStatusBarPrivate::delayedConstruction() { Q_Q(HbStatusBar); @@ -66,12 +80,31 @@ mNotificationIndicatorGroup->delayedConstruction(); mSettingsIndicatorGroup->delayedConstruction(); - q->connect(mNotificationIndicatorGroup, SIGNAL(notificationCountChanged(int)), - q, SIGNAL(notificationCountChanged(int))); - q->connect(mMainWindow, SIGNAL(currentViewChanged(HbView*)), q, SLOT(currentViewChanged(HbView*))); + q->connect(mIndicatorPrivate, SIGNAL(activated(const QList &)), + mNotificationIndicatorGroup, SLOT(activate(const QList &))); + q->connect(mIndicatorPrivate, SIGNAL(updated(const QList &)), + mNotificationIndicatorGroup, SLOT(update(const QList &))); + q->connect(mIndicatorPrivate, SIGNAL(allActivated(const QList &)), + mNotificationIndicatorGroup, SLOT(activateAll(const QList &))); + q->connect(mIndicatorPrivate, SIGNAL(deactivated(const QList &)), + mNotificationIndicatorGroup, SLOT(deactivate(const QList &))); + + q->connect(mIndicatorPrivate, SIGNAL(activated(const QList &)), + mSettingsIndicatorGroup, SLOT(activate(const QList &))); + q->connect(mIndicatorPrivate, SIGNAL(updated(const QList &)), + mSettingsIndicatorGroup, SLOT(update(const QList &))); + q->connect(mIndicatorPrivate, SIGNAL(allActivated(const QList &)), + mSettingsIndicatorGroup, SLOT(activateAll(const QList &))); + q->connect(mIndicatorPrivate, SIGNAL(deactivated(const QList &)), + mSettingsIndicatorGroup, SLOT(deactivate(const QList &))); + + q->connect(mIndicatorPrivate, SIGNAL(activated(const QList &)), + q, SIGNAL(activated(const QList &))); + q->connect(mIndicatorPrivate, SIGNAL(deactivated(const QList &)), + q, SIGNAL(deactivated(const QList &))); mClockTimerId = q->startTimer(clockUpdateDelay); - updateTime(); + mIndicatorPrivate->startListen(); } void HbStatusBarPrivate::init() @@ -90,6 +123,9 @@ mSettingsIndicatorGroup = new HbIndicatorGroup(HbIndicatorGroup::SettingsType, q); q->style()->setItemName(mSettingsIndicatorGroup, "settingsindicators"); + + mIndicatorPrivate = new HbIndicatorPrivate; + mIndicatorPrivate->init(); } void HbStatusBarPrivate::updateTime() @@ -164,6 +200,8 @@ d->mTimeTextItem = style()->createPrimitive(HbStyle::P_StatusBar_timetext, this); setBackgroundItem(HbStyle::P_StatusBar_background); + + d->updateTime(); } void HbStatusBar::updatePrimitives() @@ -217,3 +255,34 @@ } } +/*! + \reimp +*/ +QGraphicsItem *HbStatusBar::primitive(const QString &itemName) const +{ + const Q_D(HbStatusBar); + if (itemName == "") { + return 0; + } else { + if (itemName == "background") { + return this->backgroundItem(); + } + else if (itemName == "timetext") { + return d->mTimeTextItem; + } + else if (itemName == "signal") { + return d->mSignalIndicator; + } + else if (itemName == "battery") { + return d->mBatteryIndicator; + } + else if (itemName == "notificationindicators") { + return d->mNotificationIndicatorGroup; + } + else if (itemName == "settingsindicators") { + return d->mSettingsIndicatorGroup; + } else { + return 0; + } + } +}