QmlDesigner: Add QmlItemNode::isInLayout()

Change-Id: I3823c000599db2b1ed326463d4310c94b96f5466
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
This commit is contained in:
Thomas Hartmann
2015-07-08 11:59:32 +02:00
committed by Thomas Hartmann
parent d3992542b3
commit 749e5a00b1
2 changed files with 14 additions and 0 deletions

View File

@@ -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);

View File

@@ -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))