forked from qt-creator/qt-creator
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:
@@ -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()
|
||||
|
Reference in New Issue
Block a user