summaryrefslogtreecommitdiff
path: root/src/plugins/clangcodemodel/clangdiagnosticmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/clangcodemodel/clangdiagnosticmanager.cpp')
-rw-r--r--src/plugins/clangcodemodel/clangdiagnosticmanager.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/plugins/clangcodemodel/clangdiagnosticmanager.cpp b/src/plugins/clangcodemodel/clangdiagnosticmanager.cpp
index f8afaf6565..f5fe4d6368 100644
--- a/src/plugins/clangcodemodel/clangdiagnosticmanager.cpp
+++ b/src/plugins/clangcodemodel/clangdiagnosticmanager.cpp
@@ -41,6 +41,7 @@
#include <utils/fileutils.h>
#include <utils/proxyaction.h>
#include <utils/qtcassert.h>
+#include <utils/theme/theme.h>
#include <QFileInfo>
#include <QTextBlock>
@@ -347,6 +348,19 @@ ClangDiagnosticManager::diagnosticsAt(uint line, uint column) const
return diagnostics;
}
+void ClangDiagnosticManager::invalidateDiagnostics()
+{
+ if (m_diagnosticsInvalidated)
+ return;
+
+ m_diagnosticsInvalidated = true;
+ for (ClangTextMark *textMark : m_clangTextMarks) {
+ textMark->setColor(::Utils::Theme::Color::IconsDisabledColor);
+ textMark->updateIcon(/*valid=*/ false);
+ textMark->updateMarker();
+ }
+}
+
void ClangDiagnosticManager::clearDiagnosticsWithFixIts()
{
m_fixItdiagnostics.clear();
@@ -364,6 +378,7 @@ void ClangDiagnosticManager::generateEditorSelections()
void ClangDiagnosticManager::processNewDiagnostics(
const QVector<ClangBackEnd::DiagnosticContainer> &allDiagnostics)
{
+ m_diagnosticsInvalidated = false;
filterDiagnostics(allDiagnostics);
generateTextMarks();