Chan -> Channel, it's just nicer in user-visible strings
[quassel.git] / src / common / eventmanager.h
index 1a952fb..eb31921 100644 (file)
 
 #include <QMetaEnum>
 
+#include "types.h"
+
 class Event;
+class Network;
 
 class EventManager : public QObject {
   Q_OBJECT
@@ -53,7 +56,7 @@ public:
     Silent   = 0x40, ///< Don't generate a MessageEvent
     Stopped  = 0x80
   };
-  Q_DECLARE_FLAGS(EventFlags, EventFlag);
+  Q_DECLARE_FLAGS(EventFlags, EventFlag)
 
   /*
 
@@ -107,15 +110,17 @@ public:
     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,
@@ -137,6 +142,7 @@ public slots:
   void postEvent(Event *event);
 
 protected:
+  virtual Network *networkById(NetworkId id) const = 0;
   virtual void customEvent(QEvent *event);
 
 private:
@@ -171,12 +177,12 @@ 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);