summaryrefslogtreecommitdiff
path: root/src/pluginlistproxy.cpp
diff options
context:
space:
mode:
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