From e8d05da529b125d4b3f75bb2b60105d73aa88052 Mon Sep 17 00:00:00 2001 From: Aleksei German Date: Thu, 18 Aug 2022 14:56:57 +0200 Subject: [PATCH] QmlDesigner: Exclude Behavior children from Scene Task-number: QDS-7444 Change-Id: I6bd04f7619ae15d2fce81d79d1a1c59e33e834c8 Reviewed-by: Thomas Hartmann --- .../designercore/instances/nodeinstanceview.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp index e84f9224d61..1a703463ccf 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp @@ -988,6 +988,18 @@ QList filterNodesForSkipItems(const QList &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 nodeList = allModelNodes(); @@ -1051,7 +1063,7 @@ CreateSceneCommand NodeInstanceView::createCreateSceneCommand() nodeMetaType, nodeFlags); - if (instance.modelNode().behaviorPropertyName().isEmpty()) + if (!parentIsBehavior(instance.modelNode())) instanceContainerList.append(container); }