use slotid as parameter for the SatSetup instead of nim for easier inclusing into...
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Fri, 9 Dec 2005 09:38:17 +0000 (09:38 +0000)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Fri, 9 Dec 2005 09:38:17 +0000 (09:38 +0000)
add ability to pass arguments to a screen (the args-tag is evaluated with eval())

data/startwizard.xml
lib/python/Screens/Satconfig.py
lib/python/Screens/Wizard.py

index c38558d01de924e853072897ea3ce5d2b0d01c3a..de999de17066dc959dbeebc768ee2df9b58776a9 100644 (file)
@@ -23,7 +23,7 @@ self["arrowup"].startMoving()
                </step>
                <step number="3">
                        <text value="Please set up tuner A" />
-                       <config screen="NimSetup" module="Satconfig" />
+                       <config screen="NimSetup" module="Satconfig" args="0" />
                        <code>
 self["arrowup"].moveTo(740, 355, 10)
 self["arrowup"].startMoving()
@@ -35,7 +35,7 @@ self["arrowdown"].startMoving()
                </step>
                <step number="4">
                        <text value="Please set up tuner B" />
-                       <config screen="NimSetup" module="Satconfig" />
+                       <config screen="NimSetup" module="Satconfig" args="1" />
                        <code>
 self["arrowup"].moveTo(740, 355, 10)
 self["arrowup"].startMoving()
index e6033ebc15885a1b4f154bc9470205ff090b3c24..8748438af344d7a10b821ef8a9c36b6137f298e6 100644 (file)
@@ -98,13 +98,10 @@ class NimSetup(Screen):
                        x[1].cancel()
                self.close()
 
-       def __init__(self, session, nim = None):
+       def __init__(self, session, slotid):
                Screen.__init__(self, session)
                
-               if nim == None:
-                       self.nim = nimmanager.nimList()[0][1]
-               else:
-                       self.nim = nim
+               self.nim = nimmanager.nimList()[slotid][1]
                
                self["actions"] = NumberActionMap(["SetupActions"],
                {
@@ -144,5 +141,5 @@ class NimSelection(Screen):
        def okbuttonClick(self):
                selection = self["nimlist"].getCurrent()
                if selection[1].nimType != -1:  #unknown/empty
-                       self.session.open(NimSetup, selection[1])
+                       self.session.open(NimSetup, selection[1].slotid)
        
\ No newline at end of file
index ac85b4c6872ee18ef16f50d9eda2dc3d4603dc62..f0d99a9e822e0fbe3c64edcffbd9649055c7113e 100644 (file)
@@ -35,18 +35,21 @@ class WelcomeWizard(Screen, HelpableScreen):
                        self.currContent = ""
                
                def startElement(self, name, attrs):
+                       print name
                        self.currContent = name
                        if (name == "step"):
                                self.lastStep = int(attrs.get('number'))
-                               self.wizard[self.lastStep] = {"text": "", "list": [], "config": None, "code": ""}
+                               self.wizard[self.lastStep] = {"text": "", "list": [], "config": {"screen": None, "args": None }, "code": ""}
                        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')))
                        elif (name == "config"):
                                exec "from Screens." + str(attrs.get('module')) + " import *"
-                               self.wizard[self.lastStep]["config"] = eval(str(attrs.get('screen')))
-                               
+                               self.wizard[self.lastStep]["config"]["screen"] = eval(str(attrs.get('screen')))
+                               if (attrs.has_key('args')):
+                                       print "has args"
+                                       self.wizard[self.lastStep]["config"]["args"] = str(attrs.get('args'))
                def endElement(self, name):
                        self.currContent = ""
                        if name == 'code':
@@ -105,9 +108,13 @@ class WelcomeWizard(Screen, HelpableScreen):
                                self.list.append((x, None))
                self["list"].l.setList(self.list)
                
-               if (self.wizard[self.currStep]["config"] != None):
-                       print self.wizard[self.currStep]["config"]
-                       self.configInstance = self.session.instantiateDialog(self.wizard[self.currStep]["config"])
+               if (self.wizard[self.currStep]["config"]["screen"] != None):
+                       print self.wizard[self.currStep]["config"]["screen"]
+                       if self.wizard[self.currStep]["config"]["args"] == None:
+                               self.configInstance = self.session.instantiateDialog(self.wizard[self.currStep]["config"]["screen"])
+                       else:
+                               self.configInstance = self.session.instantiateDialog(self.wizard[self.currStep]["config"]["screen"], eval(self.wizard[self.currStep]["config"]["args"]))
+
                        self["config"].l.setList(self.configInstance["config"].list)
                else:
                        self["config"].l.setList([])