diff options
Diffstat (limited to 'Swiften/EventLoop/Qt')
-rw-r--r-- | Swiften/EventLoop/Qt/QtEventLoop.h | 82 |
1 files changed, 41 insertions, 41 deletions
diff --git a/Swiften/EventLoop/Qt/QtEventLoop.h b/Swiften/EventLoop/Qt/QtEventLoop.h index 123b6e8..3f5e93c 100644 --- a/Swiften/EventLoop/Qt/QtEventLoop.h +++ b/Swiften/EventLoop/Qt/QtEventLoop.h @@ -15,45 +15,45 @@ #include <Swiften/EventLoop/EventLoop.h> namespace Swift { - class QtEventLoop : public QObject, public EventLoop { - public: - QtEventLoop() : isEventInQtEventLoop_(false) {} - virtual ~QtEventLoop() { - QCoreApplication::removePostedEvents(this); - } - - protected: - virtual void eventPosted() { - boost::recursive_mutex::scoped_lock lock(isEventInQtEventLoopMutex_); - if (!isEventInQtEventLoop_) { - isEventInQtEventLoop_ = true; - QCoreApplication::postEvent(this, new Event()); - } - } - - virtual bool event(QEvent* qevent) { - Event* event = dynamic_cast<Event*>(qevent); - if (event) { - { - boost::recursive_mutex::scoped_lock lock(isEventInQtEventLoopMutex_); - isEventInQtEventLoop_ = false; - } - handleNextEvents(); - //event->deleteLater(); FIXME: Leak? - return true; - } - - return false; - } - - private: - struct Event : public QEvent { - Event() : - QEvent(QEvent::User) { - } - }; - - bool isEventInQtEventLoop_; - boost::recursive_mutex isEventInQtEventLoopMutex_; - }; + class QtEventLoop : public QObject, public EventLoop { + public: + QtEventLoop() : isEventInQtEventLoop_(false) {} + virtual ~QtEventLoop() { + QCoreApplication::removePostedEvents(this); + } + + protected: + virtual void eventPosted() { + boost::recursive_mutex::scoped_lock lock(isEventInQtEventLoopMutex_); + if (!isEventInQtEventLoop_) { + isEventInQtEventLoop_ = true; + QCoreApplication::postEvent(this, new Event()); + } + } + + virtual bool event(QEvent* qevent) { + Event* event = dynamic_cast<Event*>(qevent); + if (event) { + { + boost::recursive_mutex::scoped_lock lock(isEventInQtEventLoopMutex_); + isEventInQtEventLoop_ = false; + } + handleNextEvents(); + //event->deleteLater(); FIXME: Leak? + return true; + } + + return false; + } + + private: + struct Event : public QEvent { + Event() : + QEvent(QEvent::User) { + } + }; + + bool isEventInQtEventLoop_; + boost::recursive_mutex isEventInQtEventLoopMutex_; + }; } |