This is mainly for making things a bit more readable in some cases. "handle" is still the
default.
BasicHandler::BasicHandler(QObject *parent)
: QObject(parent),
BasicHandler::BasicHandler(QObject *parent)
: QObject(parent),
- defaultHandler(-1),
- initDone(false)
+ _defaultHandler(-1),
+ _initDone(false),
+ _methodPrefix("handle")
+{
+}
+
+BasicHandler::BasicHandler(const QString &methodPrefix, QObject *parent)
+ : QObject(parent),
+ _defaultHandler(-1),
+ _initDone(false),
+ _methodPrefix(methodPrefix)
}
const QHash<QString, int> &BasicHandler::handlerHash() {
}
const QHash<QString, int> &BasicHandler::handlerHash() {
for(int i = metaObject()->methodOffset(); i < metaObject()->methodCount(); i++) {
QString methodSignature(metaObject()->method(i).signature());
if(methodSignature.startsWith("defaultHandler")) {
for(int i = metaObject()->methodOffset(); i < metaObject()->methodCount(); i++) {
QString methodSignature(metaObject()->method(i).signature());
if(methodSignature.startsWith("defaultHandler")) {
- defaultHandler = i;
- continue;
+ _defaultHandler = i;
+ continue;
-
- if(!methodSignature.startsWith("handle"))
- continue;
-
+
+ if(!methodSignature.startsWith(_methodPrefix))
+ continue;
+
methodSignature = methodSignature.section('(',0,0); // chop the attribute list
methodSignature = methodSignature.section('(',0,0); // chop the attribute list
- methodSignature = methodSignature.mid(6); // strip "handle"
+ methodSignature = methodSignature.mid(_methodPrefix.length()); // strip "handle" or whatever the prefix is
_handlerHash[methodSignature] = i;
}
_handlerHash[methodSignature] = i;
}
}
return _handlerHash;
}
void BasicHandler::handle(const QString &member, QGenericArgument val0,
}
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) {
+ 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!
// 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!
handler[0] = handler[0].toUpper();
if(!handlerHash().contains(handler)) {
handler[0] = handler[0].toUpper();
if(!handlerHash().contains(handler)) {
- if(defaultHandler == -1) {
- qWarning() << QString("No such Handler: %1::handle%2").arg(metaObject()->className(), handler);
+ if(_defaultHandler == -1) {
+ qWarning() << QString("No such Handler: %1::%2%3").arg(metaObject()->className(), _methodPrefix, handler);
return;
} else {
void *param[] = {0, Q_ARG(QString, member).data(), val0.data(), val1.data(), val2.data(), val3.data(), val4.data(),
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()};
- qt_metacall(QMetaObject::InvokeMetaMethod, defaultHandler, param);
+ 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(),
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};
+ val5.data(), val6.data(), val7.data(), val8.data(), val8.data(), 0};
qt_metacall(QMetaObject::InvokeMetaMethod, handlerHash()[handler], param);
}
qt_metacall(QMetaObject::InvokeMetaMethod, handlerHash()[handler], param);
}
public:
BasicHandler(QObject *parent = 0);
public:
BasicHandler(QObject *parent = 0);
+ BasicHandler(const QString &methodPrefix, QObject *parent = 0);
QStringList providesHandlers();
QStringList providesHandlers();
private:
const QHash<QString, int> &handlerHash();
QHash<QString, int> _handlerHash;
private:
const QHash<QString, int> &handlerHash();
QHash<QString, int> _handlerHash;
- int defaultHandler;
- bool initDone;
+ int _defaultHandler;
+ bool _initDone;
+ QString _methodPrefix;