fix rc-keyboard.
[vuplus_dvbapp] / lib / python / Screens / VirtualKeyBoard.py
index ebc347c..a2710df 100755 (executable)
@@ -112,16 +112,16 @@ class VirtualKeyBoard(Screen):
                                "deleteBackward": self.backClicked,
                                "back": self.exit                               
                        }, -2)
-               self.setLanq()
+               self.setLang()
                self.onExecBegin.append(self.setKeyboardModeAscii)
                self.onLayoutFinish.append(self.buildVirtualKeyBoard)
        
        def switchLang(self):
                self.lang = self.nextLang
-               self.setLanq()
+               self.setLang()
                self.buildVirtualKeyBoard()
 
-       def setLanq(self):
+       def setLang(self):
                if self.lang == 'de_DE':
                        self.keys_list = [
                                [u"EXIT", u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"0", u"BACKSPACE"],
@@ -232,19 +232,21 @@ class VirtualKeyBoard(Screen):
                if self.shiftMode:
                        self.k_list = self.shiftkeys_list
                        for keys in self.k_list:
-                               if selectedKey < 12 and selectedKey > -1:
+                               keyslen = len(keys)
+                               if selectedKey < keyslen and selectedKey > -1:
                                        list.append(VirtualKeyBoardEntryComponent(keys, selectedKey,True))
                                else:
                                        list.append(VirtualKeyBoardEntryComponent(keys, -1,True))
-                               selectedKey -= 12
+                               selectedKey -= keyslen
                else:
                        self.k_list = self.keys_list
                        for keys in self.k_list:
-                               if selectedKey < 12 and selectedKey > -1:
+                               keyslen = len(keys)
+                               if selectedKey < keyslen and selectedKey > -1:
                                        list.append(VirtualKeyBoardEntryComponent(keys, selectedKey))
                                else:
                                        list.append(VirtualKeyBoardEntryComponent(keys, -1))
-                               selectedKey -= 12
+                               selectedKey -= keyslen
                
                self["list"].setList(list)
        
@@ -263,12 +265,13 @@ class VirtualKeyBoard(Screen):
                text = None
 
                for x in list:
-                       if selectedKey < 12:
+                       xlen = len(x)
+                       if selectedKey < xlen:
                                if selectedKey < len(x):
                                        text = x[selectedKey]
                                break
                        else:
-                               selectedKey -= 12
+                               selectedKey -= xlen
 
                if text is None:
                        return
@@ -375,7 +378,11 @@ class VirtualKeyBoard(Screen):
                return False
 
        def keyGotAscii(self):
-               char = str(unichr(getPrevAsciiCode()).encode('utf-8'))
+               #char = str(unichr(getPrevAsciiCode()).encode('utf-8'))
+               from Components.config import getCharValue
+               char = getCharValue(getPrevAsciiCode())
+               if len(str(char)) == 1:
+                       char = char.encode("utf-8")
                if self.inShiftKeyList(char):
                        self.shiftMode = True
                        list = self.shiftkeys_list
@@ -383,6 +390,9 @@ class VirtualKeyBoard(Screen):
                        self.shiftMode = False
                        list = self.keys_list   
 
+               if char == " ":
+                       char = "SPACE"
+
                selkey = 0
                for keylist in list:
                        for key in keylist: