From 0087a74ecc5e488b52f3dbcc267629b0de71d15a Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 2 May 2018 15:23:36 +0200 Subject: [PATCH] QmlDesigner: Only the rewriter for the document should block UI We use different rewriter for different purposes. Only the rewriter that manages the current document should disable the UI. Change-Id: Ic410f7ee62ce13bb0eef133619f93c05b5632a56 Reviewed-by: Tim Jenssen --- src/plugins/qmldesigner/designercore/include/viewmanager.h | 3 +++ .../qmldesigner/designercore/model/rewriterview.cpp | 7 +++++-- src/plugins/qmldesigner/designercore/model/viewmanager.cpp | 5 +++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/include/viewmanager.h b/src/plugins/qmldesigner/designercore/include/viewmanager.h index 09300aee3ea..382388218b2 100644 --- a/src/plugins/qmldesigner/designercore/include/viewmanager.h +++ b/src/plugins/qmldesigner/designercore/include/viewmanager.h @@ -42,6 +42,7 @@ class DesignDocument; class AbstractCustomTool; class DesignerActionManager; class NodeInstanceView; +class RewriterView; namespace Internal { class DesignModeWidget; } @@ -98,6 +99,8 @@ public: void qmlJSEditorHelpId(const Core::IContext::HelpIdCallback &callback) const; DesignDocument *currentDesignDocument() const; + bool usesRewriterView(RewriterView *rewriterView); + private: // functions Q_DISABLE_COPY(ViewManager) diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp index dedaf936545..c6cde7a3205 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp +++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp @@ -873,8 +873,11 @@ void RewriterView::qmlTextChanged() amendQmlText(); } else { #ifndef QMLDESIGNER_TEST - QmlDesignerPlugin::instance()->viewManager().disableWidgets(); - m_amendTimer.start(400); + auto &viewManager = QmlDesignerPlugin::instance()->viewManager(); + if (viewManager.usesRewriterView(this)) { + QmlDesignerPlugin::instance()->viewManager().disableWidgets(); + m_amendTimer.start(400); + } #else /*Keep test synchronous*/ amendQmlText(); diff --git a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp index 7ebda714c4b..9fca0678626 100644 --- a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp +++ b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp @@ -449,6 +449,11 @@ void ViewManager::reformatFileUsingTextEditorView() d->textEditorView.reformatFile(); } +bool ViewManager::usesRewriterView(RewriterView *rewriterView) +{ + return currentDesignDocument()->rewriterView() == rewriterView; +} + } // namespace QmlDesigner #endif //QMLDESIGNER_TEST