X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FTools%2FNumericalTextInput.py;h=252e174e91c5757cdc851e18be5d9800c86dddb2;hp=7c61d263439920334e2f1698b64fcef5135633aa;hb=fc1dd11742a464ade58d161b25e9cf59f6998634;hpb=6eeefece35e4269e02fdb7abab4f79d8e7b8f98b diff --git a/lib/python/Tools/NumericalTextInput.py b/lib/python/Tools/NumericalTextInput.py index 7c61d26..252e174 100644 --- a/lib/python/Tools/NumericalTextInput.py +++ b/lib/python/Tools/NumericalTextInput.py @@ -1,39 +1,82 @@ -# -*- coding: latin-1 -*- +# -*- coding: UTF-8 -*- from enigma import eTimer from Components.Language import language class NumericalTextInput: - def __init__(self, nextFunc=None, handleTimeout = True): + def __init__(self, nextFunc=None, handleTimeout = True, search = False): self.mapping = [] self.lang = language.getLanguage() self.useableChars=None self.nextFunction=nextFunc - - if self.lang == 'de_DE': - self.mapping.append (u".,?'\"0-()@/:_") # 0 + + if handleTimeout: + self.timer = eTimer() + self.timer.callback.append(self.timeout) + else: + self.timer = None + self.lastKey = -1 + self.pos = -1 + + if search: + self.mapping.append (u"%_0") # 0 self.mapping.append (u" 1") # 1 - self.mapping.append (u"aäbc2AÄBC") # 2 + self.mapping.append (u"abc2") # 2 + self.mapping.append (u"def3") # 3 + self.mapping.append (u"ghi4") # 4 + self.mapping.append (u"jkl5") # 5 + self.mapping.append (u"mno6") # 6 + self.mapping.append (u"pqrs7") # 7 + self.mapping.append (u"tuv8") # 8 + self.mapping.append (u"wxyz9") # 9 + return + + if self.lang == 'de_DE': + self.mapping.append (u"0,?!&@=*'+\"()$~") # 0 + self.mapping.append (u" 1.:/-_") # 1 + self.mapping.append (u"abcä2ABCÄ") # 2 self.mapping.append (u"def3DEF") # 3 self.mapping.append (u"ghi4GHI") # 4 self.mapping.append (u"jkl5JKL") # 5 - self.mapping.append (u"mnoö6MNOÖ") # 6 - self.mapping.append (u"pqrsß7PQRSß") # 7 - self.mapping.append (u"tuüv8TUÜV") # 8 + self.mapping.append (u"mnoö6MNOÖ") # 6 + self.mapping.append (u"pqrsß7PQRSß") # 7 + self.mapping.append (u"tuvü8TUVÜ") # 8 self.mapping.append (u"wxyz9WXYZ") # 9 elif self.lang == 'es_ES': - self.mapping.append (u".,?'\"0-()@/:_") # 0 - self.mapping.append (u" 1") # 1 - self.mapping.append (u"abcáà2ABCÁÀ") # 2 - self.mapping.append (u"deéèf3DEFÉÈ") # 3 - self.mapping.append (u"ghiíì4GHIÍÌ") # 4 + self.mapping.append (u"0,?!&@=*'+\"()$~") # 0 + self.mapping.append (u" 1.:/-_") # 1 + self.mapping.append (u"abcáà2ABCÁÀ") # 2 + self.mapping.append (u"deéèf3DEFÉÈ") # 3 + self.mapping.append (u"ghiíì4GHIÍÌ") # 4 self.mapping.append (u"jkl5JKL") # 5 - self.mapping.append (u"mnñoóò6MNÑOÓÒ") # 6 + self.mapping.append (u"mnñoóò6MNÑOÓÒ") # 6 self.mapping.append (u"pqrs7PQRS") # 7 - self.mapping.append (u"tuvúù8TUVÚÙ") # 8 + self.mapping.append (u"tuvúù8TUVÚÙ") # 8 self.mapping.append (u"wxyz9WXYZ") # 9 + if self.lang in ('sv_SE', 'fi_FI'): + self.mapping.append (u"0,?!&@=*'+\"()$~") # 0 + self.mapping.append (u" 1.:/-_") # 1 + self.mapping.append (u"abcåä2ABCÅÄ") # 2 + self.mapping.append (u"defé3DEFÉ") # 3 + self.mapping.append (u"ghi4GHI") # 4 + self.mapping.append (u"jkl5JKL") # 5 + self.mapping.append (u"mnoö6MNOÖ") # 6 + self.mapping.append (u"pqrs7PQRS") # 7 + self.mapping.append (u"tuv8TUV") # 8 + self.mapping.append (u"wxyz9WXYZ") # 9 + elif self.lang in ('cs_CZ', 'sk_SK'): + self.mapping.append (u"0,?'+\"()@$!=&*") # 0 + self.mapping.append (u" 1.:/-_") # 1 + self.mapping.append (u"abc2áäčABCÁÄČ") # 2 + self.mapping.append (u"def3ďéěDEFĎÉĚ") # 3 + self.mapping.append (u"ghi4íGHIÍ") # 4 + self.mapping.append (u"jkl5ľĺJKLĽĹ") # 5 + self.mapping.append (u"mno6ňóöôMNOŇÓÖÔ") # 6 + self.mapping.append (u"pqrs7řŕšPQRSŘŔŠ") # 7 + self.mapping.append (u"tuv8ťúůüTUVŤÚŮÜ") # 8 + self.mapping.append (u"wxyz9ýžWXYZÝŽ") # 9 else: - self.mapping.append (u".,?'\"0-()@/:_") # 0 - self.mapping.append (u" 1") # 1 + self.mapping.append (u"0,?!&@=*'+\"()$~") # 0 + self.mapping.append (u" 1.:/-_") # 1 self.mapping.append (u"abc2ABC") # 2 self.mapping.append (u"def3DEF") # 3 self.mapping.append (u"ghi4GHI") # 4 @@ -43,24 +86,19 @@ class NumericalTextInput: self.mapping.append (u"tuv8TUV") # 8 self.mapping.append (u"wxyz9WXYZ") # 9 - if handleTimeout: - self.timer = eTimer() - self.timer.timeout.get().append(self.timeout) - else: - self.timer = None - self.lastKey = -1 - self.pos = -1 - def setUseableChars(self, useable): - self.useableChars = useable + self.useableChars = unicode(useable) + def getKey(self, num): cnt=0 - if self.timer is not None: - self.timer.start(1000, True) if self.lastKey != num: + if self.lastKey != -1: + self.nextChar() self.lastKey = num self.pos = -1 + if self.timer is not None: + self.timer.start(1000, True) while True: self.pos += 1 if len(self.mapping[num]) <= self.pos: @@ -87,4 +125,5 @@ class NumericalTextInput: self.nextFunction() def timeout(self): - self.nextChar() + if self.lastKey != -1: + self.nextChar()