X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fbasichandler.cpp;h=ddb397efb0356fb585a49b1c1651d4768d50d07d;hp=341b72940875139dbd9f22a52ce7b57f90615c73;hb=95848fd9232d92f388e0e533adb15f6ba9d2d492;hpb=04315f46a16fc3627218377071e008b6b9744992 diff --git a/src/common/basichandler.cpp b/src/common/basichandler.cpp index 341b7294..ddb397ef 100644 --- a/src/common/basichandler.cpp +++ b/src/common/basichandler.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2013 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,39 +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++) { - QString methodSignature(metaObject()->method(i).signature()); + QString methodSignature = metaObject()->method(i).methodSignature(); if (methodSignature.startsWith("defaultHandler")) { _defaultHandler = i; continue; @@ -61,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; @@ -70,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! @@ -89,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); }