diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2021-06-28 14:55:54 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2021-06-30 15:09:56 +0000 |
commit | fbb804c442e34d669f7ce4e6a39aacd554ef8008 (patch) | |
tree | 73f5b5d4f1d2ae487e453c27e44de27c17c8a51d /src/plugins/cpptools/cppcodemodelsettings.h | |
parent | b3c83b79f70546c4ba16f41b30e32b5d163de71a (diff) | |
download | qt-creator-fbb804c442e34d669f7ce4e6a39aacd554ef8008.tar.gz |
Clangd: Add per-project settings
Users might want to use clangd for certain project, but not for others.
Change-Id: Id29ce3349f0acd359cf7c824ece073b147ed2280
Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppcodemodelsettings.h')
-rw-r--r-- | src/plugins/cpptools/cppcodemodelsettings.h | 40 |
1 files changed, 33 insertions, 7 deletions
diff --git a/src/plugins/cpptools/cppcodemodelsettings.h b/src/plugins/cpptools/cppcodemodelsettings.h index eb4abe4537..6bfccc4bf7 100644 --- a/src/plugins/cpptools/cppcodemodelsettings.h +++ b/src/plugins/cpptools/cppcodemodelsettings.h @@ -38,6 +38,8 @@ QT_BEGIN_NAMESPACE class QSettings; QT_END_NAMESPACE +namespace ProjectExplorer { class Project; } + namespace CppTools { class CPPTOOLS_EXPORT CppCodeModelSettings : public QObject @@ -102,21 +104,27 @@ public: class Data { public: + QVariantMap toMap() const; + void fromMap(const QVariantMap &map); + Utils::FilePath executableFilePath; int workerThreadLimit = 0; bool useClangd = false; bool enableIndexing = true; }; - static bool useClangd() { return instance().m_data.useClangd; } + ClangdSettings(const Data &data) : m_data(data) {} + + static ClangdSettings &instance(); + bool useClangd() const { return m_data.useClangd; } static void setDefaultClangdPath(const Utils::FilePath &filePath); - static Utils::FilePath clangdFilePath(); - static bool indexingEnabled() { return instance().m_data.enableIndexing; } - static int workerThreadLimit() { return instance().m_data.workerThreadLimit; } + Utils::FilePath clangdFilePath() const; + bool indexingEnabled() const { return m_data.enableIndexing; } + int workerThreadLimit() const { return m_data.workerThreadLimit; } - static void setData(const Data &data); - static Data data() { return instance().m_data; } + void setData(const Data &data); + Data data() const { return m_data; } #ifdef WITH_TESTS static void setUseClangd(bool use); @@ -125,7 +133,6 @@ public: private: ClangdSettings() { loadSettings(); } - static ClangdSettings &instance(); void loadSettings(); void saveSettings(); @@ -133,4 +140,23 @@ private: Data m_data; }; +class CPPTOOLS_EXPORT ClangdProjectSettings +{ +public: + ClangdProjectSettings(ProjectExplorer::Project *project); + + ClangdSettings settings() const; + void setSettings(const ClangdSettings::Data &data); + bool useGlobalSettings() const { return m_useGlobalSettings; } + void setUseGlobalSettings(bool useGlobal); + +private: + void loadSettings(); + void saveSettings(); + + ProjectExplorer::Project * const m_project; + ClangdSettings::Data m_customSettings; + bool m_useGlobalSettings = true; +}; + } // namespace CppTools |