diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp index 4ce600a6a20..de53fc339a7 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.cpp +++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp @@ -62,11 +62,12 @@ #include #include #include -#include #include #include +#include #include +#include #include #include #include @@ -81,9 +82,10 @@ #include #include -#include "nanotrace/nanotrace.h" #include +#include + static Q_LOGGING_CATEGORY(qmldesignerLog, "qtc.qmldesigner", QtWarningMsg) using namespace QmlDesigner::Internal; @@ -161,7 +163,7 @@ public: SettingsPage settingsPage{externalDependencies}; DesignModeWidget mainWidget; QtQuickDesignerFactory m_qtQuickDesignerFactory; - bool blockEditorChange = false; + Utils::Guard m_ignoreChanges; Utils::UniqueObjectPtr toolBar; Utils::UniqueObjectPtr statusBar; QHash m_traceIdentifierDataHash; @@ -496,7 +498,7 @@ void QmlDesignerPlugin::hideDesigner() void QmlDesignerPlugin::changeEditor() { - if (d->blockEditorChange) + if (d->m_ignoreChanges.isLocked()) return; clearDesigner(); @@ -687,9 +689,8 @@ void QmlDesignerPlugin::switchToTextModeDeferred() void QmlDesignerPlugin::emitCurrentTextEditorChanged(Core::IEditor *editor) { - d->blockEditorChange = true; + const std::lock_guard locker(d->m_ignoreChanges); emit Core::EditorManager::instance()->currentEditorChanged(editor); - d->blockEditorChange = false; } double QmlDesignerPlugin::formEditorDevicePixelRatio()