QmlDesigner: Do not call allDirectSubNodes twice

Change-Id: I6ce2d620848ec184d96cdceb5c0bcf323a937551
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
Thomas Hartmann
2021-04-06 14:12:49 +02:00
parent 3d917a01cc
commit ce5445d113

View File

@@ -129,19 +129,24 @@ void FormEditorView::setupFormEditorItemTree(const QmlItemNode &qmlItemNode)
m_scene->synchronizeTransformation(rootItem); m_scene->synchronizeTransformation(rootItem);
formEditorWidget()->setRootItemRect(qmlItemNode.instanceBoundingRect()); formEditorWidget()->setRootItemRect(qmlItemNode.instanceBoundingRect());
for (const QmlObjectNode &nextNode : qmlItemNode.allDirectSubNodes()) { const QList<QmlObjectNode> allDirectSubNodes = qmlItemNode.allDirectSubNodes();
if (QmlItemNode::isValidQmlItemNode(nextNode) && nextNode.toQmlItemNode().isFlowItem()) { for (const QmlObjectNode &childNode : allDirectSubNodes) {
setupFormEditorItemTree(nextNode.toQmlItemNode()); if (QmlItemNode::isValidQmlItemNode(childNode)
&& childNode.toQmlItemNode().isFlowItem()) {
setupFormEditorItemTree(childNode.toQmlItemNode());
} }
} }
for (const QmlObjectNode &nextNode : qmlItemNode.allDirectSubNodes()) { for (const QmlObjectNode &childNode : allDirectSubNodes) {
if (QmlVisualNode::isValidQmlVisualNode(nextNode) && nextNode.toQmlVisualNode().isFlowTransition()) { if (QmlVisualNode::isValidQmlVisualNode(childNode)
setupFormEditorItemTree(nextNode.toQmlItemNode()); && childNode.toQmlVisualNode().isFlowTransition()) {
} else if (QmlVisualNode::isValidQmlVisualNode(nextNode) && nextNode.toQmlVisualNode().isFlowDecision()) { setupFormEditorItemTree(childNode.toQmlItemNode());
setupFormEditorItemTree(nextNode.toQmlItemNode()); } else if (QmlVisualNode::isValidQmlVisualNode(childNode)
} else if (QmlVisualNode::isValidQmlVisualNode(nextNode) && nextNode.toQmlVisualNode().isFlowWildcard()) { && childNode.toQmlVisualNode().isFlowDecision()) {
setupFormEditorItemTree(nextNode.toQmlItemNode()); setupFormEditorItemTree(childNode.toQmlItemNode());
} else if (QmlVisualNode::isValidQmlVisualNode(childNode)
&& childNode.toQmlVisualNode().isFlowWildcard()) {
setupFormEditorItemTree(childNode.toQmlItemNode());
} }
} }
} else { } else {