add language selection
[enigma2.git] / lib / python / Screens / Wizard.py
index fbf26324c8e91793e0b61f49a49ca0a9c097a0ba..7687f44da34fced447f0fb09c055cfd4f36a5d82 100644 (file)
@@ -24,8 +24,8 @@ class WelcomeWizard(Screen, HelpableScreen):
                        <widget name="step" position="50,50" size="440,25" font="Arial;23" />
                        <widget name="stepslider" position="50,500" zPosition="1" size="440,20" backgroundColor="dark" />
                        <widget name="rc" pixmap="/usr/share/enigma2/rc.png" position="500,600" zPosition="10" size="154,475" transparent="1" alphatest="on"/>
                        <widget name="step" position="50,50" size="440,25" font="Arial;23" />
                        <widget name="stepslider" position="50,500" zPosition="1" size="440,20" backgroundColor="dark" />
                        <widget name="rc" pixmap="/usr/share/enigma2/rc.png" position="500,600" zPosition="10" size="154,475" transparent="1" alphatest="on"/>
-                       <widget name="arrowdown" pixmap="/usr/share/enigma2/arrowdown.png" position="0,0" zPosition="10" size="37,70" transparent="1" alphatest="on"/>
-                       <widget name="arrowup" pixmap="/usr/share/enigma2/arrowup.png" position="-100,-100" zPosition="10" size="37,70" transparent="1" alphatest="on"/>
+                       <widget name="arrowdown" pixmap="/usr/share/enigma2/arrowdown.png" position="0,0" zPosition="11" size="37,70" transparent="1" alphatest="on"/>
+                       <widget name="arrowup" pixmap="/usr/share/enigma2/arrowup.png" position="-100,-100" zPosition="11" size="37,70" transparent="1" alphatest="on"/>
                </screen>"""
 
        class parseWizard(ContentHandler):
                </screen>"""
 
        class parseWizard(ContentHandler):
@@ -43,7 +43,7 @@ class WelcomeWizard(Screen, HelpableScreen):
                        elif (name == "text"):
                                self.wizard[self.lastStep]["text"] = str(attrs.get('value'))
                        elif (name == "listentry"):
                        elif (name == "text"):
                                self.wizard[self.lastStep]["text"] = str(attrs.get('value'))
                        elif (name == "listentry"):
-                               self.wizard[self.lastStep]["list"].append(str(attrs.get('caption')))
+                               self.wizard[self.lastStep]["list"].append((str(attrs.get('caption')), str(attrs.get('step'))))
                        elif (name == "config"):
                                exec "from Screens." + str(attrs.get('module')) + " import *"
                                self.wizard[self.lastStep]["config"]["screen"] = eval(str(attrs.get('screen')))
                        elif (name == "config"):
                                exec "from Screens." + str(attrs.get('module')) + " import *"
                                self.wizard[self.lastStep]["config"]["screen"] = eval(str(attrs.get('screen')))
@@ -97,18 +97,18 @@ class WelcomeWizard(Screen, HelpableScreen):
                        #"cancel": self.keyCancel,
                        "left": self.left,
                        "right": self.right,
                        #"cancel": self.keyCancel,
                        "left": self.left,
                        "right": self.right,
-                       #"up": self.up,
-                       #"down": self.down,
-                       #"1": self.keyNumberGlobal,
-                       #"2": self.keyNumberGlobal,
-                       #"3": self.keyNumberGlobal,
-                       #"4": self.keyNumberGlobal,
-                       #"5": self.keyNumberGlobal,
-                       #"6": self.keyNumberGlobal,
-                       #"7": self.keyNumberGlobal,
-                       #"8": self.keyNumberGlobal,
-                       #"9": self.keyNumberGlobal,
-                       #"0": self.keyNumberGlobal
+                       "up": self.up,
+                       "down": self.down,
+                       "1": self.keyNumberGlobal,
+                       "2": self.keyNumberGlobal,
+                       "3": self.keyNumberGlobal,
+                       "4": self.keyNumberGlobal,
+                       "5": self.keyNumberGlobal,
+                       "6": self.keyNumberGlobal,
+                       "7": self.keyNumberGlobal,
+                       "8": self.keyNumberGlobal,
+                       "9": self.keyNumberGlobal,
+                       "0": self.keyNumberGlobal
                }, -1)
                
                #self["actions"] = HelpableActionMap(self, "OkCancelActions",
                }, -1)
                
                #self["actions"] = HelpableActionMap(self, "OkCancelActions",
@@ -117,6 +117,18 @@ class WelcomeWizard(Screen, HelpableScreen):
                        #})
 
        def ok(self):
                        #})
 
        def ok(self):
+               if (self.wizard[self.currStep]["config"]["screen"] != None):
+                       self.configInstance.run()
+               
+               if (len(self.wizard[self.currStep]["list"]) > 0):
+                       nextStep = self.wizard[self.currStep]["list"][self["list"].l.getCurrentSelectionIndex()][1]
+                       if nextStep == "end":
+                               self.currStep = self.numSteps
+                       elif nextStep == "next":
+                               pass
+                       else:
+                               self.currStep = int(nextStep) - 1
+
                if (self.currStep == self.numSteps): # wizard finished
                        config.misc.firstrun.value = 0;
                        config.misc.firstrun.save()
                if (self.currStep == self.numSteps): # wizard finished
                        config.misc.firstrun.value = 0;
                        config.misc.firstrun.save()
@@ -125,6 +137,10 @@ class WelcomeWizard(Screen, HelpableScreen):
                        self.currStep += 1
                        self.updateValues()
 
                        self.currStep += 1
                        self.updateValues()
 
+       def keyNumberGlobal(self, number):
+               if (self.wizard[self.currStep]["config"]["screen"] != None):
+                       self.configInstance.keyNumberGlobal(number)
+               
        def left(self):
                if (self.wizard[self.currStep]["config"]["screen"] != None):
                        self.configInstance.keyLeft()
        def left(self):
                if (self.wizard[self.currStep]["config"]["screen"] != None):
                        self.configInstance.keyLeft()
@@ -137,12 +153,16 @@ class WelcomeWizard(Screen, HelpableScreen):
 
        def up(self):
                if (self.wizard[self.currStep]["config"]["screen"] != None):
 
        def up(self):
                if (self.wizard[self.currStep]["config"]["screen"] != None):
-                       self.configInstance.handleKey("moveUp")
+                       self["config"].instance.moveSelection(self["config"].instance.moveUp)
+               elif (len(self.wizard[self.currStep]["list"]) > 0):
+                       self["list"].instance.moveSelection(self["config"].instance.moveUp)
                print "up"
                
        def down(self):
                if (self.wizard[self.currStep]["config"]["screen"] != None):
                print "up"
                
        def down(self):
                if (self.wizard[self.currStep]["config"]["screen"] != None):
-                       self.configInstance.handleKey("moveDown")
+                       self["config"].instance.moveSelection(self["config"].instance.moveDown)
+               elif (len(self.wizard[self.currStep]["list"]) > 0):
+                       self["list"].instance.moveSelection(self["config"].instance.moveDown)
                print "down"
                
        def updateValues(self):
                print "down"
                
        def updateValues(self):
@@ -156,7 +176,7 @@ class WelcomeWizard(Screen, HelpableScreen):
                if (len(self.wizard[self.currStep]["list"]) > 0):
                        self["list"].instance.setZPosition(2)
                        for x in self.wizard[self.currStep]["list"]:
                if (len(self.wizard[self.currStep]["list"]) > 0):
                        self["list"].instance.setZPosition(2)
                        for x in self.wizard[self.currStep]["list"]:
-                               self.list.append((x, None))
+                               self.list.append((x[0], None))
                self["list"].l.setList(self.list)
 
                self["config"].instance.setZPosition(1)
                self["list"].l.setList(self.list)
 
                self["config"].instance.setZPosition(1)