summaryrefslogtreecommitdiff
path: root/src/plugincontainer.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2021-02-21 11:50:32 -0500
committerGitHub <noreply@github.com>2021-02-21 11:50:32 -0500
commit3fad475013edb7ae7e4a437e108f44ba09e57b13 (patch)
tree8e615d48522ac622c938ffe9687282a0fb1f2315 /src/plugincontainer.cpp
parente473caf14a3c844431cad769e3f8c746ba2823cf (diff)
parent2bd755743cd83ab06db66a254f7295d3fbeb776f (diff)
Merge pull request #1416 from isanae/plugin-blacklist
Broken plugins blacklist
Diffstat (limited to 'src/plugincontainer.cpp')
-rw-r--r--src/plugincontainer.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/plugincontainer.cpp b/src/plugincontainer.cpp
index c703a36a..93a66ece 100644
--- a/src/plugincontainer.cpp
+++ b/src/plugincontainer.cpp
@@ -952,6 +952,16 @@ void PluginContainer::reloadPlugin(QString const& filepath)
void PluginContainer::unloadPlugins()
{
+ if (m_Organizer) {
+ // this will clear several structures that can hold on to pointers to
+ // plugins, as well as read the plugin blacklist from the ini file, which
+ // is used in loadPlugins() below to skip plugins
+ //
+ // note that the first thing loadPlugins() does is call unloadPlugins(),
+ // so this makes sure the blacklist is always available
+ m_Organizer->settings().plugins().clearPlugins();
+ }
+
bf::for_each(m_Plugins, [](auto& t) { t.second.clear(); });
bf::for_each(m_AccessPlugins, [](auto& t) { t.second.clear(); });
m_Requirements.clear();