From 25e608cbfdfe588fc51ab8a41d48b943a4ebcf1f Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 1 Jul 2014 18:37:36 +0200 Subject: [PATCH] QmlDesigner: Don't use direct update together with anchors Task-number: QTCREATORBUG-12584 Change-Id: I2649f43421e48863d002ae1db34ec5f2276fafd9 Reviewed-by: Tim Jenssen --- .../designercore/include/nodeinstance.h | 2 ++ .../designercore/instances/nodeinstance.cpp | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/designercore/include/nodeinstance.h b/src/plugins/qmldesigner/designercore/include/nodeinstance.h index b7607059078..55b8623f742 100644 --- a/src/plugins/qmldesigner/designercore/include/nodeinstance.h +++ b/src/plugins/qmldesigner/designercore/include/nodeinstance.h @@ -91,6 +91,8 @@ public: void setX(double x); void setY(double y); + bool hasAnchors() const; + protected: void setProperty(const PropertyName &name, const QVariant &value); InformationName setInformation(InformationName name, diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp index 8383023d22c..a600dc6deb8 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp @@ -144,7 +144,7 @@ void NodeInstance::setDirectUpdate(bool directUpdates) bool NodeInstance::directUpdates() const { if (d) - return d->directUpdates && !(d->transform.isRotating() || d->transform.isScaling()); + return d->directUpdates && !(d->transform.isRotating() || d->transform.isScaling() || hasAnchors()); else return true; } @@ -165,6 +165,19 @@ void NodeInstance::setY(double y) } } +bool NodeInstance::hasAnchors() const +{ + return hasAnchor("anchors.fill") + || hasAnchor("anchors.centerIn") + || hasAnchor("anchors.top") + || hasAnchor("anchors.left") + || hasAnchor("anchors.right") + || hasAnchor("anchors.bottom") + || hasAnchor("anchors.horizontalCenter") + || hasAnchor("anchors.verticalCenter") + || hasAnchor("anchors.baseline"); +} + bool NodeInstance::isValid() const { return instanceId() >= 0 && modelNode().isValid();