From f7d71a43c816f5b27fd56654ad943f712e7b08ab Mon Sep 17 00:00:00 2001
From: Thomas Hartmann <Thomas.Hartmann@digia.com>
Date: Wed, 10 Apr 2013 10:15:58 +0200
Subject: [PATCH] QmlDesigner.ItemLibrary: crash fix for resources

Dragging in Images from the resources tab was broken.
Creating an Image has to work with QtQuick 1.0 and QtQuick 2.0.

Change-Id: I60702a94ec5fc53805513775f5517c30f9e1b7cd
Reviewed-by: Marco Bubke <marco.bubke@digia.com>
---
 .../qmldesigner/designercore/model/qmlmodelview.cpp   | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp b/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp
index 0b41ad18eeb..1b438b2dfa5 100644
--- a/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp
+++ b/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp
@@ -124,7 +124,7 @@ QmlItemNode QmlModelView::createQmlItemNodeFromImage(const QString &imageName, c
             }
         }
 
-        if (!model()->imports().contains(newImport))
+        if (!model()->hasImport(newImport, true, true))
             model()->changeImports(QList<Import>() << newImport, QList<Import>());
 
         QList<QPair<PropertyName, QVariant> > propertyPairList;
@@ -140,8 +140,13 @@ QmlItemNode QmlModelView::createQmlItemNodeFromImage(const QString &imageName, c
         }
 
         propertyPairList.append(qMakePair(PropertyName("source"), QVariant(relativeImageName)));
-        newNode = createQmlItemNode("QtQuick.Image", -1, -1, propertyPairList);
-        parentNode.nodeAbstractProperty("data").reparentHere(newNode);
+        NodeMetaInfo metaInfo = model()->metaInfo("QtQuick.Image");
+        if (metaInfo.isValid()) {
+            int minorVersion = metaInfo.minorVersion();
+            int majorVersion = metaInfo.majorVersion();
+            newNode = createQmlItemNode("QtQuick.Image", majorVersion, minorVersion, propertyPairList);
+            parentNode.nodeAbstractProperty("data").reparentHere(newNode);
+        }
 
         Q_ASSERT(newNode.isValid());
 
-- 
GitLab