diff --git a/src/plugins/qmldesigner/core/instances/qmlgraphicsitemnodeinstance.cpp b/src/plugins/qmldesigner/core/instances/qmlgraphicsitemnodeinstance.cpp index ad65bccdfd8d5b70a1d530ac44909fc3ea083d8b..eb9ad087de2ef7be68a150bb794fc00037be420e 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