summaryrefslogtreecommitdiff
path: root/src/pluginlistproxy.cpp
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2020-12-04 08:50:31 +0100
committerMikaël Capelle <capelle.mikael@gmail.com>2020-12-04 08:50:31 +0100
commita30d49f4fc845164ef6bba4d2a834efce1dc01d7 (patch)
tree5aa8becd18a2eae3795e602db0f499a864dab40f /src/pluginlistproxy.cpp
parentf229dbaaa7f516dc1958d0a0555b47cb17136377 (diff)
Avoid duplicating code to simulate startup.
Diffstat (limited to 'src/pluginlistproxy.cpp')
-rw-r--r--src/pluginlistproxy.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/pluginlistproxy.cpp b/src/pluginlistproxy.cpp
index b51d108b..b9ea9e36 100644
--- a/src/pluginlistproxy.cpp
+++ b/src/pluginlistproxy.cpp
@@ -6,18 +6,26 @@ using namespace MOBase;
using namespace MOShared;
PluginListProxy::PluginListProxy(OrganizerProxy* oproxy, PluginList* pluginlist) :
- m_OrganizerProxy(oproxy), m_Proxied(pluginlist)
+ m_OrganizerProxy(oproxy), m_Proxied(pluginlist) { }
+
+PluginListProxy::~PluginListProxy()
+{
+ disconnectSignals();
+}
+
+void PluginListProxy::connectSignals()
{
m_Connections.push_back(m_Proxied->onRefreshed(callSignalIfPluginActive(m_OrganizerProxy, m_Refreshed)));
m_Connections.push_back(m_Proxied->onPluginMoved(callSignalIfPluginActive(m_OrganizerProxy, m_PluginMoved)));
m_Connections.push_back(m_Proxied->onPluginStateChanged(callSignalIfPluginActive(m_OrganizerProxy, m_PluginStateChanged)));
}
-PluginListProxy::~PluginListProxy()
+void PluginListProxy::disconnectSignals()
{
for (auto& conn : m_Connections) {
conn.disconnect();
}
+ m_Connections.clear();
}
QStringList PluginListProxy::pluginNames() const