summaryrefslogtreecommitdiff
path: root/src/modlistproxy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modlistproxy.cpp')
-rw-r--r--src/modlistproxy.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/modlistproxy.cpp b/src/modlistproxy.cpp
index 991476da..6165fc3f 100644
--- a/src/modlistproxy.cpp
+++ b/src/modlistproxy.cpp
@@ -7,7 +7,14 @@ using namespace MOBase;
using namespace MOShared;
ModListProxy::ModListProxy(OrganizerProxy* oproxy, ModList* modlist) :
- m_OrganizerProxy(oproxy), m_Proxied(modlist)
+ m_OrganizerProxy(oproxy), m_Proxied(modlist) { }
+
+ModListProxy::~ModListProxy()
+{
+ disconnectSignals();
+}
+
+void ModListProxy::connectSignals()
{
m_Connections.push_back(m_Proxied->onModInstalled(callSignalIfPluginActive(m_OrganizerProxy, m_ModInstalled)));
m_Connections.push_back(m_Proxied->onModMoved(callSignalIfPluginActive(m_OrganizerProxy, m_ModMoved)));
@@ -15,11 +22,12 @@ ModListProxy::ModListProxy(OrganizerProxy* oproxy, ModList* modlist) :
m_Connections.push_back(m_Proxied->onModStateChanged(callSignalIfPluginActive(m_OrganizerProxy, m_ModStateChanged)));
}
-ModListProxy::~ModListProxy()
+void ModListProxy::disconnectSignals()
{
for (auto& conn : m_Connections) {
conn.disconnect();
}
+ m_Connections.clear();
}
QString ModListProxy::displayName(const QString& internalName) const