summaryrefslogtreecommitdiff
path: root/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@digia.com>2013-05-28 14:14:07 +0200
committerMarco Bubke <marco.bubke@digia.com>2013-05-30 14:11:57 +0200
commitb97422b710be8489c3798febcc82dc8cc6b86c3d (patch)
tree1a80913bc447b570852666f88aa98a71d48b793e /src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp
parent21c821806db143239d1824af42eac2dcb216c76f (diff)
downloadqt-creator-b97422b710be8489c3798febcc82dc8cc6b86c3d.tar.gz
QmlDesigner: Add container item support in node instances
Change-Id: I30e0d11346b8c63188d052b46656e7ede179e55d Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Diffstat (limited to 'src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp')
-rw-r--r--src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp
index 42643ed82f..42c41dc6ab 100644
--- a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp
+++ b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp
@@ -444,6 +444,11 @@ QmlObjectNode QmlObjectNode::nodeForInstance(const NodeInstance &instance) const
return QmlObjectNode(ModelNode(instance.modelNode(), qmlModelView()));
}
+QmlItemNode QmlObjectNode::itemForInstance(const NodeInstance &instance) const
+{
+ return QmlItemNode(ModelNode(instance.modelNode(), qmlModelView()));
+}
+
bool QmlObjectNode::hasNodeParent() const
{
return modelNode().hasParentProperty();
@@ -454,6 +459,13 @@ bool QmlObjectNode::hasInstanceParent() const
return nodeInstance().parentId() >= 0 && qmlModelView()->nodeInstanceView()->hasInstanceForId(nodeInstance().parentId());
}
+bool QmlObjectNode::hasInstanceParentItem() const
+{
+ return nodeInstance().parentId() >= 0
+ && qmlModelView()->nodeInstanceView()->hasInstanceForId(nodeInstance().parentId())
+ && QmlItemNode::isItemOrWindow(qmlModelView()->modelNodeForInternalId(nodeInstance().parentId()));
+}
+
void QmlObjectNode::setParentProperty(const NodeAbstractProperty &parentProeprty)
{
@@ -468,6 +480,14 @@ QmlObjectNode QmlObjectNode::instanceParent() const
return QmlObjectNode();
}
+QmlItemNode QmlObjectNode::instanceParentItem() const
+{
+ if (hasInstanceParentItem())
+ return itemForInstance(qmlModelView()->nodeInstanceView()->instanceForId(nodeInstance().parentId()));
+
+ return QmlItemNode();
+}
+
void QmlObjectNode::setId(const QString &id)
{
modelNode().setId(id);