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

@@ -78,23 +78,29 @@ ClangTextMark::ClangTextMark(const QString &fileName,
: QApplication::translate("Clang Code Model Marks", "Code Model Error"));
setPriority(warning ? TextEditor::TextMark::NormalPriority
: TextEditor::TextMark::HighPriority);
setIcon(diagnostic.severity());
updateIcon();
setLineAnnotation(diagnostic.text().toString());
}
void ClangTextMark::setIcon(ClangBackEnd::DiagnosticSeverity severity)
void ClangTextMark::updateIcon(bool valid)
{
static const QIcon errorIcon = Utils::Icon({
{QLatin1String(":/clangcodemodel/images/error.png"), Utils::Theme::IconsErrorColor}
}, Utils::Icon::Tint).icon();
static const QIcon warningIcon = Utils::Icon({
{QLatin1String(":/clangcodemodel/images/warning.png"), Utils::Theme::IconsWarningColor}
}, Utils::Icon::Tint).icon();
static const QIcon errorIcon = Utils::Icon(
{{":/clangcodemodel/images/error.png", Utils::Theme::IconsErrorColor}},
Utils::Icon::Tint).icon();
static const QIcon warningIcon = Utils::Icon(
{{":/clangcodemodel/images/warning.png", Utils::Theme::IconsWarningColor}},
Utils::Icon::Tint).icon();
static const QIcon invalidErrorIcon = Utils::Icon(
{{":/clangcodemodel/images/error.png", Utils::Theme::IconsDisabledColor}},
Utils::Icon::Tint).icon();
static const QIcon invalidWarningIcon = Utils::Icon(
{{":/clangcodemodel/images/warning.png", Utils::Theme::IconsDisabledColor}},
Utils::Icon::Tint).icon();
if (isWarningOrNote(severity))
TextMark::setIcon(warningIcon);
if (isWarningOrNote(m_diagnostic.severity()))
setIcon(valid ? warningIcon : invalidWarningIcon);
else
TextMark::setIcon(errorIcon);
setIcon(valid ? errorIcon : invalidErrorIcon);
}
bool ClangTextMark::addToolTipContent(QLayout *target) const