From 90154e621af03bc0464a17821f56385e6b0f6ac5 Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Wed, 2 Dec 2020 21:03:10 +0100 Subject: Add Settings::unregisterPlugin(). --- src/settings.cpp | 10 ++++++++++ src/settings.h | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'src') 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 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 // -- cgit v1.3.1