summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksei German <aleksei.german@qt.io>2022-08-18 14:56:57 +0200
committerAleksei German <aleksei.german@qt.io>2022-08-18 14:23:47 +0000
commite8d05da529b125d4b3f75bb2b60105d73aa88052 (patch)
treeba83f0a14654dbcb4d9baaf84c414a5d79042372
parentb899a27c863da4fc294edba25c798344b6909fc0 (diff)
downloadqt-creator-e8d05da529b125d4b3f75bb2b60105d73aa88052.tar.gz
QmlDesigner: Exclude Behavior children from Scene
Task-number: QDS-7444 Change-Id: I6bd04f7619ae15d2fce81d79d1a1c59e33e834c8 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
-rw-r--r--src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
index e84f9224d6..1a703463cc 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
@@ -988,6 +988,18 @@ QList<ModelNode> filterNodesForSkipItems(const QList<ModelNode> &nodeList)
return filteredNodeList;
}
+bool parentIsBehavior(ModelNode node)
+{
+ while (node.isValid() && !node.isRootNode()) {
+ if (!node.behaviorPropertyName().isEmpty())
+ return true;
+
+ node = node.parentProperty().parentModelNode();
+ }
+
+ return false;
+}
+
CreateSceneCommand NodeInstanceView::createCreateSceneCommand()
{
QList<ModelNode> nodeList = allModelNodes();
@@ -1051,7 +1063,7 @@ CreateSceneCommand NodeInstanceView::createCreateSceneCommand()
nodeMetaType,
nodeFlags);
- if (instance.modelNode().behaviorPropertyName().isEmpty())
+ if (!parentIsBehavior(instance.modelNode()))
instanceContainerList.append(container);
}