diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2021-02-21 11:50:32 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-21 11:50:32 -0500 |
| commit | 3fad475013edb7ae7e4a437e108f44ba09e57b13 (patch) | |
| tree | 8e615d48522ac622c938ffe9687282a0fb1f2315 /src/plugincontainer.cpp | |
| parent | e473caf14a3c844431cad769e3f8c746ba2823cf (diff) | |
| parent | 2bd755743cd83ab06db66a254f7295d3fbeb776f (diff) | |
Merge pull request #1416 from isanae/plugin-blacklist
Broken plugins blacklist
Diffstat (limited to 'src/plugincontainer.cpp')
| -rw-r--r-- | src/plugincontainer.cpp | 10 |
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();
|
