From a02be5442eab39f5af21cd28e79beb2fb2824dc1 Mon Sep 17 00:00:00 2001 From: Knud Dollereder Date: Mon, 30 Nov 2020 12:26:57 +0100 Subject: [PATCH] Restore zoom-all special case for the flowview MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ifbed53253b0f00773dcd040f0bd2b06a2b941bd4 Reviewed-by: Henning Gründl Reviewed-by: Thomas Hartmann --- .../components/formeditor/formeditorwidget.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp index 63c7e05d603..cf7a5759e25 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp @@ -26,6 +26,7 @@ #include "formeditorwidget.h" #include "designeractionmanager.h" #include "designersettings.h" +#include "formeditoritem.h" #include "formeditorscene.h" #include "qmldesignerconstants.h" #include "qmldesignericons.h" @@ -208,7 +209,19 @@ FormEditorWidget::FormEditorWidget(FormEditorView *view) auto frameAll = [this, zoomOut]() { if (m_graphicsView) { - m_graphicsView->frame(m_graphicsView->rootItemRect()); + QRectF bounds; + if (QmlItemNode(m_formEditorView->rootModelNode()).isFlowView()) { + for (QGraphicsItem *item : m_formEditorView->scene()->items()) { + if (auto *fitem = FormEditorItem::fromQGraphicsItem(item)) { + if (!fitem->qmlItemNode().modelNode().isRootNode() + && !fitem->sceneBoundingRect().isNull()) + bounds |= fitem->sceneBoundingRect(); + } + } + } else { + bounds = m_graphicsView->rootItemRect(); + } + m_graphicsView->frame(bounds); zoomOut(); } };