#include <QMetaEnum>
+#include "types.h"
+
class Event;
+class Network;
class EventManager : public QObject {
Q_OBJECT
Silent = 0x40, ///< Don't generate a MessageEvent
Stopped = 0x80
};
- Q_DECLARE_FLAGS(EventFlags, EventFlag);
+ Q_DECLARE_FLAGS(EventFlags, EventFlag)
/*
MessageEvent = 0x00040000, ///< Stringified event suitable for converting to Message
CtcpEvent = 0x00050000,
- CtcpEventFlush,
+ CtcpEventFlush
};
EventManager(QObject *parent = 0);
- EventType eventTypeByName(const QString &name) const;
- EventType eventGroupByName(const QString &name) const;
+ static EventType eventTypeByName(const QString &name);
+ static EventType eventGroupByName(const QString &name);
+ static QString enumName(EventType type);
+ static QString enumName(int type); // for sanity tests
- QString enumName(EventType type) const;
+ Event *createEvent(const QVariantMap &map);
public slots:
void registerObject(QObject *object, Priority priority = NormalPriority,
void postEvent(Event *event);
protected:
+ virtual Network *networkById(NetworkId id) const = 0;
virtual void customEvent(QEvent *event);
private:
void dispatchEvent(Event *event);
//! @return the EventType enum
- QMetaEnum eventEnum() const;
+ static QMetaEnum eventEnum();
HandlerHash _registeredHandlers;
HandlerHash _registeredFilters;
- mutable QMetaEnum _enum;
QList<Event *> _eventQueue;
+ static QMetaEnum _enum;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(EventManager::EventFlags);