diff options
author | Eike Ziller <eike.ziller@digia.com> | 2013-11-14 15:57:37 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@digia.com> | 2013-11-14 16:34:57 +0100 |
commit | 3948eeafb2e516ce367d43b6ff2877fb7c71aa6b (patch) | |
tree | 5f6044b1899472c937625eadc3fc117c6c7b684a /src/libs | |
parent | 74aa996d99d6b60d2f13b3be7ef68bae0c055830 (diff) | |
download | qt-creator-3948eeafb2e516ce367d43b6ff2877fb7c71aa6b.tar.gz |
Support enabling experimental plugins from installer.
Change-Id: Id5f383f58125c44496a3d6936b27638bce48622d
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/extensionsystem/pluginmanager.cpp | 11 | ||||
-rw-r--r-- | src/libs/extensionsystem/pluginmanager_p.h | 3 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/libs/extensionsystem/pluginmanager.cpp b/src/libs/extensionsystem/pluginmanager.cpp index 917642e43c..bbb6b2d930 100644 --- a/src/libs/extensionsystem/pluginmanager.cpp +++ b/src/libs/extensionsystem/pluginmanager.cpp @@ -907,8 +907,10 @@ void PluginManagerPrivate::writeSettings() */ void PluginManagerPrivate::readSettings() { - if (globalSettings) + if (globalSettings) { defaultDisabledPlugins = globalSettings->value(QLatin1String(C_IGNORED_PLUGINS)).toStringList(); + defaultEnabledPlugins = globalSettings->value(QLatin1String(C_FORCEENABLED_PLUGINS)).toStringList(); + } if (settings) { disabledPlugins = settings->value(QLatin1String(C_IGNORED_PLUGINS)).toStringList(); forceEnabledPlugins = settings->value(QLatin1String(C_FORCEENABLED_PLUGINS)).toStringList(); @@ -1225,9 +1227,14 @@ void PluginManagerPrivate::readPluginPaths() collection = new PluginCollection(spec->category()); pluginCategories.insert(spec->category(), collection); } - if (defaultDisabledPlugins.contains(spec->name())) { + // defaultDisabledPlugins and defaultEnabledPlugins from install settings + // is used to override the defaults read from the plugin spec + if (!spec->isDisabledByDefault() && defaultDisabledPlugins.contains(spec->name())) { spec->setDisabledByDefault(true); spec->setEnabled(false); + } else if (spec->isDisabledByDefault() && defaultEnabledPlugins.contains(spec->name())) { + spec->setDisabledByDefault(false); + spec->setEnabled(true); } if (spec->isDisabledByDefault() && forceEnabledPlugins.contains(spec->name())) spec->setEnabled(true); diff --git a/src/libs/extensionsystem/pluginmanager_p.h b/src/libs/extensionsystem/pluginmanager_p.h index 58bb191237..15e2521b57 100644 --- a/src/libs/extensionsystem/pluginmanager_p.h +++ b/src/libs/extensionsystem/pluginmanager_p.h @@ -104,7 +104,8 @@ public: QStringList pluginPaths; QString extension; QList<QObject *> allObjects; // ### make this a QList<QPointer<QObject> > > ? - QStringList defaultDisabledPlugins; + QStringList defaultDisabledPlugins; // Plugins/Ignored from install settings + QStringList defaultEnabledPlugins; // Plugins/ForceEnabled from install settings QStringList disabledPlugins; QStringList forceEnabledPlugins; // delayed initialization |