summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2020-12-02 21:03:10 +0100
committerMikaël Capelle <capelle.mikael@gmail.com>2020-12-02 21:03:10 +0100
commit90154e621af03bc0464a17821f56385e6b0f6ac5 (patch)
treeeeba175436c459c469524f8ff0734997841aa653 /src
parentc3a957169612e6563b17c2e740006f1abd29f6ff (diff)
Add Settings::unregisterPlugin().
Diffstat (limited to 'src')
-rw-r--r--src/settings.cpp10
-rw-r--r--src/settings.h3
2 files changed, 12 insertions, 1 deletions
diff --git a/src/settings.cpp b/src/settings.cpp
index d325c02f..85aa5f2f 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -1317,6 +1317,16 @@ void PluginSettings::registerPlugin(IPlugin *plugin)
}
}
+void PluginSettings::unregisterPlugin(IPlugin* plugin)
+{
+ auto it = std::find(m_Plugins.begin(), m_Plugins.end(), plugin);
+ if (it != m_Plugins.end()) {
+ m_Plugins.erase(it);
+ }
+ m_PluginSettings.remove(plugin->name());
+ m_PluginDescriptions.remove(plugin->name());
+}
+
std::vector<MOBase::IPlugin*> PluginSettings::plugins() const
{
return m_Plugins;
diff --git a/src/settings.h b/src/settings.h
index 122eb729..48aefc27 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -304,9 +304,10 @@ public:
//
void clearPlugins();
- // adds the given plugin to the list and loads all of its settings
+ // adds/removes the given plugin to the list and loads all of its settings
//
void registerPlugin(MOBase::IPlugin *plugin);
+ void unregisterPlugin(MOBase::IPlugin* plugin);
// returns all the registered plugins
//