From a4332bd8d55eb4b54972f64c91aefd42f388de52 Mon Sep 17 00:00:00 2001 From: Stefan Pluecken Date: Fri, 9 Dec 2005 09:38:17 +0000 Subject: [PATCH] use slotid as parameter for the SatSetup instead of nim for easier inclusing into the start wizard add ability to pass arguments to a screen (the args-tag is evaluated with eval()) --- data/startwizard.xml | 4 ++-- lib/python/Screens/Satconfig.py | 9 +++------ lib/python/Screens/Wizard.py | 19 +++++++++++++------ 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/data/startwizard.xml b/data/startwizard.xml index c38558d..de999de 100644 --- a/data/startwizard.xml +++ b/data/startwizard.xml @@ -23,7 +23,7 @@ self["arrowup"].startMoving() - + self["arrowup"].moveTo(740, 355, 10) self["arrowup"].startMoving() @@ -35,7 +35,7 @@ self["arrowdown"].startMoving() - + self["arrowup"].moveTo(740, 355, 10) self["arrowup"].startMoving() diff --git a/lib/python/Screens/Satconfig.py b/lib/python/Screens/Satconfig.py index e6033eb..8748438 100644 --- a/lib/python/Screens/Satconfig.py +++ b/lib/python/Screens/Satconfig.py @@ -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 diff --git a/lib/python/Screens/Wizard.py b/lib/python/Screens/Wizard.py index ac85b4c..f0d99a9 100644 --- a/lib/python/Screens/Wizard.py +++ b/lib/python/Screens/Wizard.py @@ -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([]) -- 2.7.4