diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp index ce1d1d87cd43c0c405b735b2ca52bd40363e65b4..ba8e2e3245e37af12f5d3435d3456dc50a546ca7 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(); }