--- 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 <QTimer>
#include <QGraphicsLinearLayout>
#include <QTextDocument>
+#include <hbstyleprimitivedata.h>
+#include <hbstyleiconprimitivedata.h>
#ifdef Q_OS_SYMBIAN
#include <systemtoneservice.h>
@@ -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<HbStyleIconPrimitiveData*>(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);
}
}
-
}
/*!