Clang: Gray out diagnostics on document change

When reparses take a while, this is helpful.

Change-Id: Ie2003a3d65b30d944d20fa19dd4161412182851c
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Nikolai Kosjar
2017-07-03 13:29:30 +02:00
parent 1a16caf221
commit 2747985358
9 changed files with 48 additions and 12 deletions

View File

@@ -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();