IrcEventUnknown, ///< Unknown non-numeric cmd
IrcEventNumeric = 0x00031000, /* needs 1000 (0x03e8) consecutive free values! */
+ IrcEventNumericMask = 0x00000fff, /* for checking if an event is numeric */
MessageEvent = 0x00040000, ///< Stringified event suitable for converting to Message
};
EventManager(QObject *parent = 0);
- //virtual ~EventManager();
+ virtual ~EventManager();
EventType eventTypeByName(const QString &name) const;
EventType eventGroupByName(const QString &name) const;
+ QString enumName(EventType type) const;
public slots:
void registerObject(QObject *object, Priority priority = NormalPriority, const QString &methodPrefix = "handle");
*/
void sendEvent(Event *event);
+protected:
+ virtual void customEvent(QEvent *event);
+
private:
struct Handler {
QObject *object;
//! Add handlers to an existing sorted (by priority) handler list
void insertHandlers(const QList<Handler> &newHandlers, QList<Handler> &existing);
+ void processEvents();
void dispatchEvent(Event *event);
//! @return the EventType enum
HandlerHash _registeredHandlers;
mutable QMetaEnum _enum;
+
+ QList<Event *> _eventQueue;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(EventManager::EventFlags);