QmlDesignerPlugin: Use Utils::Guard for guarding the recursive call

Change-Id: I179d58374fcef4bebce1c3240bf8ba3d956f9c9c
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
This commit is contained in:
Jarek Kobus
2023-12-13 21:15:03 +01:00
committed by Tim Jenssen
parent c8f35db483
commit 7969fb2147

View File

@@ -62,11 +62,12 @@
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/projectmanager.h>
#include <projectexplorer/target.h>
#include <sqlitelibraryinitializer.h>
#include <qmldesignerbase/qmldesignerbaseplugin.h>
#include <qmljs/qmljsmodelmanagerinterface.h>
#include <sqlite/sqlitelibraryinitializer.h>
#include <utils/algorithm.h>
#include <utils/guard.h>
#include <utils/hostosinfo.h>
#include <utils/qtcassert.h>
#include <utils/uniqueobjectptr.h>
@@ -81,9 +82,10 @@
#include <QTimer>
#include <QWindow>
#include "nanotrace/nanotrace.h"
#include <modelnodecontextmenu_helper.h>
#include <mutex>
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<QToolBar> toolBar;
Utils::UniqueObjectPtr<QWidget> statusBar;
QHash<QString, TraceIdentifierData> 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()