src/hbplugins/inputmethods/touchinput/hbinput12keytouchkeyboard.cpp
changeset 23 e6ad4ef83b23
parent 21 4633027730f5
child 28 b7da29130b0e
--- a/src/hbplugins/inputmethods/touchinput/hbinput12keytouchkeyboard.cpp	Wed Aug 18 10:05:37 2010 +0300
+++ b/src/hbplugins/inputmethods/touchinput/hbinput12keytouchkeyboard.cpp	Thu Sep 02 20:44:51 2010 +0300
@@ -29,6 +29,7 @@
 #include <hbinputkeymap.h>
 #include <hbinpututils.h>
 #include <hbframedrawer.h>
+#include <hbinputsettingproxy.h>
 
 #include "hbinput12keytouchkeyboard.h"
 #include "hbinput12keytouchkeyboard_p.h"
@@ -199,8 +200,14 @@
                     const HbKeyboardMap *keyboardMap; 
                     if (mOwner->focusObject() && mOwner->focusObject()->editorInterface().editorClass() == HbInputEditorClassEmail) {
                         keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12KeyEmail);
+                        if (!keyboardMap) {
+                            keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12Key);
+                        }
                     } else if (mOwner->focusObject() && mOwner->focusObject()->editorInterface().editorClass() == HbInputEditorClassUrl) {
                         keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12KeyUrl);
+                        if (!keyboardMap) {
+                            keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12Key);
+                        }
                     } else {
                         keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12Key);
                     }
@@ -229,8 +236,14 @@
                     
                     if (mOwner->focusObject() && mOwner->focusObject()->editorInterface().editorClass() == HbInputEditorClassEmail) {
                         keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12KeyEmail);
+                        if (!keyboardMap) {
+                            keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12Key);
+                        }
                     } else if (mOwner->focusObject() && mOwner->focusObject()->editorInterface().editorClass() == HbInputEditorClassUrl) {
                         keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12KeyUrl);
+                        if (!keyboardMap) {
+                            keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12Key);
+                        }
                     } else {
                         keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12Key);
                     }
@@ -283,10 +296,24 @@
                     item->setText(QString("*"), HbInputButton::ButtonTextIndexPrimary);
                     item->setText(QString(""), HbInputButton::ButtonTextIndexSecondaryFirstRow);
                 } else if (mMode == EModeAbc) {
-                    item->setText(QString("*"), HbInputButton::ButtonTextIndexPrimary);
-                    item->setText(QString("+"), HbInputButton::ButtonTextIndexSecondaryFirstRow);
+                    if (HbInputSettingProxy::instance()->globalInputLanguage().language() == QLocale::Chinese) {
+                        QString str = QString(QChar(0x7B26));
+                        str.append(QString(QChar(0x53F7)));
+                        item->setText(QString(), HbInputButton::ButtonTextIndexSecondaryFirstRow);
+                        item->setText(str, HbInputButton::ButtonTextIndexPrimary);
+                    } else {
+                        item->setText(QString("*"), HbInputButton::ButtonTextIndexPrimary);
+                        item->setText(QString("+"), HbInputButton::ButtonTextIndexSecondaryFirstRow);
+                    }
                 }
-            }
+            } else if (keyCode(i) == HbInputButton::ButtonKeyCodeSymbol) {
+                if (HbInputSettingProxy::instance()->globalInputLanguage().language() == QLocale::Chinese) {
+                    item->setText(QString(QChar(0x4E2D)), HbInputButton::ButtonTextIndexPrimary);
+                    item->setIcon(HbIcon(), HbInputButton::ButtonIconIndexPrimary);
+                } else {
+                    item->setIcon(HbIcon(HbInputButtonIconSymbol2), HbInputButton::ButtonIconIndexPrimary);
+                }
+            } 
         }
         buttonGroup->setButtons(buttons);
     }
@@ -355,11 +382,12 @@
 {
     Q_D(const Hb12KeyTouchKeyboard);
 
-    if (d->mOwner->focusObject())
-    {
-        if (d->mOwner->focusObject()->editorInterface().editorClass() == HbInputEditorClassEmail) {
+    if (d->mOwner->focusObject()) {
+        if (d->mOwner->focusObject()->editorInterface().editorClass() == HbInputEditorClassEmail &&
+            d->mKeymap && d->mKeymap->keyboard(HbKeyboardVirtual12KeyEmail)) {
             return HbKeyboardVirtual12KeyEmail;
-        } else if (d->mOwner->focusObject()->editorInterface().editorClass() == HbInputEditorClassUrl) {
+        } else if (d->mOwner->focusObject()->editorInterface().editorClass() == HbInputEditorClassUrl &&
+                   d->mKeymap && d->mKeymap->keyboard(HbKeyboardVirtual12KeyUrl)) {
             return HbKeyboardVirtual12KeyUrl;
         }
     }