X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fsignalproxy.cpp;h=68ac6fbc26ddf61cc380f7318b19471dcffeec26;hp=d9102fd33c84103f051c9a56be7282346f1ee900;hb=9ef86f499753853c3751aee7da54d186837a5161;hpb=1cb02004ee5973b89368bd84f234d4652794690d diff --git a/src/common/signalproxy.cpp b/src/common/signalproxy.cpp index d9102fd3..68ac6fbc 100644 --- a/src/common/signalproxy.cpp +++ b/src/common/signalproxy.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2015 by the Quassel Project * + * Copyright (C) 2005-2016 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -119,7 +119,7 @@ void SignalProxy::SignalRelay::detachSignal(QObject *sender, int signalId) break; } else { - slotIter++; + ++slotIter; } } } @@ -146,9 +146,9 @@ int SignalProxy::SignalRelay::qt_metacall(QMetaObject::Call _c, int _id, void ** for (int i = 0; i < argTypes.size(); i++) { if (argTypes[i] == 0) { #if QT_VERSION >= 0x050000 - qWarning() << "SignalRelay::qt_metacall(): received invalid data for argument number" << i << "of signal" << QString("%1::%2").arg(caller->metaObject()->className()).arg(caller->metaObject()->method(_id).methodSignature().constData()); + qWarning() << "SignalRelay::qt_metacall(): received invalid data for argument number" << i << "of signal" << QString("%1::%2").arg(caller->metaObject()->className()).arg(caller->metaObject()->method(signal.signalId).methodSignature().constData()); #else - qWarning() << "SignalRelay::qt_metacall(): received invalid data for argument number" << i << "of signal" << QString("%1::%2").arg(caller->metaObject()->className()).arg(caller->metaObject()->method(_id).signature()); + qWarning() << "SignalRelay::qt_metacall(): received invalid data for argument number" << i << "of signal" << QString("%1::%2").arg(caller->metaObject()->className()).arg(caller->metaObject()->method(signal.signalId).signature()); #endif qWarning() << " - make sure all your data types are known by the Qt MetaSystem"; return _id; @@ -197,7 +197,7 @@ SignalProxy::~SignalProxy() objIter = classIter->erase(objIter); obj->stopSynchronize(this); } - classIter++; + ++classIter; } _syncSlave.clear(); @@ -288,7 +288,13 @@ bool SignalProxy::addPeer(Peer *peer) if (!peer->parent()) peer->setParent(this); + if (peer->_id < 0) { + peer->_id = nextPeerId(); + peer->_connectedSince = QDateTime::currentDateTimeUtc(); + } + _peers.insert(peer); + _peerMap[peer->_id] = peer; peer->setSignalProxy(this); @@ -331,6 +337,7 @@ void SignalProxy::removePeer(Peer *peer) disconnect(peer, 0, this, 0); peer->setSignalProxy(0); + _peerMap.remove(peer->_id); _peers.remove(peer); emit peerRemoved(peer); @@ -482,7 +489,7 @@ void SignalProxy::detachSlots(QObject *receiver) slotIter = _attachedSlots.erase(slotIter); } else - slotIter++; + ++slotIter; } } @@ -497,7 +504,7 @@ void SignalProxy::stopSynchronize(SyncableObject *obj) classIter->remove(obj->objectName()); break; } - classIter++; + ++classIter; } obj->stopSynchronize(this); } @@ -810,6 +817,25 @@ void SignalProxy::updateSecureState() emit secureStateChanged(_secure); } +QVariantList SignalProxy::peerData() { + QVariantList result; + for (auto peer : _peers) { + QVariantMap data; + data["id"] = peer->_id; + data["clientVersion"] = peer->_clientVersion; + data["clientVersionDate"] = peer->_buildDate; + data["remoteAddress"] = peer->address(); + data["connectedSince"] = peer->_connectedSince; + data["secure"] = peer->isSecure(); + result << data; + } + return result; +} + +Peer *SignalProxy::peerById(int peerId) { + return _peerMap[peerId]; +} + // ================================================== // ExtendedMetaObject