diff options
| author | Mikaël Capelle <capelle.mikael@gmail.com> | 2020-12-02 21:03:10 +0100 |
|---|---|---|
| committer | Mikaël Capelle <capelle.mikael@gmail.com> | 2020-12-02 21:03:10 +0100 |
| commit | 90154e621af03bc0464a17821f56385e6b0f6ac5 (patch) | |
| tree | eeba175436c459c469524f8ff0734997841aa653 /src | |
| parent | c3a957169612e6563b17c2e740006f1abd29f6ff (diff) | |
Add Settings::unregisterPlugin().
Diffstat (limited to 'src')
| -rw-r--r-- | src/settings.cpp | 10 | ||||
| -rw-r--r-- | src/settings.h | 3 |
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 // |
