diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index 17ea39f80ed..c777247fb4d 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -126,6 +126,8 @@ public: void apply() override; void finish() override; + QList settings() const; + private: LanguageClientSettingsModel m_model; QList m_settings; // owned @@ -290,6 +292,11 @@ void LanguageClientSettingsPage::finish() m_model.reset(m_settings); } +QList LanguageClientSettingsPage::settings() const +{ + return m_settings; +} + LanguageClientSettingsModel::~LanguageClientSettingsModel() { qDeleteAll(m_settings); @@ -428,8 +435,7 @@ void BaseSettings::fromMap(const QVariantMap &map) void LanguageClientSettings::init() { - static LanguageClientSettingsPage settingsPage; - settingsPage.init(); + settingsPage().init(); } QList LanguageClientSettings::fromSettings(QSettings *settingsIn) @@ -445,6 +451,11 @@ QList LanguageClientSettings::fromSettings(QSettings *settingsI return settings; } +QList LanguageClientSettings::currentSettings() +{ + return settingsPage().settings(); +} + void LanguageClientSettings::toSettings(QSettings *settings, const QList &languageClientSettings) { settings->beginGroup(settingsGroupKey); @@ -455,6 +466,12 @@ void LanguageClientSettings::toSettings(QSettings *settings, const QListendGroup(); } +LanguageClientSettingsPage &LanguageClientSettings::settingsPage() +{ + static LanguageClientSettingsPage settingsPage; + return settingsPage; +} + void StdIOSettings::applyFromSettingsWidget(QWidget *widget) { if (auto settingsWidget = qobject_cast(widget)) { diff --git a/src/plugins/languageclient/languageclientsettings.h b/src/plugins/languageclient/languageclientsettings.h index bdf54e60525..f36fa6cbcf0 100644 --- a/src/plugins/languageclient/languageclientsettings.h +++ b/src/plugins/languageclient/languageclientsettings.h @@ -120,12 +120,18 @@ protected: StdIOSettings &operator=(StdIOSettings &&other) = default; }; +class LanguageClientSettingsPage; + class LanguageClientSettings { public: static void init(); static QList fromSettings(QSettings *settings); + static QList currentSettings(); static void toSettings(QSettings *settings, const QList &languageClientSettings); + +private: + static LanguageClientSettingsPage &settingsPage(); }; class BaseSettingsWidget : public QWidget