summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx/qqnxabstractvirtualkeyboard.cpp
diff options
context:
space:
mode:
authorThomas McGuire <thomas.mcguire.qnx@kdab.com>2012-09-27 15:30:06 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-09-28 12:46:43 +0200
commitd162f276714f04b07827dfd525deea45dc55a5f1 (patch)
tree8e39af70bdf62db277343c23bf629ac7cde5e81e /src/plugins/platforms/qnx/qqnxabstractvirtualkeyboard.cpp
parent72d7a833bd6cd2074f45c1ea32986d498b6dd476 (diff)
Blackberry: Support input method hints
Change-Id: I2d30d6079d3982e5ca2b8d9346d0d511279792ad Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/plugins/platforms/qnx/qqnxabstractvirtualkeyboard.cpp')
-rw-r--r--src/plugins/platforms/qnx/qqnxabstractvirtualkeyboard.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/plugins/platforms/qnx/qqnxabstractvirtualkeyboard.cpp b/src/plugins/platforms/qnx/qqnxabstractvirtualkeyboard.cpp
index 43c4d9070a..99b83013fb 100644
--- a/src/plugins/platforms/qnx/qqnxabstractvirtualkeyboard.cpp
+++ b/src/plugins/platforms/qnx/qqnxabstractvirtualkeyboard.cpp
@@ -62,6 +62,28 @@ void QQnxAbstractVirtualKeyboard::setKeyboardMode(KeyboardMode mode)
applyKeyboardMode(mode);
}
+void QQnxAbstractVirtualKeyboard::setInputHintsFromObject(QObject *focusObject)
+{
+ if (focusObject && focusObject->isWidgetType()) {
+ const Qt::InputMethodHints hints = static_cast<Qt::InputMethodHints>(
+ focusObject->property("inputMethodHints").toInt());
+ if (hints & Qt::ImhEmailCharactersOnly) {
+ setKeyboardMode(QQnxAbstractVirtualKeyboard::Email);
+ } else if (hints & Qt::ImhDialableCharactersOnly) {
+ setKeyboardMode(QQnxAbstractVirtualKeyboard::Phone);
+ } else if (hints & Qt::ImhUrlCharactersOnly) {
+ setKeyboardMode(QQnxAbstractVirtualKeyboard::Web);
+ } else if (hints & Qt::ImhFormattedNumbersOnly || hints & Qt::ImhDigitsOnly ||
+ hints & Qt::ImhDate || hints & Qt::ImhTime) {
+ setKeyboardMode(QQnxAbstractVirtualKeyboard::NumPunc);
+ } else {
+ setKeyboardMode(QQnxAbstractVirtualKeyboard::Default);
+ }
+ } else {
+ setKeyboardMode(QQnxAbstractVirtualKeyboard::Default);
+ }
+}
+
void QQnxAbstractVirtualKeyboard::setHeight(int height)
{
if (height == m_height)