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; 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() CreateSceneCommand NodeInstanceView::createCreateSceneCommand()
{ {
QList<ModelNode> nodeList = allModelNodes(); QList<ModelNode> nodeList = allModelNodes();
@@ -1051,7 +1063,7 @@ CreateSceneCommand NodeInstanceView::createCreateSceneCommand()
nodeMetaType, nodeMetaType,
nodeFlags); nodeFlags);
if (instance.modelNode().behaviorPropertyName().isEmpty()) if (!parentIsBehavior(instance.modelNode()))
instanceContainerList.append(container); instanceContainerList.append(container);
} }