ClangTools: Attach ClangToolsProjectSettings data to project itself

Easier to reason about life time.

Change-Id: I2c61527532f6faa344fc59d858921e66daaf0b7e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2020-01-13 17:38:33 +01:00
parent 5a4b0b565a
commit 82265d51a7
10 changed files with 39 additions and 44 deletions

View File

@@ -87,6 +87,9 @@ public:
void removeSuppressedDiagnostic(const SuppressedDiagnostic &diag);
void removeAllSuppressedDiagnostics();
using ClangToolsProjectSettingsPtr = QSharedPointer<ClangToolsProjectSettings>;
static ClangToolsProjectSettingsPtr getSettings(ProjectExplorer::Project *project);
signals:
void suppressedDiagnosticsChanged();
@@ -106,19 +109,7 @@ private:
SuppressedDiagnosticsList m_suppressedDiagnostics;
};
class ClangToolsProjectSettingsManager
{
public:
ClangToolsProjectSettingsManager();
static ClangToolsProjectSettings *getSettings(ProjectExplorer::Project *project);
private:
static void handleProjectToBeRemoved(ProjectExplorer::Project *project);
using SettingsMap = QHash<ProjectExplorer::Project *, QSharedPointer<ClangToolsProjectSettings>>;
static SettingsMap m_settings;
};
} // namespace Internal
} // namespace ClangTools
Q_DECLARE_METATYPE(QSharedPointer<ClangTools::Internal::ClangToolsProjectSettings>)