From ce5445d11393e83d3f6c4c297b70e56da3e23395 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 6 Apr 2021 14:12:49 +0200 Subject: [PATCH] QmlDesigner: Do not call allDirectSubNodes twice Change-Id: I6ce2d620848ec184d96cdceb5c0bcf323a937551 Reviewed-by: Marco Bubke --- .../components/formeditor/formeditorview.cpp | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp index 5341ff06d6e..b73335b1b26 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp @@ -129,19 +129,24 @@ void FormEditorView::setupFormEditorItemTree(const QmlItemNode &qmlItemNode) m_scene->synchronizeTransformation(rootItem); formEditorWidget()->setRootItemRect(qmlItemNode.instanceBoundingRect()); - for (const QmlObjectNode &nextNode : qmlItemNode.allDirectSubNodes()) { - if (QmlItemNode::isValidQmlItemNode(nextNode) && nextNode.toQmlItemNode().isFlowItem()) { - setupFormEditorItemTree(nextNode.toQmlItemNode()); + const QList allDirectSubNodes = qmlItemNode.allDirectSubNodes(); + for (const QmlObjectNode &childNode : allDirectSubNodes) { + if (QmlItemNode::isValidQmlItemNode(childNode) + && childNode.toQmlItemNode().isFlowItem()) { + setupFormEditorItemTree(childNode.toQmlItemNode()); } } - for (const QmlObjectNode &nextNode : qmlItemNode.allDirectSubNodes()) { - if (QmlVisualNode::isValidQmlVisualNode(nextNode) && nextNode.toQmlVisualNode().isFlowTransition()) { - setupFormEditorItemTree(nextNode.toQmlItemNode()); - } else if (QmlVisualNode::isValidQmlVisualNode(nextNode) && nextNode.toQmlVisualNode().isFlowDecision()) { - setupFormEditorItemTree(nextNode.toQmlItemNode()); - } else if (QmlVisualNode::isValidQmlVisualNode(nextNode) && nextNode.toQmlVisualNode().isFlowWildcard()) { - setupFormEditorItemTree(nextNode.toQmlItemNode()); + for (const QmlObjectNode &childNode : allDirectSubNodes) { + if (QmlVisualNode::isValidQmlVisualNode(childNode) + && childNode.toQmlVisualNode().isFlowTransition()) { + setupFormEditorItemTree(childNode.toQmlItemNode()); + } else if (QmlVisualNode::isValidQmlVisualNode(childNode) + && childNode.toQmlVisualNode().isFlowDecision()) { + setupFormEditorItemTree(childNode.toQmlItemNode()); + } else if (QmlVisualNode::isValidQmlVisualNode(childNode) + && childNode.toQmlVisualNode().isFlowWildcard()) { + setupFormEditorItemTree(childNode.toQmlItemNode()); } } } else {