diff options
Diffstat (limited to 'src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp')
-rw-r--r-- | src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp | 91 |
1 files changed, 61 insertions, 30 deletions
diff --git a/src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp b/src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp index 11eb4a5082..08de94a082 100644 --- a/src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp +++ b/src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp @@ -1,6 +1,6 @@ /*************************************************************************** ** -** Copyright (C) 2012 Research In Motion +** Copyright (C) 2013 BlackBerry Limited. All rights reserved. ** Contact: http://www.qt-project.org/legal ** ** This file is part of the plugins of the Qt Toolkit. @@ -46,6 +46,9 @@ #include <bps/event.h> #include <bps/locale.h> #include <bps/virtualkeyboard.h> +#if defined(Q_OS_BLACKBERRY) +#include <bbndk.h> +#endif #if defined(QQNXVIRTUALKEYBOARD_DEBUG) #define qVirtualKeyboardDebug qDebug @@ -89,7 +92,7 @@ bool QQnxVirtualKeyboardBps::showKeyboard() // They keyboard's mode is global between applications, we have to set it each time if ( !isVisible() ) - applyKeyboardMode(keyboardMode()); + applyKeyboardOptions(); virtualkeyboard_show(); return true; @@ -102,48 +105,76 @@ bool QQnxVirtualKeyboardBps::hideKeyboard() return true; } -void QQnxVirtualKeyboardBps::applyKeyboardMode(KeyboardMode mode) +void QQnxVirtualKeyboardBps::applyKeyboardOptions() { - virtualkeyboard_layout_t layout = VIRTUALKEYBOARD_LAYOUT_DEFAULT; + virtualkeyboard_layout_t layout = keyboardLayout(); + virtualkeyboard_enter_t enter = enterKey(); - switch (mode) { - case Url: - layout = VIRTUALKEYBOARD_LAYOUT_URL; - break; + qVirtualKeyboardDebug() << Q_FUNC_INFO << "mode=" << keyboardMode() << "enterKey=" << enterKeyType(); - case Email: - layout = VIRTUALKEYBOARD_LAYOUT_EMAIL; - break; + virtualkeyboard_change_options(layout, enter); +} +virtualkeyboard_layout_t QQnxVirtualKeyboardBps::keyboardLayout() const +{ + switch (keyboardMode()) { + case Url: + return VIRTUALKEYBOARD_LAYOUT_URL; + case Email: + return VIRTUALKEYBOARD_LAYOUT_EMAIL; case Web: - layout = VIRTUALKEYBOARD_LAYOUT_WEB; - break; - + return VIRTUALKEYBOARD_LAYOUT_WEB; case NumPunc: - layout = VIRTUALKEYBOARD_LAYOUT_NUM_PUNC; - break; - + return VIRTUALKEYBOARD_LAYOUT_NUM_PUNC; + case Number: + return VIRTUALKEYBOARD_LAYOUT_NUMBER; case Symbol: - layout = VIRTUALKEYBOARD_LAYOUT_SYMBOL; - break; - + return VIRTUALKEYBOARD_LAYOUT_SYMBOL; case Phone: - layout = VIRTUALKEYBOARD_LAYOUT_PHONE; - break; - + return VIRTUALKEYBOARD_LAYOUT_PHONE; case Pin: - layout = VIRTUALKEYBOARD_LAYOUT_PIN; - break; - + return VIRTUALKEYBOARD_LAYOUT_PIN; + case Password: + return VIRTUALKEYBOARD_LAYOUT_PASSWORD; +#if defined(Q_OS_BLACKBERRY) +#if BBNDK_VERSION_AT_LEAST(10, 2, 1) + case Alphanumeric: + return VIRTUALKEYBOARD_LAYOUT_ALPHANUMERIC; +#endif +#endif case Default: // fall through default: - layout = VIRTUALKEYBOARD_LAYOUT_DEFAULT; - break; + return VIRTUALKEYBOARD_LAYOUT_DEFAULT; } - qVirtualKeyboardDebug() << Q_FUNC_INFO << "mode=" << mode; + return VIRTUALKEYBOARD_LAYOUT_DEFAULT; +} + +virtualkeyboard_enter_t QQnxVirtualKeyboardBps::enterKey() const +{ + switch (enterKeyType()) { + case Connect: + return VIRTUALKEYBOARD_ENTER_CONNECT; + case Done: + return VIRTUALKEYBOARD_ENTER_DONE; + case Go: + return VIRTUALKEYBOARD_ENTER_GO; + case Join: + return VIRTUALKEYBOARD_ENTER_JOIN; + case Next: + return VIRTUALKEYBOARD_ENTER_NEXT; + case Search: + return VIRTUALKEYBOARD_ENTER_SEARCH; + case Send: + return VIRTUALKEYBOARD_ENTER_SEND; + case Submit: + return VIRTUALKEYBOARD_ENTER_SUBMIT; + case Default: // fall through + default: + return VIRTUALKEYBOARD_ENTER_DEFAULT; + } - virtualkeyboard_change_options(layout, VIRTUALKEYBOARD_ENTER_DEFAULT); + return VIRTUALKEYBOARD_ENTER_DEFAULT; } bool QQnxVirtualKeyboardBps::handleLocaleEvent(bps_event_t *event) |