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>bb10
parent
72d7a833bd
commit
d162f27671
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ public:
|
|||
QLocale locale() const { return m_locale; }
|
||||
|
||||
void setKeyboardMode(KeyboardMode mode);
|
||||
void setInputHintsFromObject(QObject *focusObject);
|
||||
KeyboardMode keyboardMode() const { return m_keyboardMode; }
|
||||
|
||||
Q_SIGNALS:
|
||||
|
|
|
|||
|
|
@ -1559,10 +1559,7 @@ void QQnxInputContext::setFocusObject(QObject *object)
|
|||
if (m_inputPanelVisible)
|
||||
hideInputPanel();
|
||||
} else {
|
||||
if (object->inherits("QAbstractSpinBox"))
|
||||
m_virtualKeyboard.setKeyboardMode(QQnxAbstractVirtualKeyboard::Phone);
|
||||
else
|
||||
m_virtualKeyboard.setKeyboardMode(QQnxAbstractVirtualKeyboard::Default);
|
||||
m_virtualKeyboard.setInputHintsFromObject(object);
|
||||
|
||||
if (!m_inputPanelVisible)
|
||||
showInputPanel();
|
||||
|
|
|
|||
|
|
@ -163,10 +163,7 @@ void QQnxInputContext::setFocusObject(QObject *object)
|
|||
if (m_inputPanelVisible)
|
||||
hideInputPanel();
|
||||
} else {
|
||||
if (object->inherits("QAbstractSpinBox"))
|
||||
m_virtualKeyboard.setKeyboardMode(QQnxAbstractVirtualKeyboard::Phone);
|
||||
else
|
||||
m_virtualKeyboard.setKeyboardMode(QQnxAbstractVirtualKeyboard::Default);
|
||||
m_virtualKeyboard.setInputHintsFromObject(object);
|
||||
|
||||
if (!m_inputPanelVisible)
|
||||
showInputPanel();
|
||||
|
|
|
|||
Loading…
Reference in New Issue