From 04f29127a14b83dc3b2d8189e947b68e9286e15f Mon Sep 17 00:00:00 2001 From: Marco Bubke <marco.bubke@digia.com> Date: Thu, 15 Aug 2013 15:23:21 +0200 Subject: [PATCH] QmlDesigner: Fix transformation bug for tab widgets Change-Id: Idc33ddf04f0b6fc317aeb5ed72fd7164ba174ab4 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com> --- .../instances/quickitemnodeinstance.cpp | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp index ce1d1d87cd4..ba8e2e3245e 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp @@ -79,8 +79,10 @@ static QTransform transformForItem(QQuickItem *item, NodeInstanceServer *nodeIns } QTransform QuickItemNodeInstance::transform() const -{ - return transformForItem(quickItem(), nodeInstanceServer()); +{ if (quickItem()->parentItem()) + return DesignerSupport::parentTransform(quickItem());; + + return QTransform(); } @@ -146,9 +148,23 @@ QRectF QuickItemNodeInstance::contentItemBoundingBox() const return QRectF(); } +static QTransform contentItemTransformForItem(QQuickItem *item, NodeInstanceServer *nodeInstanceServer) +{ + QTransform toParentTransform = DesignerSupport::parentTransform(item); + if (item->parentItem() && !nodeInstanceServer->hasInstanceForObject(item->parentItem())) { + + return transformForItem(item->parentItem(), nodeInstanceServer) * toParentTransform; + } + + return toParentTransform; +} + QTransform QuickItemNodeInstance::contentItemTransform() const { - return DesignerSupport::parentTransform(contentItem()); + if (contentItem()) + return contentItemTransformForItem(contentItem(), nodeInstanceServer()); + + return QTransform(); } -- GitLab