summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx/qqnxintegration.cpp
diff options
context:
space:
mode:
authorKevin Krammer <kevin.krammer.qnx@kdab.com>2012-03-27 18:39:49 +0200
committerQt by Nokia <qt-info@nokia.com>2012-05-02 17:52:50 +0200
commita818a1eb2f3d2c5ac61da7e1a8cf1b341e63aed1 (patch)
tree39d84b80a37273b5f4857569a7d3a9fccded42af /src/plugins/platforms/qnx/qqnxintegration.cpp
parent77a8bd1e01251211701fa094278b8ddc23b7e6ba (diff)
Add implementation of virtual keyboard based on BPS events
Change-Id: Ida4fa344c54db32b7b22b08a124b8c7b6df8adef Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Diffstat (limited to 'src/plugins/platforms/qnx/qqnxintegration.cpp')
-rw-r--r--src/plugins/platforms/qnx/qqnxintegration.cpp31
1 files changed, 20 insertions, 11 deletions
diff --git a/src/plugins/platforms/qnx/qqnxintegration.cpp b/src/plugins/platforms/qnx/qqnxintegration.cpp
index b3208624e2..2fa3b45047 100644
--- a/src/plugins/platforms/qnx/qqnxintegration.cpp
+++ b/src/plugins/platforms/qnx/qqnxintegration.cpp
@@ -54,13 +54,14 @@
#if defined(Q_OS_BLACKBERRY)
#include "qqnxbpseventfilter.h"
#include "qqnxnavigatorbps.h"
+#include "qqnxvirtualkeyboardbps.h"
#elif defined(QQNX_PPS)
#include "qqnxnavigatorpps.h"
+#include "qqnxvirtualkeyboardpps.h"
#endif
#if defined(QQNX_PPS)
# include "qqnxnavigatoreventnotifier.h"
-# include "qqnxvirtualkeyboard.h"
# include "qqnxclipboard.h"
# if defined(QQNX_IMF)
@@ -159,20 +160,14 @@ QQnxIntegration::QQnxIntegration()
m_screenEventThread->start();
#endif
-#if defined(QQNX_PPS)
+ // Not on BlackBerry, it has specialised event dispatcher which also handles virtual keyboard events
+#if !defined(Q_OS_BLACKBERRY) && defined(QQNX_PPS)
// Create/start the keyboard class.
- m_virtualKeyboard = new QQnxVirtualKeyboard();
+ m_virtualKeyboard = new QQnxVirtualKeyboardPps();
// delay invocation of start() to the time the event loop is up and running
// needed to have the QThread internals of the main thread properly initialized
QMetaObject::invokeMethod(m_virtualKeyboard, "start", Qt::QueuedConnection);
-
- // TODO check if we need to do this for all screens or only the primary one
- QObject::connect(m_virtualKeyboard, SIGNAL(heightChanged(int)),
- primaryDisplay(), SLOT(keyboardHeightChanged(int)));
-
- // Set up the input context
- m_inputContext = new QQnxInputContext(*m_virtualKeyboard);
#endif
#if defined(Q_OS_BLACKBERRY)
@@ -186,13 +181,27 @@ QQnxIntegration::QQnxIntegration()
m_services = new QQnxServices(m_navigator);
#if defined(Q_OS_BLACKBERRY)
- m_bpsEventFilter = new QQnxBpsEventFilter(m_navigatorEventHandler, m_screenEventHandler);
+ QQnxVirtualKeyboardBps* virtualKeyboardBps = new QQnxVirtualKeyboardBps;
+ m_bpsEventFilter = new QQnxBpsEventFilter(m_navigatorEventHandler, m_screenEventHandler, virtualKeyboardBps);
Q_FOREACH (QQnxScreen *screen, m_screens)
m_bpsEventFilter->registerForScreenEvents(screen);
m_bpsEventFilter->installOnEventDispatcher(m_eventDispatcher);
+
+ m_virtualKeyboard = virtualKeyboardBps;
#endif
+ if (m_virtualKeyboard) {
+ // TODO check if we need to do this for all screens or only the primary one
+ QObject::connect(m_virtualKeyboard, SIGNAL(heightChanged(int)),
+ primaryDisplay(), SLOT(keyboardHeightChanged(int)));
+
+#if defined(QQNX_PPS)
+ // Set up the input context
+ m_inputContext = new QQnxInputContext(*m_virtualKeyboard);
+#endif
+ }
+
}
QQnxIntegration::~QQnxIntegration()