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/projectexplorerconstants.h>
|
||||||
#include <projectexplorer/projectmanager.h>
|
#include <projectexplorer/projectmanager.h>
|
||||||
#include <projectexplorer/target.h>
|
#include <projectexplorer/target.h>
|
||||||
#include <sqlitelibraryinitializer.h>
|
|
||||||
#include <qmldesignerbase/qmldesignerbaseplugin.h>
|
#include <qmldesignerbase/qmldesignerbaseplugin.h>
|
||||||
#include <qmljs/qmljsmodelmanagerinterface.h>
|
#include <qmljs/qmljsmodelmanagerinterface.h>
|
||||||
|
#include <sqlite/sqlitelibraryinitializer.h>
|
||||||
|
|
||||||
#include <utils/algorithm.h>
|
#include <utils/algorithm.h>
|
||||||
|
#include <utils/guard.h>
|
||||||
#include <utils/hostosinfo.h>
|
#include <utils/hostosinfo.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
#include <utils/uniqueobjectptr.h>
|
#include <utils/uniqueobjectptr.h>
|
||||||
@@ -81,9 +82,10 @@
|
|||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QWindow>
|
#include <QWindow>
|
||||||
|
|
||||||
#include "nanotrace/nanotrace.h"
|
|
||||||
#include <modelnodecontextmenu_helper.h>
|
#include <modelnodecontextmenu_helper.h>
|
||||||
|
|
||||||
|
#include <mutex>
|
||||||
|
|
||||||
static Q_LOGGING_CATEGORY(qmldesignerLog, "qtc.qmldesigner", QtWarningMsg)
|
static Q_LOGGING_CATEGORY(qmldesignerLog, "qtc.qmldesigner", QtWarningMsg)
|
||||||
|
|
||||||
using namespace QmlDesigner::Internal;
|
using namespace QmlDesigner::Internal;
|
||||||
@@ -161,7 +163,7 @@ public:
|
|||||||
SettingsPage settingsPage{externalDependencies};
|
SettingsPage settingsPage{externalDependencies};
|
||||||
DesignModeWidget mainWidget;
|
DesignModeWidget mainWidget;
|
||||||
QtQuickDesignerFactory m_qtQuickDesignerFactory;
|
QtQuickDesignerFactory m_qtQuickDesignerFactory;
|
||||||
bool blockEditorChange = false;
|
Utils::Guard m_ignoreChanges;
|
||||||
Utils::UniqueObjectPtr<QToolBar> toolBar;
|
Utils::UniqueObjectPtr<QToolBar> toolBar;
|
||||||
Utils::UniqueObjectPtr<QWidget> statusBar;
|
Utils::UniqueObjectPtr<QWidget> statusBar;
|
||||||
QHash<QString, TraceIdentifierData> m_traceIdentifierDataHash;
|
QHash<QString, TraceIdentifierData> m_traceIdentifierDataHash;
|
||||||
@@ -496,7 +498,7 @@ void QmlDesignerPlugin::hideDesigner()
|
|||||||
|
|
||||||
void QmlDesignerPlugin::changeEditor()
|
void QmlDesignerPlugin::changeEditor()
|
||||||
{
|
{
|
||||||
if (d->blockEditorChange)
|
if (d->m_ignoreChanges.isLocked())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
clearDesigner();
|
clearDesigner();
|
||||||
@@ -687,9 +689,8 @@ void QmlDesignerPlugin::switchToTextModeDeferred()
|
|||||||
|
|
||||||
void QmlDesignerPlugin::emitCurrentTextEditorChanged(Core::IEditor *editor)
|
void QmlDesignerPlugin::emitCurrentTextEditorChanged(Core::IEditor *editor)
|
||||||
{
|
{
|
||||||
d->blockEditorChange = true;
|
const std::lock_guard locker(d->m_ignoreChanges);
|
||||||
emit Core::EditorManager::instance()->currentEditorChanged(editor);
|
emit Core::EditorManager::instance()->currentEditorChanged(editor);
|
||||||
d->blockEditorChange = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
double QmlDesignerPlugin::formEditorDevicePixelRatio()
|
double QmlDesignerPlugin::formEditorDevicePixelRatio()
|
||||||
|
Reference in New Issue
Block a user