/* * Copyright (c) 2010 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once #include #include #include #include "Swiften/EventLoop/EventLoop.h" class QtEventLoop : public QObject, public Swift::EventLoop { public: QtEventLoop() {} 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_; }; };