X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fsignalproxy.cpp;h=a629551c7a1f9947b31a209e96538deb2c9318e6;hp=19b9af83e2f36c485947527fb86c609349b530b6;hb=6eefdfc697067d184a589fc8a231b16316c09106;hpb=ab7ef4d24f62b5848b628482b7762ebfc0b53e1a diff --git a/src/common/signalproxy.cpp b/src/common/signalproxy.cpp index 19b9af83..a629551c 100644 --- a/src/common/signalproxy.cpp +++ b/src/common/signalproxy.cpp @@ -18,6 +18,8 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ +#include + #include #include #include @@ -59,18 +61,18 @@ public: SignalRelay(SignalProxy *parent) : QObject(parent), _proxy(parent) {} inline SignalProxy *proxy() const { return _proxy; } - int qt_metacall(QMetaObject::Call _c, int _id, void **_a); + int qt_metacall(QMetaObject::Call _c, int _id, void **_a) override; void attachSignal(QObject *sender, int signalId, const QByteArray &funcName); void detachSignal(QObject *sender, int signalId = -1); private: struct Signal { - QObject *sender; - int signalId; + QObject *sender{nullptr}; + int signalId{-1}; QByteArray signature; - Signal(QObject *sender, int sigId, const QByteArray &signature) : sender(sender), signalId(sigId), signature(signature) {} - Signal() : sender(0), signalId(-1) {} + Signal(QObject *sender, int sigId, QByteArray signature) : sender(sender), signalId(sigId), signature(std::move(signature)) {} + Signal() = default; }; SignalProxy *_proxy; @@ -166,7 +168,9 @@ int SignalProxy::SignalRelay::qt_metacall(QMetaObject::Call _c, int _id, void ** // SignalProxy // ================================================== -thread_local SignalProxy *SignalProxy::_current{nullptr}; +namespace { +thread_local SignalProxy *_current{nullptr}; +} SignalProxy::SignalProxy(QObject *parent) : QObject(parent) @@ -204,6 +208,12 @@ SignalProxy::~SignalProxy() } +SignalProxy *SignalProxy::current() +{ + return _current; +} + + void SignalProxy::setProxyMode(ProxyMode mode) { if (!_peerMap.empty()) { @@ -278,11 +288,11 @@ bool SignalProxy::addPeer(Peer *peer) qWarning("SignalProxy: only one peer allowed in client mode!"); return false; } - connect(peer, SIGNAL(lagUpdated(int)), SIGNAL(lagUpdated(int))); + connect(peer, &Peer::lagUpdated, this, &SignalProxy::lagUpdated); } - connect(peer, SIGNAL(disconnected()), SLOT(removePeerBySender())); - connect(peer, SIGNAL(secureStateChanged(bool)), SLOT(updateSecureState())); + connect(peer, &Peer::disconnected, this, &SignalProxy::removePeerBySender); + connect(peer, &Peer::secureStateChanged, this, &SignalProxy::updateSecureState); if (!peer->parent()) peer->setParent(this); @@ -332,8 +342,8 @@ void SignalProxy::removePeer(Peer *peer) return; } - disconnect(peer, 0, this, 0); - peer->setSignalProxy(0); + disconnect(peer, nullptr, this, nullptr); + peer->setSignalProxy(nullptr); _peerMap.remove(peer->id()); emit peerRemoved(peer); @@ -378,7 +388,7 @@ void SignalProxy::objectRenamed(const QByteArray &classname, const QString &newn const QMetaObject *SignalProxy::metaObject(const QObject *obj) { - if (const SyncableObject *syncObject = qobject_cast(obj)) + if (const auto *syncObject = qobject_cast(obj)) return syncObject->syncMetaObject(); else return obj->metaObject(); @@ -390,7 +400,7 @@ SignalProxy::ExtendedMetaObject *SignalProxy::extendedMetaObject(const QMetaObje if (_extendedMetaObjects.contains(meta)) return _extendedMetaObjects[meta]; else - return 0; + return nullptr; } @@ -416,8 +426,8 @@ bool SignalProxy::attachSignal(QObject *sender, const char *signal, const QByteA createExtendedMetaObject(meta); _signalRelay->attachSignal(sender, methodId, sigName); - disconnect(sender, SIGNAL(destroyed(QObject *)), this, SLOT(detachObject(QObject *))); - connect(sender, SIGNAL(destroyed(QObject *)), this, SLOT(detachObject(QObject *))); + disconnect(sender, &QObject::destroyed, this, &SignalProxy::detachObject); + connect(sender, &QObject::destroyed, this, &SignalProxy::detachObject); return true; } @@ -436,8 +446,8 @@ bool SignalProxy::attachSlot(const QByteArray &sigName, QObject *recv, const cha QByteArray funcName = QMetaObject::normalizedSignature(sigName.constData()); _attachedSlots.insert(funcName, qMakePair(recv, methodId)); - disconnect(recv, SIGNAL(destroyed(QObject *)), this, SLOT(detachObject(QObject *))); - connect(recv, SIGNAL(destroyed(QObject *)), this, SLOT(detachObject(QObject *))); + disconnect(recv, &QObject::destroyed, this, &SignalProxy::detachObject); + connect(recv, &QObject::destroyed, this, &SignalProxy::detachObject); return true; } @@ -654,9 +664,9 @@ bool SignalProxy::invokeSlot(QObject *receiver, int methodId, const QVariantList return false; } - void *_a[] = { 0, // return type... - 0, 0, 0, 0, 0, // and 10 args - that's the max size qt can handle with signals and slots - 0, 0, 0, 0, 0 }; + void *_a[] = { nullptr, // return type... + nullptr, nullptr, nullptr, nullptr, nullptr, // and 10 args - that's the max size qt can handle with signals and slots + nullptr, nullptr, nullptr, nullptr, nullptr }; // check for argument compatibility and build params array for (int i = 0; i < numArgs; i++) { @@ -730,7 +740,7 @@ void SignalProxy::customEvent(QEvent *event) { switch ((int)event->type()) { case RemovePeerEvent: { - ::RemovePeerEvent *e = static_cast< ::RemovePeerEvent *>(event); + auto *e = static_cast< ::RemovePeerEvent *>(event); removePeer(e->peer); event->accept(); break; @@ -778,7 +788,7 @@ void SignalProxy::disconnectDevice(QIODevice *dev, const QString &reason) { if (!reason.isEmpty()) qWarning() << qPrintable(reason); - QAbstractSocket *sock = qobject_cast(dev); + auto *sock = qobject_cast(dev); if (sock) qWarning() << qPrintable(tr("Disconnecting")) << qPrintable(sock->peerAddress().toString()); dev->close();