From 199d1e14c5bf0e7910baec625ca0f77606c5bb43 Mon Sep 17 00:00:00 2001 From: Marco Bubke <marco.bubke@nokia.com> Date: Tue, 23 Mar 2010 14:03:18 +0100 Subject: [PATCH] Fix binding bug for width and height. Task-Id: BAUHAUS-472 --- .../instances/qmlgraphicsitemnodeinstance.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/plugins/qmldesigner/core/instances/qmlgraphicsitemnodeinstance.cpp b/src/plugins/qmldesigner/core/instances/qmlgraphicsitemnodeinstance.cpp index ad65bccdfd8..eb9ad087de2 100644 --- a/src/plugins/qmldesigner/core/instances/qmlgraphicsitemnodeinstance.cpp +++ b/src/plugins/qmldesigner/core/instances/qmlgraphicsitemnodeinstance.cpp @@ -98,7 +98,8 @@ QSizeF QmlGraphicsItemNodeInstance::size() const double implicitWidth = qmlGraphicsItem()->implicitWidth(); if (!m_hasWidth && implicitWidth // WORKAROUND - && implicitWidth != qmlGraphicsItem()->width()) { + && implicitWidth != qmlGraphicsItem()->width() + && !modelNode().hasBindingProperty("width")) { qmlGraphicsItem()->blockSignals(true); qmlGraphicsItem()->setWidth(implicitWidth); qmlGraphicsItem()->blockSignals(false); @@ -107,7 +108,8 @@ QSizeF QmlGraphicsItemNodeInstance::size() const double implicitHeight = qmlGraphicsItem()->implicitHeight(); if (!m_hasHeight && implicitWidth // WORKAROUND - && implicitHeight != qmlGraphicsItem()->height()) { + && implicitHeight != qmlGraphicsItem()->height() + && !modelNode().hasBindingProperty("height")) { qmlGraphicsItem()->blockSignals(true); qmlGraphicsItem()->setHeight(implicitHeight); qmlGraphicsItem()->blockSignals(false); @@ -138,7 +140,8 @@ QRectF QmlGraphicsItemNodeInstance::boundingRect() const double implicitWidth = qmlGraphicsItem()->implicitWidth(); if (!m_hasWidth && implicitWidth // WORKAROUND - && implicitWidth != qmlGraphicsItem()->width()) { + && implicitWidth != qmlGraphicsItem()->width() + && !modelNode().hasBindingProperty("width")) { qmlGraphicsItem()->blockSignals(true); qmlGraphicsItem()->setWidth(implicitWidth); qmlGraphicsItem()->blockSignals(false); @@ -147,7 +150,8 @@ QRectF QmlGraphicsItemNodeInstance::boundingRect() const double implicitHeight = qmlGraphicsItem()->implicitHeight(); if (!m_hasHeight && implicitWidth // WORKAROUND - && implicitHeight != qmlGraphicsItem()->height()) { + && implicitHeight != qmlGraphicsItem()->height() + && !modelNode().hasBindingProperty("height")) { qmlGraphicsItem()->blockSignals(true); qmlGraphicsItem()->setHeight(implicitHeight); qmlGraphicsItem()->blockSignals(false); @@ -215,7 +219,7 @@ void QmlGraphicsItemNodeInstance::setPropertyBinding(const QString &name, const QVariant QmlGraphicsItemNodeInstance::property(const QString &name) const { - if (name == "width" && modelNode().isValid()) { + if (name == "width" && modelNode().isValid() && !modelNode().hasBindingProperty("width")) { double implicitWidth = qmlGraphicsItem()->implicitWidth(); if (!m_hasWidth && implicitWidth // WORKAROUND @@ -223,7 +227,7 @@ QVariant QmlGraphicsItemNodeInstance::property(const QString &name) const qmlGraphicsItem()->setWidth(implicitWidth); } - if (name == "height" && modelNode().isValid()) { + if (name == "height" && modelNode().isValid() && !modelNode().hasBindingProperty("height")) { double implicitHeight = qmlGraphicsItem()->implicitHeight(); if (!m_hasHeight && implicitHeight // WORKAROUND -- GitLab