aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clangtools/clangtoolsprojectsettings.h
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2018-05-08 16:47:27 +0200
committerNikolai Kosjar <nikolai.kosjar@qt.io>2018-05-11 12:08:02 +0000
commitde751e5b69f66206ea47ef8dc2a81a5e087f5b17 (patch)
tree3e318227db5e2b8a6fd813efdab570c2c73f435b /src/plugins/clangtools/clangtoolsprojectsettings.h
parentba6f6f41d0aa36fc6a930d0585b4a170cd26f3f8 (diff)
ClangTools: Move CSA's project settings into ClangToolsProjectSettings
Change-Id: I830c280e718aae416cd487eb5d02caf1e873f7c1 Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Diffstat (limited to 'src/plugins/clangtools/clangtoolsprojectsettings.h')
-rw-r--r--src/plugins/clangtools/clangtoolsprojectsettings.h43
1 files changed, 41 insertions, 2 deletions
diff --git a/src/plugins/clangtools/clangtoolsprojectsettings.h b/src/plugins/clangtools/clangtoolsprojectsettings.h
index c2e14e5f21..d29c0405d7 100644
--- a/src/plugins/clangtools/clangtoolsprojectsettings.h
+++ b/src/plugins/clangtools/clangtoolsprojectsettings.h
@@ -33,8 +33,39 @@
namespace ClangTools {
namespace Internal {
+class Diagnostic;
+
+class SuppressedDiagnostic
+{
+public:
+ SuppressedDiagnostic(const Utils::FileName &filePath, const QString &description,
+ const QString &contextKind, const QString &context, int uniquifier)
+ : filePath(filePath)
+ , description(description)
+ , contextKind(contextKind)
+ , context(context)
+ , uniquifier(uniquifier)
+ {
+ }
+
+ SuppressedDiagnostic(const Diagnostic &diag);
+
+ Utils::FileName filePath; // Relative for files in project, absolute otherwise.
+ QString description;
+ QString contextKind;
+ QString context;
+ int uniquifier;
+};
+
+inline bool operator==(const SuppressedDiagnostic &d1, const SuppressedDiagnostic &d2)
+{
+ return d1.filePath == d2.filePath && d1.description == d2.description
+ && d1.contextKind == d2.contextKind && d1.context == d2.context
+ && d1.uniquifier == d2.uniquifier;
+}
+
+typedef QList<SuppressedDiagnostic> SuppressedDiagnosticsList;
-// TODO: Incorporate Clang Static Analyzer's ProjectSettings
class ClangToolsProjectSettings : public QObject
{
Q_OBJECT
@@ -49,6 +80,14 @@ public:
QSet<Utils::FileName> selectedFiles() const { return m_selectedFiles; }
void setSelectedFiles(const QSet<Utils::FileName> &value) { m_selectedFiles = value; }
+ SuppressedDiagnosticsList suppressedDiagnostics() const { return m_suppressedDiagnostics; }
+ void addSuppressedDiagnostic(const SuppressedDiagnostic &diag);
+ void removeSuppressedDiagnostic(const SuppressedDiagnostic &diag);
+ void removeAllSuppressedDiagnostics();
+
+signals:
+ void suppressedDiagnosticsChanged();
+
private:
void load();
void store();
@@ -56,9 +95,9 @@ private:
ProjectExplorer::Project *m_project;
QSet<Utils::FileName> m_selectedDirs;
QSet<Utils::FileName> m_selectedFiles;
+ SuppressedDiagnosticsList m_suppressedDiagnostics;
};
-// TODO: Incorporate Clang Static Analyzer's ProjectSettingsManager
class ClangToolsProjectSettingsManager
{
public: