From 70fd2c213eaf7e17a20fb6ab1fbd216aaed8c821 Mon Sep 17 00:00:00 2001
From: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Date: Mon, 25 Oct 2010 13:27:35 +0200
Subject: [PATCH] QmlDesigner.NodeInstances: crash fix

This patch avoids a recursion.

Reviewed-by: Marco Bubke
---
 .../instances/qmlgraphicsitemnodeinstance.cpp      | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp b/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp
index c59359a87df..f1261926128 100644
--- a/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp
@@ -247,16 +247,22 @@ QVariant QmlGraphicsItemNodeInstance::property(const QString &name) const
         double implicitWidth = qmlGraphicsItem()->implicitWidth();
         if (!m_hasWidth
             && implicitWidth // WORKAROUND
-            && implicitWidth != qmlGraphicsItem()->width())
-            qmlGraphicsItem()->setWidth(implicitWidth);
+            && implicitWidth != qmlGraphicsItem()->width()) {
+                qmlGraphicsItem()->blockSignals(true);
+                qmlGraphicsItem()->setWidth(implicitWidth);
+                qmlGraphicsItem()->blockSignals(false);
+        }
     }
 
     if (name == "height" && modelNode().isValid() && !modelNode().hasBindingProperty("height")) {
         double implicitHeight = qmlGraphicsItem()->implicitHeight();
         if (!m_hasHeight
             && implicitHeight // WORKAROUND
-            && implicitHeight != qmlGraphicsItem()->height())
-            qmlGraphicsItem()->setHeight(implicitHeight);
+            && implicitHeight != qmlGraphicsItem()->height()) {
+                qmlGraphicsItem()->blockSignals(true);
+                qmlGraphicsItem()->setHeight(implicitHeight);
+                qmlGraphicsItem()->blockSignals(false);
+            }
     }
 
     return GraphicsObjectNodeInstance::property(name);
-- 
GitLab