aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/languageclient/languageclientsettings.cpp
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2019-10-17 10:03:57 +0200
committerDavid Schulz <david.schulz@qt.io>2019-10-18 05:23:29 +0000
commit28c3f0c31ece00d29e59d854bae61f80e29e9c2a (patch)
treeb3fb8c864842bcfe818b93206116271567fb15f3 /src/plugins/languageclient/languageclientsettings.cpp
parentc8ccfea225d506513e5575dd100bf6175720e29a (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.cpp23
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)
{