diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbprogressdialog.cpp --- a/src/hbwidgets/popups/hbprogressdialog.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbprogressdialog.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -26,13 +26,14 @@ #include #include #include - #include #include #include #include #include - +#include +#include +#include /* \internal HbProgressDialogContentWidget class @@ -48,9 +49,9 @@ public: - QGraphicsItem *mIconItem; + QGraphicsObject *mIconItem; HbProgressBar *mProgressBar; - QGraphicsItem *mTextItem; + QGraphicsObject *mTextItem; HbProgressDialogPrivate *d; enum { Type = HbPrivate::ItemType_ProgressDialogContentWidget }; @@ -111,9 +112,9 @@ mContentWidget->mProgressBar->setRange(0,100); } - HbAction *action = new HbAction(hbTrId("txt_common_button_cancel"), q); - QObject::connect(action, SIGNAL(triggered()), q, SLOT(_q_userCancel())); - q->addAction(action); + mAction = new HbAction(hbTrId("txt_common_button_cancel"), q); + QObject::connect(mAction, SIGNAL(triggered()), q, SLOT(_q_userCancel())); + q->addAction(mAction); mMinDuration = 1500; mDelayTime = 1000; @@ -134,20 +135,19 @@ */ void HbProgressDialogPrivate::createPrimitives() { + Q_Q(HbProgressDialog); if( !mContentWidget->mProgressBar ){ mContentWidget->mProgressBar = new HbProgressBar(mContentWidget); HbStyle::setItemName(mContentWidget->mProgressBar, "pbar"); } if ( !mContentWidget->mTextItem ) { - mContentWidget->mTextItem = HbStylePrivate::createPrimitive(HbStylePrivate::P_ProgressDialog_text,mContentWidget); - HbStyle::setItemName(mContentWidget->mTextItem, "text"); + mContentWidget->mTextItem = q->style()->createPrimitive(HbStyle::PT_TextItem, "text", mContentWidget); } if ( !mIcon.isNull() ) { if ( !mContentWidget->mIconItem ) { - mContentWidget->mIconItem = HbStylePrivate::createPrimitive(HbStylePrivate::P_ProgressDialog_icon, mContentWidget); - HbStyle::setItemName(mContentWidget->mIconItem, "icon"); + mContentWidget->mIconItem = q->style()->createPrimitive(HbStyle::PT_IconItem, "icon", mContentWidget); } } else { if( mContentWidget->mIconItem ){ @@ -194,7 +194,8 @@ else if(flags.testFlag(HbProgressDialogPrivate::Closetimer)){ flags &= ~HbProgressDialogPrivate::Closetimer; if(flags.testFlag(HbProgressDialogPrivate::Closepending)){ - q->close(); + flags &= ~HbProgressDialogPrivate::Closepending; + q->close(); } } } @@ -207,8 +208,11 @@ void HbProgressDialogPrivate::_q_progressValueChanged(int value) { Q_Q(HbProgressDialog); - + if(value >= mContentWidget->mProgressBar->maximum() && !(q->autoClose())){ + mAction->setText(hbTrId("txt_common_button_close")); + } if(value >= mContentWidget->mProgressBar->maximum() && q->autoClose()){ + if(flags.testFlag(HbProgressDialogPrivate::Closetimer)){ flags |= HbProgressDialogPrivate::Closepending; flags &= ~HbProgressDialogPrivate::Showtimer; @@ -611,14 +615,30 @@ option->textAlignment = d->mAlign; } +void HbProgressDialog::initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive) +{ + HbWidgetBase::initPrimitiveData(primitiveData, primitive); + QString itemName = HbStyle::itemName(primitive); + if (itemName == QLatin1String("text")) { + HbStyleTextPrimitiveData *data = hbstyleprimitivedata_cast(primitiveData); + data->text = text(); + data->textWrapping = Hb::TextWordWrap; + } + + if (itemName == QLatin1String("icon")) { + HbStyleIconPrimitiveData *data = hbstyleprimitivedata_cast(primitiveData); + data->icon = icon(); + } +} + /*! \reimp */ void HbProgressDialog::showEvent(QShowEvent *event) { Q_D(HbProgressDialog); - d->mContentWidget->mProgressBar->show(); + d->mAction->setText(hbTrId("txt_common_button_cancel")); HbDialog::showEvent(event); } @@ -660,9 +680,9 @@ if(d->mContentWidget->mTextItem) { - HbStyleOptionProgressDialog progressDialogOption; - initStyleOption(&progressDialogOption); - HbStylePrivate::updatePrimitive(d->mContentWidget->mTextItem, HbStylePrivate::P_ProgressDialog_text, &progressDialogOption); + HbStyleTextPrimitiveData data; + initPrimitiveData(&data, d->mContentWidget->mTextItem); + style()->updatePrimitive(d->mContentWidget->mTextItem, &data, this); } } } @@ -698,10 +718,10 @@ if (d->mContentWidget->mIconItem) { d->mContentWidget->setProperty("icon",true); + HbStyleIconPrimitiveData data; + initPrimitiveData(&data, d->mContentWidget->mIconItem); + style()->updatePrimitive(d->mContentWidget->mIconItem, &data, this); - HbStyleOptionProgressDialog progressDialogOption; - initStyleOption(&progressDialogOption); - HbStylePrivate::updatePrimitive(d->mContentWidget->mIconItem, HbStylePrivate::P_ProgressDialog_icon, &progressDialogOption); } else { @@ -724,7 +744,42 @@ return d->mIcon; } - +/*! + updation of pri + */ +void HbProgressDialog::updatePrimitives() +{ + Q_D(HbProgressDialog); + HbDialog::updatePrimitives(); + if (d->mContentWidget->mIconItem) { + HbStyleIconPrimitiveData data; + initPrimitiveData(&data, d->mContentWidget->mIconItem); + style()->updatePrimitive(d->mContentWidget->mIconItem, &data, this); + } + + if (d->mContentWidget->mTextItem) { + HbStyleTextPrimitiveData data; + initPrimitiveData(&data, d->mContentWidget->mTextItem); + style()->updatePrimitive(d->mContentWidget->mTextItem, &data, this); + } +} +/*! + Recreaction of all the primitives. + */ +void HbProgressDialog::recreatePrimitives() +{ + Q_D(HbProgressDialog); + if (d->mContentWidget->mIconItem) { + delete d->mContentWidget->mIconItem; + d->mContentWidget->mIconItem = 0; + d->mContentWidget->mIconItem = style()->createPrimitive(HbStyle::PT_IconItem, "icon",d->mContentWidget); + } + if (d->mContentWidget->mTextItem) { + delete d->mContentWidget->mTextItem; + d->mContentWidget->mTextItem = 0; + d->mContentWidget->mTextItem = style()->createPrimitive(HbStyle::PT_TextItem, "text",d->mContentWidget); + } +} #include "moc_hbprogressdialog.cpp" #include "hbprogressdialog.moc"