From 447f56b0d17c110a6eb6c123ffb1341ea9a1cc50 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 7 Aug 2014 17:22:53 +0200 Subject: [PATCH] QmlDesigner.Navigator: Do not position items in layouts Change-Id: I5125db79885c8a7fcec686170240d699d0d8ed5b Reviewed-by: Tim Jenssen --- .../components/navigator/navigatorview.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp index 6f39ae2e9fc..24809188b51 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp @@ -47,9 +47,15 @@ static inline void setScenePos(const QmlDesigner::ModelNode &modelNode,const QPo { if (modelNode.hasParentProperty() && QmlDesigner::QmlItemNode::isValidQmlItemNode(modelNode.parentProperty().parentModelNode())) { QmlDesigner::QmlItemNode parentNode = modelNode.parentProperty().parentQmlObjectNode().toQmlItemNode(); - QPointF localPos = parentNode.instanceSceneTransform().inverted().map(pos); - modelNode.variantProperty("x").setValue(localPos.toPoint().x()); - modelNode.variantProperty("y").setValue(localPos.toPoint().y()); + + if (!parentNode.modelNode().metaInfo().isLayoutable()) { + QPointF localPos = parentNode.instanceSceneTransform().inverted().map(pos); + modelNode.variantProperty("x").setValue(localPos.toPoint().x()); + modelNode.variantProperty("y").setValue(localPos.toPoint().y()); + } else { //Items in Layouts do not have a position + modelNode.removeProperty("x"); + modelNode.removeProperty("y"); + } } }