fix commit fb764c8e53e17bc3e1e806e946956f3e70792020 (fixes PiP)
[vuplus_dvbapp] / lib / python / Screens / InputBox.py
index 1fa9a9e..7dd7b12 100644 (file)
@@ -8,12 +8,14 @@ from Tools.BoundFunction import boundFunction
 from time import time
 
 class InputBox(Screen):
-       def __init__(self, session, title = "", windowTitle = _("Input"), **kwargs):
+       def __init__(self, session, title = "", windowTitle = _("Input"), useableChars = None, **kwargs):
                Screen.__init__(self, session)
 
                self["text"] = Label(title)
                self["input"] = Input(**kwargs)
                self.onShown.append(boundFunction(self.setTitle, windowTitle))
+               if useableChars is not None:
+                       self["input"].setUseableChars(useableChars)
 
                self["actions"] = NumberActionMap(["WizardActions", "InputBoxActions", "InputAsciiActions", "KeyboardInputActions"], 
                {
@@ -39,9 +41,11 @@ class InputBox(Screen):
                        "9": self.keyNumberGlobal,
                        "0": self.keyNumberGlobal
                }, -1)
+
                if self["input"].type == Input.TEXT:
-                       rcinput = eRCInput.getInstance()
-                       rcinput.setKeyboardMode(rcinput.kmAscii)
+                       self.onExecBegin.append(self.setKeyboardModeAscii)
+               else:
+                       self.onExecBegin.append(self.setKeyboardModeNone)
 
        def gotAsciiCode(self):
                self["input"].handleAscii(getPrevAsciiCode())
@@ -59,13 +63,9 @@ class InputBox(Screen):
                self["input"].delete()
 
        def go(self):
-               rcinput = eRCInput.getInstance()
-               rcinput.setKeyboardMode(rcinput.kmNone)
                self.close(self["input"].getText())
 
        def cancel(self):
-               rcinput = eRCInput.getInstance()
-               rcinput.setKeyboardMode(rcinput.kmNone)
                self.close(None)
 
        def keyHome(self):
@@ -99,7 +99,7 @@ class PinInput(InputBox):
                                remaining = (self.triesEntry.time.value + (self.waitTime * 60)) - time()
                                remainingMinutes = int(remaining / 60)
                                remainingSeconds = int(remaining % 60)
-                               self.onFirstExecBegin.append(boundFunction(self.session.openWithCallback, self.closePinCancel, MessageBox, _("You have to wait %s!") % (str(remainingMinutes) + " " + _("minutes") + ", " + str(remainingSeconds) + " " + _("seconds"), MessageBox.TYPE_ERROR))
+                               self.onFirstExecBegin.append(boundFunction(self.session.openWithCallback, self.closePinCancel, MessageBox, _("You have to wait %s!") % (str(remainingMinutes) + " " + _("minutes") + ", " + str(remainingSeconds) + " " + _("seconds")), MessageBox.TYPE_ERROR))
                        else:
                                self.setTries(3)
 
@@ -140,19 +140,13 @@ class PinInput(InputBox):
                                pass
        
        def closePinWrong(self, *args):
-               rcinput = eRCInput.getInstance()
-               rcinput.setKeyboardMode(rcinput.kmNone)
                print "args:", args
                self.close(False)
                
        def closePinCorrect(self, *args):
-               rcinput = eRCInput.getInstance()
-               rcinput.setKeyboardMode(rcinput.kmNone)
                self.close(True)
                
        def closePinCancel(self, *args):
-               rcinput = eRCInput.getInstance()
-               rcinput.setKeyboardMode(rcinput.kmNone)
                self.close(None)
                        
        def cancel(self):