diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2021-07-01 04:17:54 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2021-07-01 08:34:51 +0000 |
commit | f4a33100591f0a6b2d9c79877540dd8637a6eaf7 (patch) | |
tree | 05eb48627bbf9fa0bf0259e87ef34f18cf6e7700 /src/plugins/cpptools/cppcodemodelsettings.h | |
parent | b52f2d198a58faccf1074b19b6f85f4ccaf1abdf (diff) | |
download | qt-creator-f4a33100591f0a6b2d9c79877540dd8637a6eaf7.tar.gz |
Clangd: Handle settings changes
Users no longer have to re-load a project for settings changes to take
effect.
Change-Id: I86dccccac14a30514c8dac292c7765ee4806f6ba
Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppcodemodelsettings.h')
-rw-r--r-- | src/plugins/cpptools/cppcodemodelsettings.h | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/plugins/cpptools/cppcodemodelsettings.h b/src/plugins/cpptools/cppcodemodelsettings.h index 6bfccc4bf7..d4da25f3b0 100644 --- a/src/plugins/cpptools/cppcodemodelsettings.h +++ b/src/plugins/cpptools/cppcodemodelsettings.h @@ -98,10 +98,11 @@ private: bool m_categorizeFindReferences = false; // Ephemeral! }; -class CPPTOOLS_EXPORT ClangdSettings +class CPPTOOLS_EXPORT ClangdSettings : public QObject { + Q_OBJECT public: - class Data + class CPPTOOLS_EXPORT Data { public: QVariantMap toMap() const; @@ -131,6 +132,9 @@ public: static void setClangdFilePath(const Utils::FilePath &filePath); #endif +signals: + void changed(); + private: ClangdSettings() { loadSettings(); } @@ -140,12 +144,24 @@ private: Data m_data; }; +inline bool operator==(const ClangdSettings::Data &s1, const ClangdSettings::Data &s2) +{ + return s1.useClangd == s2.useClangd + && s1.executableFilePath == s2.executableFilePath + && s1.workerThreadLimit == s2.workerThreadLimit + && s1.enableIndexing == s2.enableIndexing; +} +inline bool operator!=(const ClangdSettings::Data &s1, const ClangdSettings::Data &s2) +{ + return !(s1 == s2); +} + class CPPTOOLS_EXPORT ClangdProjectSettings { public: ClangdProjectSettings(ProjectExplorer::Project *project); - ClangdSettings settings() const; + ClangdSettings::Data settings() const; void setSettings(const ClangdSettings::Data &data); bool useGlobalSettings() const { return m_useGlobalSettings; } void setUseGlobalSettings(bool useGlobal); |