From 33fd656641b36474f1f143d79bfbb6e17a45889a Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Fri, 14 Nov 2014 14:59:27 +0100 Subject: [PATCH] Check for valid Diagnostic Change-Id: Icfce44a373d56f008027330f9b1a2d446f4d2adb Reviewed-by: Nikolai Kosjar --- .../clangstaticanalyzer/clangstaticanalyzerdiagnostic.cpp | 5 +++++ plugins/clangstaticanalyzer/clangstaticanalyzerdiagnostic.h | 2 ++ .../clangstaticanalyzerdiagnosticview.cpp | 3 +++ 3 files changed, 10 insertions(+) diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnostic.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnostic.cpp index e9152ffa47e..09d810dfc93 100644 --- a/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnostic.cpp +++ b/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnostic.cpp @@ -46,5 +46,10 @@ bool ExplainingStep::isValid() const return location.isValid() && !ranges.isEmpty() && !message.isEmpty(); } +bool Diagnostic::isValid() const +{ + return !description.isEmpty(); +} + } // namespace Internal } // namespace ClangStaticAnalyzer diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnostic.h b/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnostic.h index 3348cfa416d..75df6218a9f 100644 --- a/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnostic.h +++ b/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnostic.h @@ -56,6 +56,8 @@ public: class Diagnostic { public: + bool isValid() const; + QString description; QString category; QString type; diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnosticview.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnosticview.cpp index fd9e216ed76..6d00968c867 100644 --- a/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnosticview.cpp +++ b/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnosticview.cpp @@ -168,6 +168,7 @@ DetailedErrorDelegate::SummaryLineInfo ClangStaticAnalyzerDiagnosticDelegate::su const QModelIndex &index) const { const Diagnostic diagnostic = index.data(Qt::UserRole).value(); + QTC_ASSERT(diagnostic.isValid(), return SummaryLineInfo()); DetailedErrorDelegate::SummaryLineInfo info; info.errorText = diagnostic.description; @@ -188,6 +189,8 @@ QWidget *ClangStaticAnalyzerDiagnosticDelegate::createDetailsWidget(const QFont QVBoxLayout *layout = new QVBoxLayout; const Diagnostic diagnostic = index.data(Qt::UserRole).value(); + if (!diagnostic.isValid()) + return widget; // Add summary label QLabel *summaryLineLabel = createSummaryLabel(diagnostic);