diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index 13a85a8c5fc..a926efc45c6 100644 --- a/src/plugins/qmljseditor/qmljseditor.cpp +++ b/src/plugins/qmljseditor/qmljseditor.cpp @@ -58,7 +58,6 @@ #include #include #include -#include #include #include @@ -112,7 +111,6 @@ QmlJSEditorWidget::QmlJSEditorWidget() { m_outlineCombo = 0; m_contextPane = 0; - m_firstSementicInfo = true; m_findReferences = new FindReferences(this); setLanguageSettingsId(QmlJSTools::Constants::QML_JS_SETTINGS_ID); @@ -949,16 +947,6 @@ void QmlJSEditorWidget::semanticInfoUpdated(const SemanticInfo &semanticInfo) } } - if (m_firstSementicInfo) { - m_firstSementicInfo = false; - if (semanticInfo.document->language() == Dialect::QmlQtQuick2Ui) { - InfoBarEntry info(Id(Constants::QML_UI_FILE_WARNING), - tr("This file should only be edited in Design mode.")); - info.setCustomButtonInfo(tr("Switch Mode"), []() { ModeManager::activateMode(Core::Constants::MODE_DESIGN); }); - textDocument()->infoBar()->addInfo(info); - } - } - updateUses(); } diff --git a/src/plugins/qmljseditor/qmljseditor.h b/src/plugins/qmljseditor/qmljseditor.h index b27029cd17c..5701d823f13 100644 --- a/src/plugins/qmljseditor/qmljseditor.h +++ b/src/plugins/qmljseditor/qmljseditor.h @@ -139,8 +139,6 @@ private: int m_oldCursorPosition; FindReferences *m_findReferences; - - bool m_firstSementicInfo; }; diff --git a/src/plugins/qmljseditor/qmljseditordocument.cpp b/src/plugins/qmljseditor/qmljseditordocument.cpp index cf81dd9a4f3..5452de327e2 100644 --- a/src/plugins/qmljseditor/qmljseditordocument.cpp +++ b/src/plugins/qmljseditor/qmljseditordocument.cpp @@ -37,6 +37,10 @@ #include "qmljssemanticinfoupdater.h" #include "qmloutlinemodel.h" +#include +#include +#include + #include #include #include @@ -520,6 +524,19 @@ void QmlJSEditorDocumentPrivate::acceptNewSemanticInfo(const SemanticInfo &seman m_outlineModelNeedsUpdate = true; m_semanticHighlightingNecessary = true; + if (m_firstSementicInfo) { + m_firstSementicInfo = false; + if (semanticInfo.document->language() == Dialect::QmlQtQuick2Ui + && !q->infoBar()->containsInfo(Core::Id(Constants::QML_UI_FILE_WARNING))) { + Core::InfoBarEntry info(Core::Id(Constants::QML_UI_FILE_WARNING), + tr("This file should only be edited in Design mode.")); + info.setCustomButtonInfo(tr("Switch Mode"), []() { + Core::ModeManager::activateMode(Core::Constants::MODE_DESIGN); + }); + q->infoBar()->addInfo(info); + } + } + emit q->semanticInfoUpdated(m_semanticInfo); // calls triggerPendingUpdates as necessary } diff --git a/src/plugins/qmljseditor/qmljseditordocument_p.h b/src/plugins/qmljseditor/qmljseditordocument_p.h index d3c41d93ef2..174578a0b31 100644 --- a/src/plugins/qmljseditor/qmljseditordocument_p.h +++ b/src/plugins/qmljseditor/qmljseditordocument_p.h @@ -75,6 +75,7 @@ public: Internal::SemanticHighlighter *m_semanticHighlighter; bool m_semanticHighlightingNecessary; bool m_outlineModelNeedsUpdate; + bool m_firstSementicInfo = true; QTimer m_updateOutlineModelTimer; Internal::QmlOutlineModel *m_outlineModel; };