From a6e3b39d4081e261d35c183642ececf4fdd84bc1 Mon Sep 17 00:00:00 2001 From: Knud Dollereder Date: Tue, 23 Nov 2021 11:51:36 +0100 Subject: [PATCH] Retain zoom factor when showing after hiding The timeline and transition editor where resetting their zoom factors to 0 in the showevent. This is now fixed. Fixes: QDS-5337 Change-Id: Ic4d9b2af7613b4c5c2fd5e9c646df51978fd05f6 Reviewed-by: Reviewed-by: Qt CI Bot Reviewed-by: Thomas Hartmann --- .../timelineeditor/timelinegraphicsscene.cpp | 3 +-- .../components/timelineeditor/timelinewidget.cpp | 10 ++++++---- .../components/timelineeditor/timelinewidget.h | 2 +- .../transitioneditor/transitioneditorgraphicsscene.cpp | 2 +- .../transitioneditor/transitioneditorwidget.cpp | 10 +++++----- .../transitioneditor/transitioneditorwidget.h | 2 +- 6 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp index ad2dfd88f68..2acf6601ab7 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp @@ -136,8 +136,7 @@ void TimelineGraphicsScene::onShow() int cf = std::round(timeline.currentKeyframe()); setCurrentFrame(cf); } - - emit m_layout->zoomChanged(0); + emit m_layout->zoomChanged(zoom()); } } diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp index f4ff114bf62..ee93b4cf575 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp @@ -482,7 +482,7 @@ void TimelineWidget::contextHelp(const Core::IContext::HelpCallback &callback) c callback({}); } -void TimelineWidget::init() +void TimelineWidget::init(int zoom) { QmlTimeline currentTimeline = m_timelineView->timelineForState(m_timelineView->currentState()); if (currentTimeline.isValid()) { @@ -499,8 +499,8 @@ void TimelineWidget::init() m_graphicsScene->setWidth(m_graphicsView->viewport()->width()); // setScaleFactor uses QSignalBlocker. - m_toolbar->setScaleFactor(0); - m_graphicsScene->setZoom(0); + m_toolbar->setScaleFactor(zoom); + m_graphicsScene->setZoom(zoom); } void TimelineWidget::reset() @@ -611,6 +611,8 @@ void TimelineWidget::showEvent(QShowEvent *event) { Q_UNUSED(event) + int zoom = m_toolbar->scaleFactor(); + m_timelineView->setEnabled(true); graphicsScene()->setWidth(m_graphicsView->viewport()->width()); @@ -622,7 +624,7 @@ void TimelineWidget::showEvent(QShowEvent *event) //All the events have to be fully processed before we call init() if (m_timelineView->model()) - QTimer::singleShot(0, [this]() { init(); }); + QTimer::singleShot(0, [this, zoom]() { init(zoom); }); } void TimelineWidget::resizeEvent(QResizeEvent *event) diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.h b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.h index ebaf00104dc..5edc018b60a 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.h +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.h @@ -62,7 +62,7 @@ public: TimelineView *timelineView() const; TimelineToolBar *toolBar() const; - void init(); + void init(int zoom = 0); void reset(); void invalidateTimelineDuration(const QmlTimeline &timeline); diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorgraphicsscene.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorgraphicsscene.cpp index e2b95783569..a78ad3c7502 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorgraphicsscene.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorgraphicsscene.cpp @@ -119,7 +119,7 @@ void TransitionEditorGraphicsScene::invalidateScrollbar() void TransitionEditorGraphicsScene::onShow() { - emit m_layout->zoomChanged(0); + emit m_layout->zoomChanged(zoom()); } void TransitionEditorGraphicsScene::setTransition(const ModelNode &transition) diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp index 6077c9de28c..b75f9d7f874 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp @@ -326,7 +326,7 @@ void TransitionEditorWidget::contextHelp(const Core::IContext::HelpCallback &cal callback({}); } -void TransitionEditorWidget::init() +void TransitionEditorWidget::init(int zoom) { ModelNode root = transitionEditorView()->rootModelNode(); ModelNode transition; @@ -345,7 +345,7 @@ void TransitionEditorWidget::init() m_graphicsScene->setWidth(m_graphicsView->viewport()->width()); - m_toolbar->setScaleFactor(40); + m_toolbar->setScaleFactor(zoom); m_toolbar->setCurrentTransition(transition); @@ -355,13 +355,13 @@ void TransitionEditorWidget::init() m_toolbar->setDuration(duration); - m_graphicsScene->setZoom(40); + m_graphicsScene->setZoom(zoom); } void TransitionEditorWidget::updateData(const ModelNode &transition) { if (!transition.isValid()) { - init(); + init(m_toolbar->scaleFactor()); return; } @@ -409,7 +409,7 @@ void TransitionEditorWidget::showEvent(QShowEvent *event) m_transitionEditorView->setEnabled(true); if (m_transitionEditorView->model()) - init(); + init(m_toolbar->scaleFactor()); graphicsScene()->setWidth(m_graphicsView->viewport()->width()); graphicsScene()->invalidateLayout(); diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h index ea4b2a6affa..698c4b76aeb 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h @@ -61,7 +61,7 @@ public: TransitionEditorView *transitionEditorView() const; TransitionEditorToolBar *toolBar() const; - void init(); + void init(int zoom = 0); void reset(); void setupScrollbar(int min, int max, int current);