|
4 | 4 |
|
5 | 5 | using namespace MOBase; |
6 | 6 |
|
| 7 | +static const QString EXTENSIONS_GROUP = "Extensions"; |
| 8 | +static const QString EXTENSIONS_ENABLED_GROUP = "ExtensionsEnabled"; |
7 | 9 | static const QString PLUGINS_GROUP = "Plugins"; |
8 | 10 | static const QString PLUGINS_PERSISTENT_GROUP = "PluginPersistance"; |
9 | 11 |
|
| 12 | +ExtensionSettings::ExtensionSettings(QSettings& settings) : m_Settings(settings) {} |
| 13 | + |
| 14 | +QString ExtensionSettings::path(const IExtension& extension, const Setting& setting) |
| 15 | +{ |
| 16 | + QString path = extension.metadata().identifier(); |
| 17 | + if (!setting.group().isEmpty()) { |
| 18 | + path += "/" + setting.group(); |
| 19 | + } |
| 20 | + return path + "/" + setting.name(); |
| 21 | +} |
| 22 | + |
| 23 | +bool ExtensionSettings::isEnabled(const MOBase::IExtension& extension, |
| 24 | + bool defaultValue) const |
| 25 | +{ |
| 26 | + return get<bool>(m_Settings, EXTENSIONS_ENABLED_GROUP, |
| 27 | + extension.metadata().identifier(), defaultValue); |
| 28 | +} |
| 29 | + |
| 30 | +void ExtensionSettings::setEnabled(const MOBase::IExtension& extension, |
| 31 | + bool enabled) const |
| 32 | +{ |
| 33 | + set(m_Settings, EXTENSIONS_ENABLED_GROUP, extension.metadata().identifier(), enabled); |
| 34 | +} |
| 35 | + |
| 36 | +QVariant ExtensionSettings::setting(const IExtension& extension, |
| 37 | + const Setting& setting) const |
| 38 | +{ |
| 39 | + return get<QVariant>(m_Settings, EXTENSIONS_GROUP, path(extension, setting), |
| 40 | + setting.defaultValue()); |
| 41 | +} |
| 42 | + |
| 43 | +void ExtensionSettings::setSetting(const IExtension& extension, const Setting& setting, |
| 44 | + const QVariant& value) |
| 45 | +{ |
| 46 | + set(m_Settings, EXTENSIONS_GROUP, path(extension, setting), value); |
| 47 | +} |
| 48 | + |
| 49 | +// commits all the settings to the ini |
| 50 | +// |
| 51 | +void ExtensionSettings::save() |
| 52 | +{ |
| 53 | + m_Settings.sync(); |
| 54 | +} |
| 55 | + |
10 | 56 | PluginSettings::PluginSettings(QSettings& settings) : m_Settings(settings) {} |
11 | 57 |
|
12 | 58 | QString PluginSettings::path(const QString& pluginName, const QString& key) |
@@ -57,7 +103,7 @@ void PluginSettings::fixPluginEnabledSetting(const IPlugin* plugin) |
57 | 103 | QVariant PluginSettings::setting(const QString& pluginName, const QString& key, |
58 | 104 | const QVariant& defaultValue) const |
59 | 105 | { |
60 | | - return get<QVariant>(m_Settings, "Settings", path(pluginName, key), defaultValue); |
| 106 | + return get<QVariant>(m_Settings, PLUGINS_GROUP, path(pluginName, key), defaultValue); |
61 | 107 | } |
62 | 108 |
|
63 | 109 | void PluginSettings::setSetting(const QString& pluginName, const QString& key, |
|
0 commit comments