X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/65e19746f08f1287005861692322cdf868b06dc6..7f399d23032b1e6d39123db87bdfa98a778c9ffd:/lib/python/Tools/NumericalTextInput.py diff --git a/lib/python/Tools/NumericalTextInput.py b/lib/python/Tools/NumericalTextInput.py index 87ac5486..696b8e20 100644 --- a/lib/python/Tools/NumericalTextInput.py +++ b/lib/python/Tools/NumericalTextInput.py @@ -1,9 +1,9 @@ -# -*- coding: latin-1 -*- -from enigma import * +# -*- coding: iso-8859-1 -*- +from enigma import eTimer from Components.Language import language class NumericalTextInput: - def __init__(self, nextFunc=None): + def __init__(self, nextFunc=None, handleTimeout = True): self.mapping = [] self.lang = language.getLanguage() self.useableChars=None @@ -31,6 +31,17 @@ class NumericalTextInput: self.mapping.append (u"pqrs7PQRS") # 7 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 else: self.mapping.append (u".,?'\"0-()@/:_") # 0 self.mapping.append (u" 1") # 1 @@ -43,8 +54,11 @@ class NumericalTextInput: self.mapping.append (u"tuv8TUV") # 8 self.mapping.append (u"wxyz9WXYZ") # 9 - self.Timer = eTimer() - self.Timer.timeout.get().append(self.nextChar) + if handleTimeout: + self.timer = eTimer() + self.timer.callback.append(self.timeout) + else: + self.timer = None self.lastKey = -1 self.pos = -1 @@ -53,13 +67,16 @@ class NumericalTextInput: def getKey(self, num): cnt=0 - self.Timer.start(1000, True) - if (self.lastKey != num): + if self.lastKey != num: + if self.lastKey != -1: + self.nextChar() self.lastKey = num self.pos = -1 - while(True): + if self.timer is not None: + self.timer.start(1000, True) + while True: self.pos += 1 - if (len(self.mapping[num]) <= self.pos): + if len(self.mapping[num]) <= self.pos: self.pos = 0 if self.useableChars: pos = self.useableChars.find(self.mapping[num][self.pos]) @@ -73,10 +90,15 @@ class NumericalTextInput: return self.mapping[num][self.pos] def nextKey(self): - self.Timer.stop() + if self.timer is not None: + self.timer.stop() self.lastKey = -1 def nextChar(self): self.nextKey() if self.nextFunction: self.nextFunction() + + def timeout(self): + if self.lastKey != -1: + self.nextChar()