-void EventManager::registerEventHandler(EventType event, QObject *object, const char *slot, Priority priority) {
- registerEventHandler(QList<EventType>() << event, object, slot, priority);
+void EventManager::registerObject(QObject *object, Priority priority, const QString &methodPrefix, const QString &filterPrefix) {
+ for(int i = object->metaObject()->methodOffset(); i < object->metaObject()->methodCount(); i++) {
+ QString methodSignature(object->metaObject()->method(i).signature());
+
+ int eventType = findEventType(methodSignature, methodPrefix);
+ if(eventType > 0) {
+ Handler handler(object, i, priority);
+ registeredHandlers()[eventType].append(handler);
+ //qDebug() << "Registered event handler for" << methodSignature << "in" << object;
+ }
+ eventType = findEventType(methodSignature, filterPrefix);
+ if(eventType > 0) {
+ Handler handler(object, i, priority);
+ registeredFilters()[eventType].append(handler);
+ //qDebug() << "Registered event filterer for" << methodSignature << "in" << object;
+ }
+ }
+}
+
+void EventManager::registerEventFilter(EventType event, QObject *object, const char *slot) {
+ registerEventHandler(QList<EventType>() << event, object, slot, NormalPriority, true);
+}
+
+void EventManager::registerEventFilter(QList<EventType> events, QObject *object, const char *slot) {
+ registerEventHandler(events, object, slot, NormalPriority, true);