summaryrefslogtreecommitdiff
path: root/src/plugins/qmldesigner
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@digia.com>2014-08-04 14:00:01 +0200
committerThomas Hartmann <Thomas.Hartmann@digia.com>2014-08-04 18:48:03 +0200
commit316bfcaee14fff0b58e1a8cd8cbdb46776359aa6 (patch)
treecb07a77840c4c4c3793aa4340927c0b074c981b0 /src/plugins/qmldesigner
parent798af5d70eafcb93630fe7c132ecf82887e2967a (diff)
downloadqt-creator-316bfcaee14fff0b58e1a8cd8cbdb46776359aa6.tar.gz
QmlDesigner.Model: Fix isComponent for Loader
Loader was also interpreted as a component, but the handling of component and sourceComponent was incorrect. Change-Id: I5cd691ece1a29c77b52dc74785013f08d589b2eb Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Diffstat (limited to 'src/plugins/qmldesigner')
-rw-r--r--src/plugins/qmldesigner/designercore/model/modelnode.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/plugins/qmldesigner/designercore/model/modelnode.cpp b/src/plugins/qmldesigner/designercore/model/modelnode.cpp
index 533b879b04..88d38d083d 100644
--- a/src/plugins/qmldesigner/designercore/model/modelnode.cpp
+++ b/src/plugins/qmldesigner/designercore/model/modelnode.cpp
@@ -1061,9 +1061,27 @@ bool ModelNode::isComponent() const
}
if (metaInfo().isSubclassOf("QtQuick.Loader", -1 , -1)) {
- if (hasNodeProperty("component")
- && nodeProperty("component").modelNode().nodeSourceType() == ModelNode::NodeWithComponentSource)
- return true;
+
+ if (hasNodeListProperty("component")) {
+
+ /*
+ * The component property should be a NodeProperty, but currently is a NodeListProperty, because
+ * the default property is always implcitly a NodeListProperty. This is something that has to be fixed.
+ */
+
+ ModelNode componentNode = nodeListProperty("component").toModelNodeList().first();
+ if (componentNode.nodeSourceType() == ModelNode::NodeWithComponentSource)
+ return true;
+ if (componentNode.metaInfo().isFileComponent())
+ return true;
+ }
+
+ if (hasNodeProperty("sourceComponent")) {
+ if (nodeProperty("sourceComponent").modelNode().nodeSourceType() == ModelNode::NodeWithComponentSource)
+ return true;
+ if (nodeProperty("sourceComponent").modelNode().metaInfo().isFileComponent())
+ return true;
+ }
if (hasVariantProperty("source"))
return true;