summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/openkode/qopenkodeeventloopintegration.cpp
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@nokia.com>2010-07-15 16:57:07 +0200
committerJørgen Lind <jorgen.lind@nokia.com>2010-07-20 09:35:34 +0200
commitd9b023b5d38d858f29e7095aeb25a84f09a19c13 (patch)
tree565f6cb1ba2224142ee80bcf426a5df5e2fad34a /src/plugins/platforms/openkode/qopenkodeeventloopintegration.cpp
parente97e3616a33ed93283157514c6b208e071aca8be (diff)
Eventloop integration in Lighthouse
This is exprimental and does not work with the glib eventloop.
Diffstat (limited to 'src/plugins/platforms/openkode/qopenkodeeventloopintegration.cpp')
-rw-r--r--src/plugins/platforms/openkode/qopenkodeeventloopintegration.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/plugins/platforms/openkode/qopenkodeeventloopintegration.cpp b/src/plugins/platforms/openkode/qopenkodeeventloopintegration.cpp
new file mode 100644
index 0000000000..467b5b5004
--- /dev/null
+++ b/src/plugins/platforms/openkode/qopenkodeeventloopintegration.cpp
@@ -0,0 +1,29 @@
+#include "qopenkodeeventloopintegration.h"
+
+#include <KD/kd.h>
+
+#include <QtCore/QDebug>
+
+QOpenKODEEventLoopIntegration::QOpenKODEEventLoopIntegration()
+{
+ m_kdThread = kdThreadSelf();
+}
+
+void QOpenKODEEventLoopIntegration::processEvents(qint64 msec)
+{
+ if (msec == 0)
+ msec = -1;
+ const KDEvent *event = kdWaitEvent(msec*1000);
+ if (event) {
+ kdDefaultEvent(event);
+ while ((event = kdWaitEvent(0)) != 0) {
+ kdDefaultEvent(event);
+ }
+ }
+}
+
+void QOpenKODEEventLoopIntegration::wakeup()
+{
+ KDEvent *event = kdCreateEvent();
+ kdPostThreadEvent(event,m_kdThread);
+}