From 9400a18f1ded174bb325c71a6daace641e57d6d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Fri, 20 Nov 2009 11:22:49 +0100 Subject: Pull the event dispatching code out to a separate function. Remove some unused timer code. --- src/gui/kernel/qeventdispatcher_nacl.cpp | 153 +++++++++++-------------------- src/gui/kernel/qeventdispatcher_nacl_p.h | 8 +- 2 files changed, 57 insertions(+), 104 deletions(-) diff --git a/src/gui/kernel/qeventdispatcher_nacl.cpp b/src/gui/kernel/qeventdispatcher_nacl.cpp index b2e66443d8..578cb70bb0 100644 --- a/src/gui/kernel/qeventdispatcher_nacl.cpp +++ b/src/gui/kernel/qeventdispatcher_nacl.cpp @@ -102,78 +102,78 @@ QEventDispatcherNaCl::~QEventDispatcherNaCl() bool QEventDispatcherNaCl::processEvents(QEventLoop::ProcessEventsFlags flags) { - Q_D(QEventDispatcherNaCl); - - // perror("QEventDispatcherNaCl::foo()"); - // perror("QEventDispatcherNaCl::processEvents()"); - - NaClMultimediaEvent event; - do { QApplication::sendPostedEvents(); + NaClMultimediaEvent event; if (nacl_video_poll_event(&event) != 0) { activateTimers(); continue; } - if (event.type == NACL_EVENT_MOUSE_BUTTON_DOWN) { - //perror("mouse down"); - QPoint p(event.button.x, event.button.y); - - //fprintf(stderr, "mouse coords %d %d \n", event.button.x, event.button.y); - - QMouseEvent mouseEvent(QEvent::MouseButtonPress, p, p, Qt::LeftButton, - Qt::LeftButton, Qt::NoModifier); - QApplicationPrivate::handleMouseEvent(0, mouseEvent); - - //qApp->handleMouseEvent(0, &mouseEvent); - //event - } - - if (event.type == NACL_EVENT_MOUSE_BUTTON_UP) { - //perror("mouse up"); - QPoint p(event.button.x, event.button.y); - QMouseEvent mouseEvent(QEvent::MouseButtonRelease, p, p, Qt::LeftButton, - Qt::NoButton, Qt::NoModifier); - QApplicationPrivate::handleMouseEvent(0, mouseEvent); - } - - if (event.type == NACL_EVENT_MOUSE_MOTION) { - //fprintf(stderr, " mouse motion %d %d", event.motion.x, event.motion.y); - QPoint p(event.motion.x, event.motion.y); - QMouseEvent mouseEvent(QEvent::MouseMove, p, p, - Qt::NoButton, - naClButtonStateToQtMouseButton(event.motion.state), - Qt::NoModifier); - QApplicationPrivate::handleMouseEvent(0, mouseEvent); - } - - if (event.type == NACL_EVENT_KEY_DOWN) { - //fprintf(stderr, "unicode %d", event.key.keysym.unicode); - QKeyEvent keyEvent(QEvent::KeyPress, Qt::Key_A, Qt::NoModifier, - QString(QChar(event.key.keysym.sym))); - QApplicationPrivate::handleKeyEvent(0, &keyEvent); - - } - - if (event.type == NACL_EVENT_KEY_UP) { - QKeyEvent keyEvent(QEvent::KeyRelease, Qt::Key_A, Qt::NoModifier, - QString(QChar(event.key.keysym.sym))); - QApplicationPrivate::handleKeyEvent(0, &keyEvent); - } - if (event.type == NACL_EVENT_QUIT) { perror(" quit"); qApp->quit(); break; + } else { + translateAndSendEvent(event); } - - activateTimers(); + + activateTimers(); } while(flags & QEventLoop::WaitForMoreEvents); // busy-wait for more events return false; } +void QEventDispatcherNaCl::translateAndSendEvent(NaClMultimediaEvent event) +{ + if (event.type == NACL_EVENT_MOUSE_BUTTON_DOWN) { + //perror("mouse down"); + QPoint p(event.button.x, event.button.y); + + //fprintf(stderr, "mouse coords %d %d \n", event.button.x, event.button.y); + + QMouseEvent mouseEvent(QEvent::MouseButtonPress, p, p, Qt::LeftButton, + Qt::LeftButton, Qt::NoModifier); + QApplicationPrivate::handleMouseEvent(0, mouseEvent); + + //qApp->handleMouseEvent(0, &mouseEvent); + //event + } + + if (event.type == NACL_EVENT_MOUSE_BUTTON_UP) { + //perror("mouse up"); + QPoint p(event.button.x, event.button.y); + QMouseEvent mouseEvent(QEvent::MouseButtonRelease, p, p, Qt::LeftButton, + Qt::NoButton, Qt::NoModifier); + QApplicationPrivate::handleMouseEvent(0, mouseEvent); + } + + if (event.type == NACL_EVENT_MOUSE_MOTION) { + //fprintf(stderr, " mouse motion %d %d", event.motion.x, event.motion.y); + QPoint p(event.motion.x, event.motion.y); + QMouseEvent mouseEvent(QEvent::MouseMove, p, p, + Qt::NoButton, + naClButtonStateToQtMouseButton(event.motion.state), + Qt::NoModifier); + QApplicationPrivate::handleMouseEvent(0, mouseEvent); + } + + if (event.type == NACL_EVENT_KEY_DOWN) { + //fprintf(stderr, "unicode %d", event.key.keysym.unicode); + QKeyEvent keyEvent(QEvent::KeyPress, Qt::Key_A, Qt::NoModifier, + QString(QChar(event.key.keysym.sym))); + QApplicationPrivate::handleKeyEvent(0, &keyEvent); + + } + + if (event.type == NACL_EVENT_KEY_UP) { + QKeyEvent keyEvent(QEvent::KeyRelease, Qt::Key_A, Qt::NoModifier, + QString(QChar(event.key.keysym.sym))); + QApplicationPrivate::handleKeyEvent(0, &keyEvent); + } +} + + bool QEventDispatcherNaCl::hasPendingEvents() { perror("QEventDispatcherNaCl::hasPendingEvents()"); @@ -191,49 +191,6 @@ void QEventDispatcherNaCl::unregisterSocketNotifier(QSocketNotifier *notifier) perror("QEventDispatcherNaCl::unregisterSocketNotifier()"); } -/* -void QEventDispatcherNaCl::registerTimer(int timerId, int interval, QObject *object) -{ -Q_D(QEventDispatcherNaCl); - perror("QEventDispatcherNaCl::registerTimer()"); - NaClTimerInfo timerInfo; - timerInfo.id = timerId; - timerInfo.interval = interval; - timerInfo.object = object; - timerInfo.elapsed = 0; - d->timers.append(timerInfo); -} - -bool QEventDispatcherNaCl::unregisterTimer(int timerId) -{ - perror("QEventDispatcherNaCl::unregisterTimer()"); - return true; -} - -bool QEventDispatcherNaCl::unregisterTimers(QObject *object) -{ - perror("QEventDispatcherNaCl::unregisterTimers()"); - return true; -} - -void QEventDispatcherNaCl::fireTimers() -{ - Q_D(QEventDispatcherNaCl); - foreach (NaClTimerInfo timer, d->timers) { - QTimerEvent timerEvent(timer.id); - perror("send timer envet"); - QApplication::sendEvent(timer.object, &timerEvent); - } -} - -QList QEventDispatcherNaCl::registeredTimers(QObject *object) const -{ - perror("QEventDispatcherNaCl::registeredTimers()"); - QList timerInfo; - return timerInfo; -} -*/ - void QEventDispatcherNaCl::startingUp() { diff --git a/src/gui/kernel/qeventdispatcher_nacl_p.h b/src/gui/kernel/qeventdispatcher_nacl_p.h index efc8e27bfb..749ef1940d 100644 --- a/src/gui/kernel/qeventdispatcher_nacl_p.h +++ b/src/gui/kernel/qeventdispatcher_nacl_p.h @@ -54,6 +54,7 @@ // #include "private/qeventdispatcher_unix_p.h" +#include QT_BEGIN_NAMESPACE @@ -69,16 +70,11 @@ public: ~QEventDispatcherNaCl(); bool processEvents(QEventLoop::ProcessEventsFlags flags); + void translateAndSendEvent(NaClMultimediaEvent event); bool hasPendingEvents(); void registerSocketNotifier(QSocketNotifier *notifier); void unregisterSocketNotifier(QSocketNotifier *notifier); -/* - void registerTimer(int timerId, int interval, QObject *object); - bool unregisterTimer(int timerId); - bool unregisterTimers(QObject *object); - QList registeredTimers(QObject *object) const; -*/ void wakeUp(); void interrupt(); -- cgit v1.2.3