diff -r 4633027730f5 -r e6ad4ef83b23 src/hbwidgets/popups/hbmessagebox.cpp --- a/src/hbwidgets/popups/hbmessagebox.cpp Wed Aug 18 10:05:37 2010 +0300 +++ b/src/hbwidgets/popups/hbmessagebox.cpp Thu Sep 02 20:44:51 2010 +0300 @@ -39,6 +39,8 @@ #include #include #include +#include +#include #ifdef Q_OS_SYMBIAN #include @@ -50,12 +52,11 @@ { Q_OBJECT public: - HbLabel *mTextEdit; HbMessageBoxWidget(QGraphicsItem* parent =0):HbLabel(parent){ setTextWrapping(Hb::TextWordWrap); } HbMessageBoxWidget(const QString& text, QGraphicsItem *parent=0):HbLabel(text, parent){ - HbStyle::setItemName(this, "text"); + HbStyle::setItemName(this, "text"); } }; class HbMessageBoxScrollArea : public HbScrollArea @@ -85,17 +86,16 @@ Q_OBJECT public: HbMessageBoxPrivate *d; - QGraphicsItem *mIconItem; + QGraphicsObject *mIconItem; HbMessageBoxScrollArea *mScrollArea; HbMessageBoxContentWidget(HbMessageBoxPrivate *priv, QGraphicsItem* parent =0) : HbWidget(parent),d(priv),mIconItem(0),mScrollArea(0) { mScrollArea = new HbMessageBoxScrollArea(this); - mIconItem = HbStylePrivate::createPrimitive(HbStylePrivate::P_MessageBox_icon, this); + mIconItem = style()->createPrimitive(HbStyle::PT_IconItem, "icon", this); setProperty("hasIcon",true); HbStyle::setItemName(mScrollArea, "scrollArea"); - HbStyle::setItemName(mIconItem, "icon"); } void triggerPolish() @@ -367,6 +367,44 @@ option->messageBoxType = d->mMessageBoxType; } +void HbMessageBox::initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive) +{ + Q_D(HbMessageBox); + HbWidgetBase::initPrimitiveData(primitiveData, primitive); + QString itemName = HbStyle::itemName(primitive); + if (itemName == QLatin1String("icon")) { + HbStyleIconPrimitiveData *data = hbstyleprimitivedata_cast(primitiveData); + data->icon = icon(); + + if (data->icon.value().isNull()) { + switch (d->mMessageBoxType) { + case HbStyleOptionMessageBox::MessageTypeInformation: + data->icon = HbIcon(QLatin1String("qtg_large_info")); + break; + case HbStyleOptionMessageBox::MessageTypeQuestion: + data->icon = HbIcon(QLatin1String("qtg_large_help")); + break; + case HbStyleOptionMessageBox::MessageTypeWarning: + data->icon = HbIcon(QLatin1String("qtg_large_warning")); + break; + default: + break; + } + } + } +} + +void HbMessageBox::recreatePrimitives() +{ + Q_D(HbMessageBox); + if (d->mMessageBoxContentWidget->mIconItem) { + delete d->mMessageBoxContentWidget->mIconItem; + d->mMessageBoxContentWidget->mIconItem = 0; + d->mMessageBoxContentWidget->mIconItem = style()->createPrimitive(HbStyle::PT_IconItem, "icon",d->mMessageBoxContentWidget); + d->mMessageBoxContentWidget->setProperty("hasIcon",true); + } +} + /*! \reimp */ @@ -374,11 +412,13 @@ { Q_D(HbMessageBox); HbDialog::updatePrimitives(); - HbStyleOptionMessageBox option; - initStyleOption(&option); + if (d->mMessageBoxContentWidget->mIconItem) { - HbStylePrivate::updatePrimitive(d->mMessageBoxContentWidget->mIconItem, HbStylePrivate::P_MessageBox_icon, &option); + HbStyleIconPrimitiveData data; + initPrimitiveData(&data, d->mMessageBoxContentWidget->mIconItem); + style()->updatePrimitive(d->mMessageBoxContentWidget->mIconItem, &data, this); } + } /*! @@ -426,16 +466,15 @@ if (icon != d->mIcon){ d->mIcon = icon; if (d->mMessageBoxContentWidget->mIconItem) { - HbStyleOptionMessageBox option; - initStyleOption(&option); - HbStylePrivate::updatePrimitive(d->mMessageBoxContentWidget->mIconItem, HbStylePrivate::P_MessageBox_icon, &option); + HbStyleIconPrimitiveData data; + initPrimitiveData(&data, d->mMessageBoxContentWidget->mIconItem); + style()->updatePrimitive(d->mMessageBoxContentWidget->mIconItem, &data, this); } if(iconVisible() ) { d->mMessageBoxContentWidget->mIconItem->show(); d->mMessageBoxContentWidget->setProperty("hasIcon",true); } } - } /*!