summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/blackberry/qbbabstractvirtualkeyboard.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/blackberry/qbbabstractvirtualkeyboard.cpp')
-rw-r--r--src/plugins/platforms/blackberry/qbbabstractvirtualkeyboard.cpp21
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)