From 8e9da5f797d667458ca6af95aeda3ac21d73cb72 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann <Thomas.Hartmann@nokia.com> Date: Mon, 19 Sep 2011 17:13:59 +0200 Subject: [PATCH] QmlDesigner.instances: support for auxiliaryData @NodeInstance This allows overwriting values in node instances only. Change-Id: I596323a9ebc112033c9811a8aaf35fed371cb867 Reviewed-on: http://codereview.qt-project.org/4924 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Marco Bubke <marco.bubke@nokia.com> Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com> --- .../qml/qmlpuppet/instances/nodeinstanceserver.cpp | 11 +++++++++++ .../designercore/instances/nodeinstanceview.cpp | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.cpp index 256ee72857d..066113a1565 100644 --- a/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.cpp +++ b/share/qtcreator/qml/qmlpuppet/instances/nodeinstanceserver.cpp @@ -816,6 +816,17 @@ void NodeInstanceServer::setInstanceAuxiliaryData(const PropertyValueContainer & rootNodeInstance().resetProperty(auxiliaryContainer.name()); } } + if (auxiliaryContainer.name().endsWith(QLatin1String("@NodeInstance"))) { + QString propertyName = auxiliaryContainer.name().leftRef(auxiliaryContainer.name().count() - 12).toString(); + if (!auxiliaryContainer.value().isNull()) { + setInstancePropertyVariant(PropertyValueContainer(auxiliaryContainer.instanceId(), + propertyName, + auxiliaryContainer.value(), + auxiliaryContainer.dynamicTypeName())); + } else { + rootNodeInstance().resetProperty(propertyName); + } + } } diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp index adfdae29b3b..ec67e6db09c 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp @@ -504,7 +504,7 @@ void NodeInstanceView::instancesToken(const QString &/*tokenName*/, int /*tokenN void NodeInstanceView::auxiliaryDataChanged(const ModelNode &node, const QString &name, const QVariant &data) { - if (node.isRootNode() && (name == "width" || name == "height")) { + if ((node.isRootNode() && (name == "width" || name == "height")) || name.endsWith(QLatin1String("@NodeInstance"))) { if (hasInstanceForNode(node)) { NodeInstance instance = instanceForNode(node); QVariant value = data; -- GitLab