diff options
author | Thomas McGuire <thomas.mcguire.qnx@kdab.com> | 2012-09-27 15:30:06 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-09-28 12:46:43 +0200 |
commit | d162f276714f04b07827dfd525deea45dc55a5f1 (patch) | |
tree | 8e39af70bdf62db277343c23bf629ac7cde5e81e /src/plugins/platforms/qnx/qqnxabstractvirtualkeyboard.cpp | |
parent | 72d7a833bd6cd2074f45c1ea32986d498b6dd476 (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.cpp | 22 |
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) |