summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcodemodelsettings.h
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2021-07-01 04:17:54 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2021-07-01 08:34:51 +0000
commitf4a33100591f0a6b2d9c79877540dd8637a6eaf7 (patch)
tree05eb48627bbf9fa0bf0259e87ef34f18cf6e7700 /src/plugins/cpptools/cppcodemodelsettings.h
parentb52f2d198a58faccf1074b19b6f85f4ccaf1abdf (diff)
downloadqt-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.h22
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);