Merge lp:~nick-dedekind/qmenumodel/lp1378941-disconnect-signals into lp:qmenumodel

Proposed by Nick Dedekind
Status: Merged
Approved by: Lars Karlitski
Approved revision: 113
Merged at revision: 113
Proposed branch: lp:~nick-dedekind/qmenumodel/lp1378941-disconnect-signals
Merge into: lp:qmenumodel
Diff against target: 32 lines (+8/-7)
1 file modified
libqmenumodel/src/qdbusactiongroup.cpp (+8/-7)
To merge this branch: bzr merge lp:~nick-dedekind/qmenumodel/lp1378941-disconnect-signals
Reviewer Review Type Date Requested Status
Lars Karlitski (community) Approve
Michael Sheldon (community) Approve
Charles Kerr (community) Approve
PS Jenkins bot (community) continuous-integration Approve
Review via email: mp+238013@code.launchpad.net

Commit message

Disconnect QDBusActionGroup add/remove/stateChange signals when deleting object.

Description of the change

Disconnect QDBusActionGroup add/remove/stateChange signals when deleting object.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Charles Kerr (charlesk) :
review: Approve
Revision history for this message
Charles Kerr (charlesk) :
review: Approve
Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

Haven't been able to reproduce the crash since installing this branch, so that's a big +1 from me, thanks!

review: Approve
Revision history for this message
Lars Karlitski (larsu) wrote :

Yep, looks right. Thanks

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'libqmenumodel/src/qdbusactiongroup.cpp'
--- libqmenumodel/src/qdbusactiongroup.cpp 2013-08-09 08:01:43 +0000
+++ libqmenumodel/src/qdbusactiongroup.cpp 2014-10-10 17:35:05 +0000
@@ -161,13 +161,7 @@
161 return;161 return;
162 }162 }
163163
164 if (m_actionGroup) {164 clear();
165 g_signal_handler_disconnect(m_actionGroup, m_signalActionAddId);
166 g_signal_handler_disconnect(m_actionGroup, m_signalActionRemovedId);
167 g_signal_handler_disconnect(m_actionGroup, m_signalStateChangedId);
168 m_signalActionAddId = m_signalActionRemovedId = m_signalStateChangedId = 0;
169 clear();
170 }
171165
172 m_actionGroup = reinterpret_cast<GActionGroup*>(ag);166 m_actionGroup = reinterpret_cast<GActionGroup*>(ag);
173167
@@ -199,6 +193,13 @@
199/*! \internal */193/*! \internal */
200void QDBusActionGroup::clear()194void QDBusActionGroup::clear()
201{195{
196 if (m_actionGroup) {
197 g_signal_handler_disconnect(m_actionGroup, m_signalActionAddId);
198 g_signal_handler_disconnect(m_actionGroup, m_signalActionRemovedId);
199 g_signal_handler_disconnect(m_actionGroup, m_signalStateChangedId);
200 m_signalActionAddId = m_signalActionRemovedId = m_signalStateChangedId = 0;
201 }
202
202 Q_FOREACH(QStateAction *act, this->findChildren<QStateAction*>()) {203 Q_FOREACH(QStateAction *act, this->findChildren<QStateAction*>()) {
203 Q_EMIT actionVanish(act->name());204 Q_EMIT actionVanish(act->name());
204 }205 }

Subscribers

People subscribed via source and target branches