diff options
author | Eike Ziller <eike.ziller@qt.io> | 2022-05-04 18:12:55 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2022-05-10 13:16:22 +0000 |
commit | 42e072f15968e354c981c7da499c230634189bf5 (patch) | |
tree | 2fcba8fcaf007755b3c8c6ab756778def662f690 /src/plugins/cppeditor/cppeditordocument.cpp | |
parent | b5b9b7e32c26245ad5f6d41a31be036f30088ea3 (diff) |
Move MinimizableInfoBars from CppEditorDocument to IDocument
Similar to the InfoBar.
The only thing that an editor implementation needs to do is to set a
settings group and the possible info bars in the document constructor.
And later call document->minimizableInfoBars()->setInfoVisible(id,
visible) to manage the state.
Change-Id: I23afb3639b70b1bfccd424579da018280a7fe2cb
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/cppeditor/cppeditordocument.cpp')
-rw-r--r-- | src/plugins/cppeditor/cppeditordocument.cpp | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/src/plugins/cppeditor/cppeditordocument.cpp b/src/plugins/cppeditor/cppeditordocument.cpp index 4a1bbc35fb..edd776f537 100644 --- a/src/plugins/cppeditor/cppeditordocument.cpp +++ b/src/plugins/cppeditor/cppeditordocument.cpp @@ -50,6 +50,7 @@ #include <utils/executeondestruction.h> #include <utils/infobar.h> #include <utils/mimeutils.h> +#include <utils/minimizableinfobars.h> #include <utils/qtcassert.h> #include <utils/runextensions.h> @@ -106,7 +107,6 @@ private: }; CppEditorDocument::CppEditorDocument() - : m_minimizableInfoBars(*infoBar()) { setId(CppEditor::Constants::CPPEDITOR_ID); setSyntaxHighlighter(new CppHighlighter); @@ -130,8 +130,8 @@ CppEditorDocument::CppEditorDocument() connect(&m_parseContextModel, &ParseContextModel::preferredParseContextChanged, this, &CppEditorDocument::reparseWithPreferredParseContext); - m_minimizableInfoBars.setSettingsGroup(Constants::CPPEDITOR_SETTINGSGROUP); - m_minimizableInfoBars.setPossibleInfoBarEntries( + minimizableInfoBars()->setSettingsGroup(Constants::CPPEDITOR_SETTINGSGROUP); + minimizableInfoBars()->setPossibleInfoBarEntries( {{NO_PROJECT_CONFIGURATION, tr("<b>Warning</b>: This file is not part of any project. " "The code model might have issues parsing this file properly.")}}); @@ -413,25 +413,20 @@ QFuture<CursorInfo> CppEditorDocument::cursorInfo(const CursorInfoParams ¶ms return processor()->cursorInfo(params); } -const Utils::MinimizableInfoBars &CppEditorDocument::minimizableInfoBars() const -{ - return m_minimizableInfoBars; -} - BaseEditorDocumentProcessor *CppEditorDocument::processor() { if (!m_processor) { m_processor.reset(mm()->createEditorDocumentProcessor(this)); - connect(m_processor.data(), &BaseEditorDocumentProcessor::projectPartInfoUpdated, - [this] (const ProjectPartInfo &info) - { - const bool hasProjectPart = !(info.hints & ProjectPartInfo::IsFallbackMatch); - m_minimizableInfoBars.setInfoVisible(NO_PROJECT_CONFIGURATION, !hasProjectPart); - m_parseContextModel.update(info); - const bool isAmbiguous = info.hints & ProjectPartInfo::IsAmbiguousMatch; - const bool isProjectFile = info.hints & ProjectPartInfo::IsFromProjectMatch; - showHideInfoBarAboutMultipleParseContexts(isAmbiguous && isProjectFile); - }); + connect(m_processor.data(), + &BaseEditorDocumentProcessor::projectPartInfoUpdated, + [this](const ProjectPartInfo &info) { + const bool hasProjectPart = !(info.hints & ProjectPartInfo::IsFallbackMatch); + minimizableInfoBars()->setInfoVisible(NO_PROJECT_CONFIGURATION, !hasProjectPart); + m_parseContextModel.update(info); + const bool isAmbiguous = info.hints & ProjectPartInfo::IsAmbiguousMatch; + const bool isProjectFile = info.hints & ProjectPartInfo::IsFromProjectMatch; + showHideInfoBarAboutMultipleParseContexts(isAmbiguous && isProjectFile); + }); connect(m_processor.data(), &BaseEditorDocumentProcessor::codeWarningsUpdated, [this] (unsigned revision, const QList<QTextEdit::ExtraSelection> selections, |