X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fbasichandler.cpp;h=21697ce29882aafa2285b5071b6e70cc732b095a;hp=c53468f069f56539f797fbc8405f8610307a2e4e;hb=HEAD;hpb=0a43227b8cd44625f4881cc1545d42c8c8a4876c diff --git a/src/common/basichandler.cpp b/src/common/basichandler.cpp index c53468f0..21697ce2 100644 --- a/src/common/basichandler.cpp +++ b/src/common/basichandler.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2016 by the Quassel Project * + * Copyright (C) 2005-2022 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,43 +20,31 @@ #include "basichandler.h" -#include - -#include "logger.h" - -BasicHandler::BasicHandler(QObject *parent) - : QObject(parent), - _defaultHandler(-1), - _initDone(false), - _methodPrefix("handle") -{ -} +#include +#include +#include -BasicHandler::BasicHandler(const QString &methodPrefix, QObject *parent) - : QObject(parent), - _defaultHandler(-1), - _initDone(false), - _methodPrefix(methodPrefix) -{ -} +BasicHandler::BasicHandler(QObject* parent) + : QObject(parent) + , _methodPrefix("handle") +{} +BasicHandler::BasicHandler(QString methodPrefix, QObject* parent) + : QObject(parent) + , _methodPrefix(std::move(methodPrefix)) +{} QStringList BasicHandler::providesHandlers() { return handlerHash().keys(); } - -const QHash &BasicHandler::handlerHash() +const QHash& BasicHandler::handlerHash() { if (!_initDone) { for (int i = metaObject()->methodOffset(); i < metaObject()->methodCount(); i++) { -#if QT_VERSION >= 0x050000 QString methodSignature = metaObject()->method(i).methodSignature(); -#else - QString methodSignature = metaObject()->method(i).signature(); -#endif if (methodSignature.startsWith("defaultHandler")) { _defaultHandler = i; continue; @@ -65,8 +53,8 @@ const QHash &BasicHandler::handlerHash() if (!methodSignature.startsWith(_methodPrefix)) continue; - methodSignature = methodSignature.section('(', 0, 0); // chop the attribute list - methodSignature = methodSignature.mid(_methodPrefix.length()); // strip "handle" or whatever the prefix is + methodSignature = methodSignature.section('(', 0, 0); // chop the attribute list + methodSignature = methodSignature.mid(_methodPrefix.length()); // strip "handle" or whatever the prefix is _handlerHash[methodSignature] = i; } _initDone = true; @@ -74,12 +62,16 @@ const QHash &BasicHandler::handlerHash() return _handlerHash; } - -void BasicHandler::handle(const QString &member, QGenericArgument val0, - QGenericArgument val1, QGenericArgument val2, - QGenericArgument val3, QGenericArgument val4, - QGenericArgument val5, QGenericArgument val6, - QGenericArgument val7, QGenericArgument val8) +void BasicHandler::handle(const QString& member, + QGenericArgument val0, + QGenericArgument val1, + QGenericArgument val2, + QGenericArgument val3, + QGenericArgument val4, + QGenericArgument val5, + QGenericArgument val6, + QGenericArgument val7, + QGenericArgument val8) { // Now we try to find a handler for this message. BTW, I do love the Trolltech guys ;-) // and now we even have a fast lookup! Thanks thiago! @@ -93,14 +85,34 @@ void BasicHandler::handle(const QString &member, QGenericArgument val0, return; } else { - void *param[] = { 0, Q_ARG(QString, member).data(), val0.data(), val1.data(), val2.data(), val3.data(), val4.data(), - val5.data(), val6.data(), val7.data(), val8.data(), val8.data() }; + void* param[] = {nullptr, + Q_ARG(QString, member).data(), + val0.data(), + val1.data(), + val2.data(), + val3.data(), + val4.data(), + val5.data(), + val6.data(), + val7.data(), + val8.data(), + val8.data()}; qt_metacall(QMetaObject::InvokeMetaMethod, _defaultHandler, param); return; } } - void *param[] = { 0, val0.data(), val1.data(), val2.data(), val3.data(), val4.data(), - val5.data(), val6.data(), val7.data(), val8.data(), val8.data(), 0 }; + void* param[] = {nullptr, + val0.data(), + val1.data(), + val2.data(), + val3.data(), + val4.data(), + val5.data(), + val6.data(), + val7.data(), + val8.data(), + val8.data(), + nullptr}; qt_metacall(QMetaObject::InvokeMetaMethod, handlerHash()[handler], param); }