summaryrefslogtreecommitdiff
path: root/src/plugincontainer.cpp
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2020-06-11 13:23:03 +0200
committerMikaël Capelle <capelle.mikael@gmail.com>2020-06-11 13:23:03 +0200
commit5d0b6b0eab489e2010f6286647864889cae7422a (patch)
tree63b6d199d7424c6a0e84611bf50a68c255c36127 /src/plugincontainer.cpp
parent2285ed32af2e7e89dfaaf9cdf75d1cc9b9b730d9 (diff)
Manually unload plugins to avoid issue with automatic unloading.
Diffstat (limited to 'src/plugincontainer.cpp')
-rw-r--r--src/plugincontainer.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/plugincontainer.cpp b/src/plugincontainer.cpp
index caab2115..d989fac9 100644
--- a/src/plugincontainer.cpp
+++ b/src/plugincontainer.cpp
@@ -28,6 +28,10 @@ PluginContainer::PluginContainer(OrganizerCore *organizer)
{
}
+PluginContainer::~PluginContainer() {
+ m_Organizer = nullptr;
+ unloadPlugins();
+}
void PluginContainer::setUserInterface(IUserInterface *userInterface, QWidget *widget)
{
@@ -213,7 +217,9 @@ void PluginContainer::unloadPlugins()
}
// disconnect all slots before unloading plugins so plugins don't have to take care of that
- m_Organizer->disconnectPlugins();
+ if (m_Organizer != nullptr) {
+ m_Organizer->disconnectPlugins();
+ }
bf::for_each(m_Plugins, clearPlugins());