summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibrary.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.cpp
index 6bfaf1f6f2..ae3cb1c787 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.cpp
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.cpp
@@ -127,7 +127,6 @@ ItemLibrary::ItemLibrary(QWidget *parent) :
/* create Items view and its model */
m_d->m_itemsView = new QDeclarativeView(this);
- m_d->m_itemsView->setSource(QUrl("qrc:/ItemLibrary/qml/ItemsView.qml"));
m_d->m_itemsView->setAttribute(Qt::WA_OpaquePaintEvent);
m_d->m_itemsView->setAttribute(Qt::WA_NoSystemBackground);
m_d->m_itemsView->setAcceptDrops(false);
@@ -146,6 +145,9 @@ ItemLibrary::ItemLibrary(QWidget *parent) :
highlightColor.setHsvF(highlightColor.hsvHueF(),0.1 + highlightColor.saturationF()*2.0, highlightColor.valueF());
m_d->m_itemsView->rootContext()->setContextProperty(QLatin1String("highlightColor"), highlightColor);
+ // loading the qml has to come after all needed context properties are set
+ m_d->m_itemsView->setSource(QUrl("qrc:/ItemLibrary/qml/ItemsView.qml"));
+
QDeclarativeItem *rootItem = qobject_cast<QDeclarativeItem*>(m_d->m_itemsView->rootObject());
connect(rootItem, SIGNAL(itemSelected(int)), this, SLOT(showItemInfo(int)));
connect(rootItem, SIGNAL(itemDragged(int)), this, SLOT(startDragAndDrop(int)));
@@ -217,6 +219,9 @@ ItemLibrary::ItemLibrary(QWidget *parent) :
ItemLibrary::~ItemLibrary()
{
+ /* workaround: delete the items view before the model is deleted.
+ This prevents qml warnings when the item library is destructed. */
+ delete m_d->m_itemsView;
delete m_d;
}