summaryrefslogtreecommitdiff
path: root/src/settings.cpp
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2020-11-11 13:39:53 +0100
committerMikaël Capelle <capelle.mikael@gmail.com>2020-11-11 20:30:34 +0100
commit7a4f6d5344031db828f5dc2257c1d19f251e7f05 (patch)
treeb72b9da6eafb0c9cb747254c1b34e7a73469cd6e /src/settings.cpp
parenteb1d340f2d98e65b1859fd103658f2671569c342 (diff)
Improve requirements handling.
Diffstat (limited to 'src/settings.cpp')
-rw-r--r--src/settings.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/settings.cpp b/src/settings.cpp
index 0f661bfb..a76d5e76 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -1288,6 +1288,11 @@ void PluginSettings::registerPlugin(IPlugin *plugin)
temp.toString(), setting.key, plugin->name());
temp = setting.defaultValue;
+
+ // If there was no previous "enabled" value, skip it:
+ if (setting.key == "enabled") {
+ continue;
+ }
}
m_PluginSettings[plugin->name()][setting.key] = temp;
@@ -1297,9 +1302,15 @@ void PluginSettings::registerPlugin(IPlugin *plugin)
.arg(setting.defaultValue.toString());
}
- if (!m_PluginSettings.contains("enabled")) {
- m_PluginSettings[plugin->name()]["enabled"] = true;
- m_PluginDescriptions[plugin->name()]["enabled"] = QString();
+ // Handle previous "enabled" settings:
+ if (m_PluginSettings[plugin->name()].contains("enabled")) {
+ setPersistent(plugin->name(), "enabled", m_PluginSettings[plugin->name()]["enabled"].toBool(), true);
+ m_PluginSettings[plugin->name()].remove("enabled");
+ m_PluginDescriptions[plugin->name()].remove("enabled");
+
+ // We need to drop it manually in Settings since it is not possible to remove plugin
+ // settings:
+ remove(m_Settings, "Plugins", plugin->name() + "/enabled");
}
}