LanguageClient: make current settings accessible

Change-Id: Ie56272067a56475b1a61006432dc1fbee4192c9c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2019-03-11 15:00:26 +01:00
parent 424267979d
commit 34de118ee3
2 changed files with 25 additions and 2 deletions

View File

@@ -126,6 +126,8 @@ public:
void apply() override; void apply() override;
void finish() override; void finish() override;
QList<StdIOSettings *> settings() const;
private: private:
LanguageClientSettingsModel m_model; LanguageClientSettingsModel m_model;
QList<StdIOSettings *> m_settings; // owned QList<StdIOSettings *> m_settings; // owned
@@ -290,6 +292,11 @@ void LanguageClientSettingsPage::finish()
m_model.reset(m_settings); m_model.reset(m_settings);
} }
QList<StdIOSettings *> LanguageClientSettingsPage::settings() const
{
return m_settings;
}
LanguageClientSettingsModel::~LanguageClientSettingsModel() LanguageClientSettingsModel::~LanguageClientSettingsModel()
{ {
qDeleteAll(m_settings); qDeleteAll(m_settings);
@@ -428,8 +435,7 @@ void BaseSettings::fromMap(const QVariantMap &map)
void LanguageClientSettings::init() void LanguageClientSettings::init()
{ {
static LanguageClientSettingsPage settingsPage; settingsPage().init();
settingsPage.init();
} }
QList<StdIOSettings *> LanguageClientSettings::fromSettings(QSettings *settingsIn) QList<StdIOSettings *> LanguageClientSettings::fromSettings(QSettings *settingsIn)
@@ -445,6 +451,11 @@ QList<StdIOSettings *> LanguageClientSettings::fromSettings(QSettings *settingsI
return settings; return settings;
} }
QList<StdIOSettings *> LanguageClientSettings::currentSettings()
{
return settingsPage().settings();
}
void LanguageClientSettings::toSettings(QSettings *settings, const QList<StdIOSettings *> &languageClientSettings) void LanguageClientSettings::toSettings(QSettings *settings, const QList<StdIOSettings *> &languageClientSettings)
{ {
settings->beginGroup(settingsGroupKey); settings->beginGroup(settingsGroupKey);
@@ -455,6 +466,12 @@ void LanguageClientSettings::toSettings(QSettings *settings, const QList<StdIOSe
settings->endGroup(); settings->endGroup();
} }
LanguageClientSettingsPage &LanguageClientSettings::settingsPage()
{
static LanguageClientSettingsPage settingsPage;
return settingsPage;
}
void StdIOSettings::applyFromSettingsWidget(QWidget *widget) void StdIOSettings::applyFromSettingsWidget(QWidget *widget)
{ {
if (auto settingsWidget = qobject_cast<StdIOSettingsWidget *>(widget)) { if (auto settingsWidget = qobject_cast<StdIOSettingsWidget *>(widget)) {

View File

@@ -120,12 +120,18 @@ protected:
StdIOSettings &operator=(StdIOSettings &&other) = default; StdIOSettings &operator=(StdIOSettings &&other) = default;
}; };
class LanguageClientSettingsPage;
class LanguageClientSettings class LanguageClientSettings
{ {
public: public:
static void init(); static void init();
static QList<StdIOSettings *> fromSettings(QSettings *settings); static QList<StdIOSettings *> fromSettings(QSettings *settings);
static QList<StdIOSettings *> currentSettings();
static void toSettings(QSettings *settings, const QList<StdIOSettings *> &languageClientSettings); static void toSettings(QSettings *settings, const QList<StdIOSettings *> &languageClientSettings);
private:
static LanguageClientSettingsPage &settingsPage();
}; };
class BaseSettingsWidget : public QWidget class BaseSettingsWidget : public QWidget