--- a/src/hbplugins/inputmethods/touchinput/hbinput12keytouchkeyboard.cpp Tue Jul 06 14:36:53 2010 +0300
+++ b/src/hbplugins/inputmethods/touchinput/hbinput12keytouchkeyboard.cpp Wed Aug 18 10:05:37 2010 +0300
@@ -196,13 +196,21 @@
if (mMode == EModeNumeric) {
QChar numChr;
const HbKeyboardMap *labelMap = mKeymap->keyboard(HbKeyboardVirtual12KeyLabels);
- const HbKeyboardMap *keyMap = mKeymap->keyboard(HbKeyboardVirtual12Key);
+ const HbKeyboardMap *keyboardMap;
+ if (mOwner->focusObject() && mOwner->focusObject()->editorInterface().editorClass() == HbInputEditorClassEmail) {
+ keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12KeyEmail);
+ } else if (mOwner->focusObject() && mOwner->focusObject()->editorInterface().editorClass() == HbInputEditorClassUrl) {
+ keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12KeyUrl);
+ } else {
+ keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12Key);
+ }
+
if (labelMap && key < labelMap->keys.count()) {
numChr = labelMap->keys.at(key)->keycode;
}
// Fallback to normal keymappings if key labels are not present
- if (keyMap && key < keyMap->keys.count() && numChr.isNull()) {
+ if (keyboardMap && key < keyboardMap->keys.count() && numChr.isNull()) {
numChr = numberCharacterBoundToKey(key);
}
@@ -217,7 +225,16 @@
QString secondRow;
QChar numChr;
const HbKeyboardMap *labelMap = mKeymap->keyboard(HbKeyboardVirtual12KeyLabels);
- const HbKeyboardMap *keyMap = mKeymap->keyboard(HbKeyboardVirtual12Key);
+ const HbKeyboardMap *keyboardMap;
+
+ if (mOwner->focusObject() && mOwner->focusObject()->editorInterface().editorClass() == HbInputEditorClassEmail) {
+ keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12KeyEmail);
+ } else if (mOwner->focusObject() && mOwner->focusObject()->editorInterface().editorClass() == HbInputEditorClassUrl) {
+ keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12KeyUrl);
+ } else {
+ keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12Key);
+ }
+
if (labelMap && key < labelMap->keys.count()) {
firstRow = keyLabel(labelMap->keys.at(key)->chars, HbFirstRowIndex | mModifiers);
secondRow = keyLabel(labelMap->keys.at(key)->chars, HbSecondRowIndex | mModifiers);
@@ -225,9 +242,9 @@
}
// Fallback to normal keymappings if key labels are not present
- if (keyMap && key < keyMap->keys.count()) {
+ if (keyboardMap && key < keyboardMap->keys.count()) {
if (firstRow.isEmpty()) {
- firstRow = keyMap->keys.at(key)->characters(mModifiers);
+ firstRow = keyboardMap->keys.at(key)->characters(mModifiers);
if (mOwner->focusObject()) {
QString allowedData;
mOwner->focusObject()->filterStringWithEditorFilter(firstRow, allowedData);
@@ -336,6 +353,16 @@
*/
HbKeyboardType Hb12KeyTouchKeyboard::keyboardType() const
{
+ Q_D(const Hb12KeyTouchKeyboard);
+
+ if (d->mOwner->focusObject())
+ {
+ if (d->mOwner->focusObject()->editorInterface().editorClass() == HbInputEditorClassEmail) {
+ return HbKeyboardVirtual12KeyEmail;
+ } else if (d->mOwner->focusObject()->editorInterface().editorClass() == HbInputEditorClassUrl) {
+ return HbKeyboardVirtual12KeyUrl;
+ }
+ }
return HbKeyboardVirtual12Key;
}