From: Manuel Nickschas Date: Mon, 10 Sep 2007 19:17:26 +0000 (+0000) Subject: SignalProxy::detachObject() implemented. Not really tested though. X-Git-Tag: 0.1.0~157 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=dde01ef184386a7391a6763f5bff33a0aab7ecb2;hp=64773d0bbb9ad9e7b0a26aa9751447fa7288ca56;ds=sidebyside SignalProxy::detachObject() implemented. Not really tested though. --- diff --git a/src/common/signalproxy.cpp b/src/common/signalproxy.cpp index d6c105b3..c35ccb5e 100644 --- a/src/common/signalproxy.cpp +++ b/src/common/signalproxy.cpp @@ -86,12 +86,21 @@ void SignalProxy::attachSlot(const QByteArray& rpcFunction, QObject* recv, const } void SignalProxy::detachObject(QObject* obj) { - Q_ASSERT(false); // not done yet + //Q_ASSERT(false); // not done yet foreach(Connection conn, peers) { conn.peer->detachObject(obj); } - // FIXME: delete attached signal/slot info - + QList sigs; + foreach(SignalDesc desc, attachedSignals) { + if(desc.sender != obj) sigs << desc; + } + attachedSignals = sigs; + QList slot; + foreach(SlotDesc desc, attachedSlots) { + if(desc.recv != obj) slot << desc; + } + attachedSlots = slot; + // FIXME: test this! } void SignalProxy::sendSignal(const char *signal, QVariant p1, QVariant p2, QVariant p3, QVariant p4, QVariant p5, QVariant p6, QVariant p7, QVariant p8, QVariant p9) {