From 8b02a5a7965440b883e9601ece0e30bca1169a65 Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Fri, 4 Dec 2020 19:32:11 +0100 Subject: Fix crash when starting MO2 without instance. --- src/plugincontainer.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'src/plugincontainer.cpp') diff --git a/src/plugincontainer.cpp b/src/plugincontainer.cpp index e4eb389f..c703a36a 100644 --- a/src/plugincontainer.cpp +++ b/src/plugincontainer.cpp @@ -280,7 +280,7 @@ void PluginRequirements::requiredFor(std::vector &required, st PluginContainer::PluginContainer(OrganizerCore *organizer) : m_Organizer(organizer) , m_UserInterface(nullptr) - , m_PreviewGenerator(this) + , m_PreviewGenerator(*this) { } @@ -397,6 +397,7 @@ bool PluginContainer::initPlugin(IPlugin *plugin, IPluginProxy *pluginProxy, boo OrganizerProxy* proxy = nullptr; if (m_Organizer) { proxy = new OrganizerProxy(m_Organizer, this, plugin); + proxy->setParent(as_qobject(plugin)); } // Check if it is a proxy plugin: @@ -417,8 +418,6 @@ bool PluginContainer::initPlugin(IPlugin *plugin, IPluginProxy *pluginProxy, boo return false; } - proxy->setParent(as_qobject(plugin)); - // Update requirements: it->second.fetchRequirements(); @@ -732,12 +731,17 @@ void PluginContainer::startPluginsImpl(const std::vector& plugins) con } // Trigger initial callbacks, e.g. onUserInterfaceInitialized and onProfileChanged. - for (auto* object : plugins) { - auto* plugin = qobject_cast(object); - auto* oproxy = organizerProxy(plugin); - oproxy->connectSignals(); - oproxy->m_UserInterfaceInitialized(m_UserInterface->mainWindow()); - oproxy->m_ProfileChanged(nullptr, m_Organizer->currentProfile()); + if (m_Organizer) { + for (auto* object : plugins) { + auto* plugin = qobject_cast(object); + auto* oproxy = organizerProxy(plugin); + oproxy->connectSignals(); + oproxy->m_ProfileChanged(nullptr, m_Organizer->currentProfile()); + + if (m_UserInterface) { + oproxy->m_UserInterfaceInitialized(m_UserInterface->mainWindow()); + } + } } } -- cgit v1.3.1