From 528b634e5a0809060ed598ca2f5dd0a5b93c4128 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 30 Sep 2020 16:49:45 +0200 Subject: [PATCH] QmlDesigner: Disable TimelineEditorView when not visible Change-Id: If67a027c9ad52b2b2fa62df8cf94afdd1c2c49d7 Reviewed-by: Mahmoud Badri Reviewed-by: Miikka Heikkinen Reviewed-by: Thomas Hartmann --- .../components/timelineeditor/timelineview.cpp | 4 ++++ .../components/timelineeditor/timelinewidget.cpp | 14 ++++++++++++++ .../components/timelineeditor/timelinewidget.h | 1 + 3 files changed, 19 insertions(+) diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp index a1de7bca1a8..d0679c80bb6 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp @@ -77,6 +77,10 @@ TimelineView::~TimelineView() = default; void TimelineView::modelAttached(Model *model) { AbstractView::modelAttached(model); + + if (!isEnabled()) + return; + if (m_timelineWidget) m_timelineWidget->init(); } diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp index a618d22a614..e740fb924ec 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp @@ -537,10 +537,18 @@ void TimelineWidget::setFocus() void TimelineWidget::showEvent(QShowEvent *event) { Q_UNUSED(event) + + m_timelineView->setEnabled(true); + + if (m_timelineView->model()) + init(); + graphicsScene()->setWidth(m_graphicsView->viewport()->width()); graphicsScene()->invalidateLayout(); graphicsScene()->invalidate(); graphicsScene()->onShow(); + + QWidget::showEvent(event); } void TimelineWidget::resizeEvent(QResizeEvent *event) @@ -549,6 +557,12 @@ void TimelineWidget::resizeEvent(QResizeEvent *event) graphicsScene()->setWidth(m_graphicsView->viewport()->width()); } +void TimelineWidget::hideEvent(QHideEvent *event) +{ + m_timelineView->setEnabled(false); + QWidget::hideEvent(event); +} + TimelineView *TimelineWidget::timelineView() const { return m_timelineView; diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.h b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.h index f50abbebc71..b546452e560 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.h +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.h @@ -81,6 +81,7 @@ public slots: protected: void showEvent(QShowEvent *event) override; void resizeEvent(QResizeEvent *event) override; + void hideEvent(QHideEvent *event) override; private: void connectToolbar();