summaryrefslogtreecommitdiff
path: root/src/libs
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2013-11-14 15:57:37 +0100
committerEike Ziller <eike.ziller@digia.com>2013-11-14 16:34:57 +0100
commit3948eeafb2e516ce367d43b6ff2877fb7c71aa6b (patch)
tree5f6044b1899472c937625eadc3fc117c6c7b684a /src/libs
parent74aa996d99d6b60d2f13b3be7ef68bae0c055830 (diff)
downloadqt-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.cpp11
-rw-r--r--src/libs/extensionsystem/pluginmanager_p.h3
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