aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnosticmodel.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/clangstaticanalyzer/clangstaticanalyzerdiagnosticmodel.h')
-rw-r--r--plugins/clangstaticanalyzer/clangstaticanalyzerdiagnosticmodel.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnosticmodel.h b/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnosticmodel.h
index 68dcf7ed05..a2dc49c26c 100644
--- a/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnosticmodel.h
+++ b/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnosticmodel.h
@@ -20,8 +20,15 @@
#define CLANGSTATICANALYZERDIAGNOSTICMODEL_H
#include "clangstaticanalyzerlogfilereader.h"
+#include "clangstaticanalyzerprojectsettings.h"
+
+#include <utils/fileutils.h>
#include <QAbstractListModel>
+#include <QPointer>
+#include <QSortFilterProxyModel>
+
+namespace ProjectExplorer { class Project; }
namespace ClangStaticAnalyzer {
namespace Internal {
@@ -45,6 +52,26 @@ private:
QList<Diagnostic> m_diagnostics;
};
+class ClangStaticAnalyzerDiagnosticFilterModel : public QSortFilterProxyModel
+{
+ Q_OBJECT
+
+public:
+ ClangStaticAnalyzerDiagnosticFilterModel(QObject *parent = 0);
+
+ void setProject(ProjectExplorer::Project *project);
+ void addSuppressedDiagnostic(const SuppressedDiagnostic &diag);
+ ProjectExplorer::Project *project() const { return m_project; }
+
+private:
+ bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
+ void handleSuppressedDiagnosticsChanged();
+
+ QPointer<ProjectExplorer::Project> m_project;
+ Utils::FileName m_lastProjectDirectory;
+ SuppressedDiagnosticsList m_suppressedDiagnostics;
+};
+
} // namespace Internal
} // namespace ClangStaticAnalyzer