aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cppeditor/cppeditordocument.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2022-05-04 18:12:55 +0200
committerEike Ziller <eike.ziller@qt.io>2022-05-10 13:16:22 +0000
commit42e072f15968e354c981c7da499c230634189bf5 (patch)
tree2fcba8fcaf007755b3c8c6ab756778def662f690 /src/plugins/cppeditor/cppeditordocument.cpp
parentb5b9b7e32c26245ad5f6d41a31be036f30088ea3 (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.cpp31
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 &params
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,