diff options
Diffstat (limited to 'src/plugins/qmldesigner/qmldesignerplugin.cpp')
-rw-r--r-- | src/plugins/qmldesigner/qmldesignerplugin.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp index b7d7000be4..254c0ea512 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.cpp +++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp @@ -186,8 +186,9 @@ static bool isDesignerMode(Utils::Id mode) static bool documentIsAlreadyOpen(DesignDocument *designDocument, Core::IEditor *editor, Utils::Id newMode) { return designDocument - && editor == designDocument->editor() - && isDesignerMode(newMode); + && editor == designDocument->editor() + && isDesignerMode(newMode) + && designDocument->fileName() == editor->document()->filePath(); } static bool shouldAssertInException() @@ -440,14 +441,12 @@ void QmlDesignerPlugin::integrateIntoQtCreator(QWidget *modeWidget) &Core::ModeManager::currentModeChanged, [this](Utils::Id newMode, Utils::Id oldMode) { Core::IEditor *currentEditor = Core::EditorManager::currentEditor(); - if (d && currentEditor && checkIfEditorIsQtQuick(currentEditor) + if (isDesignerMode(newMode) && checkIfEditorIsQtQuick(currentEditor) && !documentIsAlreadyOpen(currentDesignDocument(), currentEditor, newMode)) { - if (isDesignerMode(newMode)) { - showDesigner(); - } else if (currentDesignDocument() - || (!isDesignerMode(newMode) && isDesignerMode(oldMode))) { - hideDesigner(); - } + showDesigner(); + } else if (currentDesignDocument() + || (!isDesignerMode(newMode) && isDesignerMode(oldMode))) { + hideDesigner(); } }); } |