diff options
Diffstat (limited to 'src/plugins/platforms/blackberry/qbbabstractvirtualkeyboard.cpp')
-rw-r--r-- | src/plugins/platforms/blackberry/qbbabstractvirtualkeyboard.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/plugins/platforms/blackberry/qbbabstractvirtualkeyboard.cpp b/src/plugins/platforms/blackberry/qbbabstractvirtualkeyboard.cpp index 331ec7c..5da7c1a 100644 --- a/src/plugins/platforms/blackberry/qbbabstractvirtualkeyboard.cpp +++ b/src/plugins/platforms/blackberry/qbbabstractvirtualkeyboard.cpp @@ -41,6 +41,8 @@ #include "qbbabstractvirtualkeyboard.h" +#include <QWidget> + QT_BEGIN_NAMESPACE QBBAbstractVirtualKeyboard::QBBAbstractVirtualKeyboard(QObject *parent) @@ -63,6 +65,25 @@ void QBBAbstractVirtualKeyboard::setKeyboardMode(KeyboardMode mode) applyKeyboardMode(mode); } +void QBBAbstractVirtualKeyboard::setInputHintsFromWidget(QWidget *focusWidget) +{ + if (focusWidget) { + const Qt::InputMethodHints hints = focusWidget->inputMethodHints(); + if (hints & Qt::ImhEmailCharactersOnly) + setKeyboardMode(QBBAbstractVirtualKeyboard::Email); + else if (hints & Qt::ImhDialableCharactersOnly) + setKeyboardMode(QBBAbstractVirtualKeyboard::Phone); + else if (hints & Qt::ImhUrlCharactersOnly) + setKeyboardMode(QBBAbstractVirtualKeyboard::Web); + else if (hints & Qt::ImhFormattedNumbersOnly || hints & Qt::ImhDigitsOnly) + setKeyboardMode(QBBAbstractVirtualKeyboard::NumPunc); + else + setKeyboardMode(QBBAbstractVirtualKeyboard::Default); + } else { + setKeyboardMode(QBBAbstractVirtualKeyboard::Default); + } +} + void QBBAbstractVirtualKeyboard::setVisible(bool visible) { if (visible == mVisible) |