From ec1e10bebbab22cc92455898a6e3948d7ecf8ab4 Mon Sep 17 00:00:00 2001 From: Nick Dedekind Date: Fri, 10 Oct 2014 18:28:11 +0100 Subject: disconnect on clear --- libqmenumodel/src/qdbusactiongroup.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'libqmenumodel') diff --git a/libqmenumodel/src/qdbusactiongroup.cpp b/libqmenumodel/src/qdbusactiongroup.cpp index 5000470..0ef907a 100644 --- a/libqmenumodel/src/qdbusactiongroup.cpp +++ b/libqmenumodel/src/qdbusactiongroup.cpp @@ -161,13 +161,7 @@ void QDBusActionGroup::setActionGroup(GDBusActionGroup *ag) return; } - if (m_actionGroup) { - g_signal_handler_disconnect(m_actionGroup, m_signalActionAddId); - g_signal_handler_disconnect(m_actionGroup, m_signalActionRemovedId); - g_signal_handler_disconnect(m_actionGroup, m_signalStateChangedId); - m_signalActionAddId = m_signalActionRemovedId = m_signalStateChangedId = 0; - clear(); - } + clear(); m_actionGroup = reinterpret_cast(ag); @@ -199,6 +193,13 @@ void QDBusActionGroup::setActionGroup(GDBusActionGroup *ag) /*! \internal */ void QDBusActionGroup::clear() { + if (m_actionGroup) { + g_signal_handler_disconnect(m_actionGroup, m_signalActionAddId); + g_signal_handler_disconnect(m_actionGroup, m_signalActionRemovedId); + g_signal_handler_disconnect(m_actionGroup, m_signalStateChangedId); + m_signalActionAddId = m_signalActionRemovedId = m_signalStateChangedId = 0; + } + Q_FOREACH(QStateAction *act, this->findChildren()) { Q_EMIT actionVanish(act->name()); } -- cgit v1.2.3