From b292de228caef4c0c4d86a07340e7a54cae37f7d Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 30 Sep 2020 16:50:05 +0200 Subject: [PATCH] QmlDesigner: Disable TransitionEditorView when not visible Change-Id: I76a1829dae18d651168f92558d65beb8b94f1f88 Reviewed-by: Mahmoud Badri Reviewed-by: Miikka Heikkinen Reviewed-by: Thomas Hartmann --- .../transitioneditor/transitioneditorview.cpp | 4 ++++ .../transitioneditor/transitioneditorwidget.cpp | 14 ++++++++++++++ .../transitioneditor/transitioneditorwidget.h | 1 + 3 files changed, 19 insertions(+) diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp index 71f6c3ed885..ef83b17d90a 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp @@ -72,6 +72,10 @@ TransitionEditorView::~TransitionEditorView() = default; void TransitionEditorView::modelAttached(Model *model) { AbstractView::modelAttached(model); + + if (!isEnabled()) + return; + if (m_transitionEditorWidget) m_transitionEditorWidget->init(); } diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp index 87133e68614..3d7e4ec4216 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp @@ -385,10 +385,24 @@ void TransitionEditorWidget::setupScrollbar(int min, int max, int current) void TransitionEditorWidget::showEvent(QShowEvent *event) { Q_UNUSED(event) + + m_transitionEditorView->setEnabled(true); + + if (m_transitionEditorView->model()) + init(); + graphicsScene()->setWidth(m_graphicsView->viewport()->width()); graphicsScene()->invalidateLayout(); graphicsScene()->invalidate(); graphicsScene()->onShow(); + + QWidget::showEvent(event); +} + +void TransitionEditorWidget::hideEvent(QHideEvent *event) +{ + m_transitionEditorView->setEnabled(false); + QWidget::hideEvent(event); } void TransitionEditorWidget::resizeEvent(QResizeEvent *event) diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h index 97f57f1c2f6..dbbe87a1ffd 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h @@ -74,6 +74,7 @@ public slots: protected: void showEvent(QShowEvent *event) override; + void hideEvent(QHideEvent *event) override; void resizeEvent(QResizeEvent *event) override; private: