#ifndef SWIFT_QtMainEventLoop_H #define SWIFT_QtMainEventLoop_H #include #include #include #include "Swiften/EventLoop/EventLoop.h" class QtMainEventLoop : public QObject, public Swift::EventLoop { public: QtMainEventLoop() {} virtual void post(const Swift::Event& event) { QCoreApplication::postEvent(this, new Event(event)); } virtual bool event(QEvent* qevent) { Event* event = dynamic_cast(qevent); if (event) { handleEvent(event->event_); //event->deleteLater(); FIXME: Leak? return true; } return false; } private: struct Event : public QEvent { Event(const Swift::Event& event) : QEvent(QEvent::User), event_(event) { } Swift::Event event_; }; }; #endif