diff --git a/src/plugins/qmldesigner/designercore/include/qmlitemnode.h b/src/plugins/qmldesigner/designercore/include/qmlitemnode.h index f6c1ae24243..a98298176d2 100644 --- a/src/plugins/qmldesigner/designercore/include/qmlitemnode.h +++ b/src/plugins/qmldesigner/designercore/include/qmlitemnode.h @@ -125,6 +125,7 @@ public: void setPostionInBaseState(const QPointF &position); void setSize(const QSizeF &size); + bool isInLayout() const; }; QMLDESIGNERCORE_EXPORT uint qHash(const QmlItemNode &node); diff --git a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp index b2694a28e22..e608894e735 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp @@ -597,6 +597,19 @@ void QmlItemNode::setPostionInBaseState(const QPointF &position) modelNode().variantProperty("y").setValue(qRound(position.y())); } +bool QmlItemNode::isInLayout() const +{ + if (isValid() && hasNodeParent()) { + + ModelNode parent = modelNode().parentProperty().parentModelNode(); + + if (parent.isValid() && parent.metaInfo().isValid()) + return parent.metaInfo().isSubclassOf("QtQuick.Layouts.Layout", -1, -1); + } + + return false; +} + void QmlItemNode::setSize(const QSizeF &size) { if (!hasBindingProperty("width") && !anchors().instanceHasAnchor(AnchorLineRight))