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 finish() override;
QList<StdIOSettings *> settings() const;
private:
LanguageClientSettingsModel m_model;
QList<StdIOSettings *> m_settings; // owned
@@ -290,6 +292,11 @@ void LanguageClientSettingsPage::finish()
m_model.reset(m_settings);
}
QList<StdIOSettings *> 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<StdIOSettings *> LanguageClientSettings::fromSettings(QSettings *settingsIn)
@@ -445,6 +451,11 @@ QList<StdIOSettings *> LanguageClientSettings::fromSettings(QSettings *settingsI
return settings;
}
QList<StdIOSettings *> LanguageClientSettings::currentSettings()
{
return settingsPage().settings();
}
void LanguageClientSettings::toSettings(QSettings *settings, const QList<StdIOSettings *> &languageClientSettings)
{
settings->beginGroup(settingsGroupKey);
@@ -455,6 +466,12 @@ void LanguageClientSettings::toSettings(QSettings *settings, const QList<StdIOSe
settings->endGroup();
}
LanguageClientSettingsPage &LanguageClientSettings::settingsPage()
{
static LanguageClientSettingsPage settingsPage;
return settingsPage;
}
void StdIOSettings::applyFromSettingsWidget(QWidget *widget)
{
if (auto settingsWidget = qobject_cast<StdIOSettingsWidget *>(widget)) {

View File

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