diff --git a/src/tools/qml2puppet/qml2puppet/instances/quickitemnodeinstance.cpp b/src/tools/qml2puppet/qml2puppet/instances/quickitemnodeinstance.cpp index 9d432fe0471..f2fbb97abab 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/quickitemnodeinstance.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/quickitemnodeinstance.cpp @@ -280,10 +280,10 @@ static bool layerEnabledAndEffect(QQuickItem *item) QRectF QuickItemNodeInstance::boundingRect() const { if (quickItem()) { - if (quickItem()->clip()) { - return quickItem()->boundingRect(); - } else if (layerEnabledAndEffect(quickItem())) { + if (layerEnabledAndEffect(quickItem())) { return ServerNodeInstance::effectAdjustedBoundingRect(quickItem()); + } else if (quickItem()->clip()) { + return quickItem()->boundingRect(); } else { QSize maximumSize(4000, 4000); auto isValidSize = [maximumSize] (const QRectF& rect) { diff --git a/src/tools/qml2puppet/qml2puppet/instances/servernodeinstance.cpp b/src/tools/qml2puppet/qml2puppet/instances/servernodeinstance.cpp index 758e18df359..ca05a5ef039 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/servernodeinstance.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/servernodeinstance.cpp @@ -26,6 +26,8 @@ #include +#include + #include #include #include @@ -116,8 +118,13 @@ bool ServerNodeInstance::isSubclassOf(QObject *object, const QByteArray &superTy QRectF ServerNodeInstance::effectAdjustedBoundingRect(QQuickItem *item) { - if (item) - return item->boundingRect().adjusted(-40, -40, 40, 40); + if (item) { + QQuickItemPrivate *pItem = QQuickItemPrivate::get(item); + if (pItem && pItem->layer() && pItem->layer()->sourceRect().isValid()) + return pItem->layer()->sourceRect(); + else + return item->boundingRect(); + } return {}; }