diff options
author | David Schulz <david.schulz@qt.io> | 2019-03-27 14:33:04 +0100 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2019-04-04 08:18:48 +0000 |
commit | d1fd3ea667febfc7730f3182ac194dd5095a7215 (patch) | |
tree | 81385bb66e68e7128aad040e7962006cede493f5 /src/plugins/languageclient | |
parent | 37d0525953593ba99f518819fa4be420a845c690 (diff) |
LanguageClient: only use BaseSettings in the settings API
Change-Id: Ie2ccda8fe4349f495f31a5d46254b68f6074ac6d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/languageclient')
-rw-r--r-- | src/plugins/languageclient/languageclientmanager.cpp | 2 | ||||
-rw-r--r-- | src/plugins/languageclient/languageclientsettings.cpp | 56 | ||||
-rw-r--r-- | src/plugins/languageclient/languageclientsettings.h | 6 |
3 files changed, 31 insertions, 33 deletions
diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index 7da32eda198..07d2512e447 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -247,7 +247,7 @@ void LanguageClientManager::editorOpened(Core::IEditor *editor) void LanguageClientManager::documentOpened(Core::IDocument *document) { - for (StdIOSettings *setting : LanguageClientSettings::currentSettings()) { + for (BaseSettings *setting : LanguageClientSettings::currentSettings()) { if (setting->m_client.isNull() && setting->m_languageFilter.isSupported(document)) setting->startClient(); } diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index 7170cf35da9..90c0759b0e5 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -84,15 +84,15 @@ public: bool setData(const QModelIndex &index, const QVariant &value, int role) final; Qt::ItemFlags flags(const QModelIndex &index) const final; - void reset(const QList<StdIOSettings *> &settings); - QList<StdIOSettings *> settings() const { return m_settings; } - QList<StdIOSettings *> removed() const { return m_removed; } - StdIOSettings *settingForIndex(const QModelIndex &index) const; - QModelIndex indexForSetting(StdIOSettings *setting) const; + void reset(const QList<BaseSettings *> &settings); + QList<BaseSettings *> settings() const { return m_settings; } + QList<BaseSettings *> removed() const { return m_removed; } + BaseSettings *settingForIndex(const QModelIndex &index) const; + QModelIndex indexForSetting(BaseSettings *setting) const; private: - QList<StdIOSettings *> m_settings; // owned - QList<StdIOSettings *> m_removed; + QList<BaseSettings *> m_settings; // owned + QList<BaseSettings *> m_removed; }; class LanguageClientSettingsPageWidget : public QWidget @@ -108,7 +108,7 @@ private: LanguageClientSettingsModel &m_settings; QTreeView *m_view = nullptr; struct CurrentSettings { - StdIOSettings *setting = nullptr; + BaseSettings *setting = nullptr; QWidget *widget = nullptr; } m_currentSettings; @@ -130,11 +130,11 @@ public: void apply() override; void finish() override; - QList<StdIOSettings *> settings() const; + QList<BaseSettings *> settings() const; private: LanguageClientSettingsModel m_model; - QList<StdIOSettings *> m_settings; // owned + QList<BaseSettings *> m_settings; // owned QPointer<LanguageClientSettingsPageWidget> m_widget; }; @@ -259,12 +259,11 @@ void LanguageClientSettingsPage::apply() qDeleteAll(m_settings); if (m_widget) m_widget->applyCurrentSettings(); - m_settings = Utils::transform(m_model.settings(), [](const StdIOSettings *other){ - return dynamic_cast<StdIOSettings *>(other->copy()); - }); + m_settings = Utils::transform(m_model.settings(), + [](const BaseSettings *other) { return other->copy(); }); LanguageClientSettings::toSettings(Core::ICore::settings(), m_settings); - QList<StdIOSettings *> restarts = Utils::filtered(m_settings, &StdIOSettings::needsRestart); + QList<BaseSettings *> restarts = Utils::filtered(m_settings, &BaseSettings::needsRestart); for (auto setting : restarts + m_model.removed()) { if (auto client = setting->m_client) { if (client->reachable()) @@ -273,7 +272,7 @@ void LanguageClientSettingsPage::apply() LanguageClientManager::deleteClient(client); } } - for (StdIOSettings *setting : restarts) { + for (BaseSettings *setting : restarts) { if (setting->isValid() && setting->m_enabled) { const bool start = setting->m_alwaysOn || Utils::anyOf(Core::DocumentModel::openedDocuments(), @@ -300,7 +299,7 @@ void LanguageClientSettingsPage::finish() m_model.reset(m_settings); } -QList<StdIOSettings *> LanguageClientSettingsPage::settings() const +QList<BaseSettings *> LanguageClientSettingsPage::settings() const { return m_model.settings(); } @@ -312,7 +311,7 @@ LanguageClientSettingsModel::~LanguageClientSettingsModel() QVariant LanguageClientSettingsModel::data(const QModelIndex &index, int role) const { - StdIOSettings *setting = settingForIndex(index); + BaseSettings *setting = settingForIndex(index); if (!setting) return QVariant(); if (role == Qt::DisplayRole) @@ -347,7 +346,7 @@ bool LanguageClientSettingsModel::insertRows(int row, int count, const QModelInd bool LanguageClientSettingsModel::setData(const QModelIndex &index, const QVariant &value, int role) { - StdIOSettings *setting = settingForIndex(index); + BaseSettings *setting = settingForIndex(index); if (!setting || role != Qt::CheckStateRole) return false; @@ -363,26 +362,24 @@ Qt::ItemFlags LanguageClientSettingsModel::flags(const QModelIndex &/*index*/) c return Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable; } -void LanguageClientSettingsModel::reset(const QList<StdIOSettings *> &settings) +void LanguageClientSettingsModel::reset(const QList<BaseSettings *> &settings) { beginResetModel(); qDeleteAll(m_settings); qDeleteAll(m_removed); m_removed.clear(); - m_settings = Utils::transform(settings, [](const StdIOSettings *other){ - return dynamic_cast<StdIOSettings *>(other->copy()); - }); + m_settings = Utils::transform(settings, [](const BaseSettings *other) { return other->copy(); }); endResetModel(); } -StdIOSettings *LanguageClientSettingsModel::settingForIndex(const QModelIndex &index) const +BaseSettings *LanguageClientSettingsModel::settingForIndex(const QModelIndex &index) const { if (!index.isValid() || index.row() >= m_settings.size()) return nullptr; return m_settings[index.row()]; } -QModelIndex LanguageClientSettingsModel::indexForSetting(StdIOSettings *setting) const +QModelIndex LanguageClientSettingsModel::indexForSetting(BaseSettings *setting) const { const int index = m_settings.indexOf(setting); return index < 0 ? QModelIndex() : createIndex(index, 0, setting); @@ -450,12 +447,12 @@ void LanguageClientSettings::init() settingsPage().init(); } -QList<StdIOSettings *> LanguageClientSettings::fromSettings(QSettings *settingsIn) +QList<BaseSettings *> LanguageClientSettings::fromSettings(QSettings *settingsIn) { settingsIn->beginGroup(settingsGroupKey); auto variants = settingsIn->value(clientsKey).toList(); auto settings = Utils::transform(variants, [](const QVariant& var){ - auto settings = new StdIOSettings(); + BaseSettings *settings = new StdIOSettings(); settings->fromMap(var.toMap()); return settings; }); @@ -463,16 +460,17 @@ QList<StdIOSettings *> LanguageClientSettings::fromSettings(QSettings *settingsI return settings; } -QList<StdIOSettings *> LanguageClientSettings::currentSettings() +QList<BaseSettings *> LanguageClientSettings::currentSettings() { return settingsPage().settings(); } -void LanguageClientSettings::toSettings(QSettings *settings, const QList<StdIOSettings *> &languageClientSettings) +void LanguageClientSettings::toSettings(QSettings *settings, + const QList<BaseSettings *> &languageClientSettings) { settings->beginGroup(settingsGroupKey); settings->setValue(clientsKey, Utils::transform(languageClientSettings, - [](const StdIOSettings *setting){ + [](const BaseSettings *setting){ return QVariant(setting->toMap()); })); settings->endGroup(); diff --git a/src/plugins/languageclient/languageclientsettings.h b/src/plugins/languageclient/languageclientsettings.h index c6dca7ee3ab..a2f4a107221 100644 --- a/src/plugins/languageclient/languageclientsettings.h +++ b/src/plugins/languageclient/languageclientsettings.h @@ -123,9 +123,9 @@ 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); + static QList<BaseSettings *> fromSettings(QSettings *settings); + static QList<BaseSettings *> currentSettings(); + static void toSettings(QSettings *settings, const QList<BaseSettings *> &languageClientSettings); private: static LanguageClientSettingsPage &settingsPage(); |