From 49347f3cf5655ed33152c5289ecfd25a9135e7ab Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Wed, 7 May 2014 14:56:46 +0200 Subject: [PATCH] QmlDesigner: Add QmlItemNode::createQmlItemNodeFromImage overload We need a parent property overload so we can add a item to a non default property. Change-Id: I2044126f1c9f4cb112d1b96db163b70cd12b9042 Reviewed-by: Tim Jenssen --- .../designercore/include/qmlitemnode.h | 4 ++++ .../designercore/model/qmlitemnode.cpp | 15 +++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/include/qmlitemnode.h b/src/plugins/qmldesigner/designercore/include/qmlitemnode.h index a3b04053381..5fe7340274d 100644 --- a/src/plugins/qmldesigner/designercore/include/qmlitemnode.h +++ b/src/plugins/qmldesigner/designercore/include/qmlitemnode.h @@ -69,6 +69,10 @@ public: const QString &imageName, const QPointF &position, QmlItemNode parentQmlItemNode); + static QmlItemNode createQmlItemNodeFromImage(AbstractView *view, + const QString &imageName, + const QPointF &position, + NodeAbstractProperty parentproperty); QmlModelStateGroup states() const; QList children() const; diff --git a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp index bc294add5be..0f4d52b9c8a 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp @@ -162,11 +162,19 @@ QmlItemNode QmlItemNode::createQmlItemNode(AbstractView *view, const ItemLibrary QmlItemNode QmlItemNode::createQmlItemNodeFromImage(AbstractView *view, const QString &imageName, const QPointF &position, QmlItemNode parentQmlItemNode) { - QmlItemNode newQmlItemNode; if (!parentQmlItemNode.isValid()) parentQmlItemNode = QmlItemNode(view->rootModelNode()); - if (parentQmlItemNode.isValid()) { + NodeAbstractProperty parentProperty = parentQmlItemNode.defaultNodeAbstractProperty(); + + return QmlItemNode::createQmlItemNodeFromImage(view, imageName, position, parentProperty); +} + +QmlItemNode QmlItemNode::createQmlItemNodeFromImage(AbstractView *view, const QString &imageName, const QPointF &position, NodeAbstractProperty parentproperty) +{ + QmlItemNode newQmlItemNode; + + if (parentproperty.isValid()) { RewriterTransaction transaction = view->beginRewriterTransaction(QByteArrayLiteral("QmlItemNode::createQmlItemNodeFromImage")); if (view->model()->hasNodeMetaInfo("QtQuick.Image")) { @@ -185,7 +193,7 @@ QmlItemNode QmlItemNode::createQmlItemNodeFromImage(AbstractView *view, const QS } newQmlItemNode = QmlItemNode(view->createModelNode("QtQuick.Image", metaInfo.majorVersion(), metaInfo.minorVersion(), propertyPairList)); - parentQmlItemNode.defaultNodeAbstractProperty().reparentHere(newQmlItemNode); + parentproperty.reparentHere(newQmlItemNode); newQmlItemNode.setId(view->generateNewId("image")); @@ -199,7 +207,6 @@ QmlItemNode QmlItemNode::createQmlItemNodeFromImage(AbstractView *view, const QS Q_ASSERT(newQmlItemNode.isValid()); } - return newQmlItemNode; }