/***************************************************************************
- * Copyright (C) 2005-2015 by the Quassel Project *
+ * Copyright (C) 2005-2020 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "basichandler.h"
-#include <QMetaMethod>
-
-#include "logger.h"
-
-BasicHandler::BasicHandler(QObject *parent)
- : QObject(parent),
- _defaultHandler(-1),
- _initDone(false),
- _methodPrefix("handle")
-{
-}
+#include <utility>
+#include <QDebug>
+#include <QMetaMethod>
-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<QString, int> &BasicHandler::handlerHash()
+const QHash<QString, int>& 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;
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;
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!
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);
}