~ubuntu-branches/ubuntu/utopic/qmenumodel/utopic-proposed

« back to all changes in this revision

Viewing changes to libqmenumodel/src/qdbusactiongroup.cpp

  • Committer: Package Import Robot
  • Author(s): Ubuntu daily release, Nick Dedekind
  • Date: 2014-10-13 09:36:50 UTC
  • mfrom: (1.1.20)
  • Revision ID: package-import@ubuntu.com-20141013093650-xy7mav0e3mwnc430
Tags: 0.2.8+14.10.20141013-0ubuntu1
[ Nick Dedekind ]
Disconnect QDBusActionGroup add/remove/stateChange signals when
deleting object. (LP: #1378941)

Show diffs side-by-side

added added

removed removed

Lines of Context:
161
161
        return;
162
162
    }
163
163
 
164
 
    if (m_actionGroup) {
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
 
    }
 
164
    clear();
171
165
 
172
166
    m_actionGroup = reinterpret_cast<GActionGroup*>(ag);
173
167
 
199
193
/*! \internal */
200
194
void 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
203
    Q_FOREACH(QStateAction *act, this->findChildren<QStateAction*>()) {
203
204
        Q_EMIT actionVanish(act->name());
204
205
    }