QmlDesigner: Set the correct root item rect in flow mode

This method is called when showing the form editor again, after a hide.
Without this the RootItemRect is not set correctly in this case.

Change-Id: Ia2339daebb2b2cbcafc223b29878d24cbe371708
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Thomas Hartmann
2020-11-24 17:32:47 +01:00
parent 4c4a25d08e
commit 95ae082404

View File

@@ -118,7 +118,7 @@ void FormEditorView::setupFormEditorItemTree(const QmlItemNode &qmlItemNode)
setupFormEditorItemTree(nextNode.toQmlItemNode()); setupFormEditorItemTree(nextNode.toQmlItemNode());
} }
} else if (qmlItemNode.isFlowView() && qmlItemNode.isRootNode()) { } else if (qmlItemNode.isFlowView() && qmlItemNode.isRootNode()) {
m_scene->addFormEditorItem(qmlItemNode, FormEditorScene::Flow); FormEditorItem *rootItem = m_scene->addFormEditorItem(qmlItemNode, FormEditorScene::Flow);
ModelNode node = qmlItemNode.modelNode(); ModelNode node = qmlItemNode.modelNode();
if (!node.hasAuxiliaryData("width") && !node.hasAuxiliaryData("height")) { if (!node.hasAuxiliaryData("width") && !node.hasAuxiliaryData("height")) {
@@ -126,6 +126,9 @@ void FormEditorView::setupFormEditorItemTree(const QmlItemNode &qmlItemNode)
node.setAuxiliaryData("height", 10000); node.setAuxiliaryData("height", 10000);
} }
m_scene->synchronizeTransformation(rootItem);
formEditorWidget()->setRootItemRect(qmlItemNode.instanceBoundingRect());
for (const QmlObjectNode &nextNode : qmlItemNode.allDirectSubNodes()) { for (const QmlObjectNode &nextNode : qmlItemNode.allDirectSubNodes()) {
if (QmlItemNode::isValidQmlItemNode(nextNode) && nextNode.toQmlItemNode().isFlowItem()) { if (QmlItemNode::isValidQmlItemNode(nextNode) && nextNode.toQmlItemNode().isFlowItem()) {
setupFormEditorItemTree(nextNode.toQmlItemNode()); setupFormEditorItemTree(nextNode.toQmlItemNode());