QmlDesigner: Exclude Behavior children from Scene

Task-number: QDS-7444
Change-Id: I6bd04f7619ae15d2fce81d79d1a1c59e33e834c8
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Aleksei German
2022-08-18 14:56:57 +02:00
parent b899a27c86
commit e8d05da529

View File

@@ -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);
}