diff options
author | Aleksei German <aleksei.german@qt.io> | 2022-08-18 14:56:57 +0200 |
---|---|---|
committer | Aleksei German <aleksei.german@qt.io> | 2022-08-18 14:23:47 +0000 |
commit | e8d05da529b125d4b3f75bb2b60105d73aa88052 (patch) | |
tree | ba83f0a14654dbcb4d9baaf84c414a5d79042372 | |
parent | b899a27c863da4fc294edba25c798344b6909fc0 (diff) | |
download | qt-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.cpp | 14 |
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); } |