From a30d49f4fc845164ef6bba4d2a834efce1dc01d7 Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Fri, 4 Dec 2020 08:50:31 +0100 Subject: Avoid duplicating code to simulate startup. --- src/modlistproxy.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/modlistproxy.cpp') 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 -- cgit v1.3.1