diff options
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 // |
