diff options
author | David Schulz <david.schulz@qt.io> | 2019-10-17 10:03:57 +0200 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2019-10-18 05:23:29 +0000 |
commit | 28c3f0c31ece00d29e59d854bae61f80e29e9c2a (patch) | |
tree | b3fb8c864842bcfe818b93206116271567fb15f3 /src/plugins/languageclient/languageclientsettings.cpp | |
parent | c8ccfea225d506513e5575dd100bf6175720e29a (diff) |
Python: Add info bar entry to enable pyls
Show an editor info bar entry displaying that the language server for
the current python is disabled and a button to quickly enable the pyls.
Change-Id: I3adb2e7cbfb1a32e35413b0b06dfbe66a0b214af
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/languageclient/languageclientsettings.cpp')
-rw-r--r-- | src/plugins/languageclient/languageclientsettings.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index a8714fc2b83..a08e52208fc 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -101,6 +101,7 @@ public: void reset(const QList<BaseSettings *> &settings); QList<BaseSettings *> settings() const { return m_settings; } void insertSettings(BaseSettings *settings); + void enableSetting(const QString &id); QList<BaseSettings *> removed() const { return m_removed; } BaseSettings *settingForIndex(const QModelIndex &index) const; QModelIndex indexForSetting(BaseSettings *setting) const; @@ -148,6 +149,7 @@ public: QList<BaseSettings *> settings() const; void addSettings(BaseSettings *settings); + void enableSettings(const QString &id); private: LanguageClientSettingsModel m_model; @@ -311,6 +313,11 @@ void LanguageClientSettingsPage::addSettings(BaseSettings *settings) m_model.insertSettings(settings); } +void LanguageClientSettingsPage::enableSettings(const QString &id) +{ + m_model.enableSetting(id); +} + LanguageClientSettingsModel::~LanguageClientSettingsModel() { qDeleteAll(m_settings); @@ -435,6 +442,17 @@ void LanguageClientSettingsModel::insertSettings(BaseSettings *settings) endInsertRows(); } +void LanguageClientSettingsModel::enableSetting(const QString &id) +{ + BaseSettings *setting = Utils::findOrDefault(m_settings, Utils::equal(&BaseSettings::m_id, id)); + if (!setting) + return; + setting->m_enabled = true; + const QModelIndex &index = indexForSetting(setting); + if (index.isValid()) + emit dataChanged(index, index, {Qt::CheckStateRole}); +} + BaseSettings *LanguageClientSettingsModel::settingForIndex(const QModelIndex &index) const { if (!index.isValid() || index.row() >= m_settings.size()) @@ -548,6 +566,11 @@ void LanguageClientSettings::addSettings(BaseSettings *settings) settingsPage().addSettings(settings); } +void LanguageClientSettings::enableSettings(const QString &id) +{ + settingsPage().enableSettings(id); +} + void LanguageClientSettings::toSettings(QSettings *settings, const QList<BaseSettings *> &languageClientSettings) { |