X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/fbbbdedb44cccd9712152b82043e3936a8c9ad63..679475dbb4c18821055c9b9d632f689aaa9f3516:/lib/python/Screens/Wizard.py diff --git a/lib/python/Screens/Wizard.py b/lib/python/Screens/Wizard.py index 14faba24..206a87ce 100644 --- a/lib/python/Screens/Wizard.py +++ b/lib/python/Screens/Wizard.py @@ -19,7 +19,7 @@ from xml.sax.handler import ContentHandler class WizardSummary(Screen): skin = """ - + @@ -46,6 +46,9 @@ class WizardSummary(Screen): self["text"].setText(text) class Wizard(Screen, HelpableScreen): + def createSummary(self): + print "WizardCreateSummary" + return WizardSummary class parseWizard(ContentHandler): def __init__(self, wizard): @@ -54,9 +57,7 @@ class Wizard(Screen, HelpableScreen): self.currContent = "" self.lastStep = 0 - def createSummary(self): - print "WizardCreateSummary" - return WizardSummary + def startElement(self, name, attrs): print "startElement", name @@ -162,7 +163,7 @@ class Wizard(Screen, HelpableScreen): self.currStep = 1 self.timeoutTimer = eTimer() - self.timeoutTimer.timeout.get().append(self.timeoutCounterFired) + self.timeoutTimer.callback.append(self.timeoutCounterFired) self["text"] = Label() @@ -187,7 +188,7 @@ class Wizard(Screen, HelpableScreen): self.lcdCallbacks = [] - self["actions"] = NumberActionMap(["WizardActions", "NumberActions"], + self["actions"] = NumberActionMap(["WizardActions", "NumberActions", "ColorActions"], { "ok": self.ok, "back": self.back, @@ -195,6 +196,10 @@ class Wizard(Screen, HelpableScreen): "right": self.right, "up": self.up, "down": self.down, + "red": self.red, + "green": self.green, + "yellow": self.yellow, + "blue":self.blue, "1": self.keyNumberGlobal, "2": self.keyNumberGlobal, "3": self.keyNumberGlobal, @@ -206,17 +211,38 @@ class Wizard(Screen, HelpableScreen): "9": self.keyNumberGlobal, "0": self.keyNumberGlobal }, -1) + + def red(self): + print "red" + pass + def green(self): + print "green" + pass + + def yellow(self): + print "yellow" + pass + + def blue(self): + print "blue" + pass + def setLCDTextCallback(self, callback): self.lcdCallbacks.append(callback) def back(self): + print "getting back..." + print "stepHistory:", self.stepHistory if len(self.stepHistory) > 1: self.currStep = self.stepHistory[-2] self.stepHistory = self.stepHistory[:-2] if self.currStep < 1: self.currStep = 1 + print "currStep:", self.currStep + print "new stepHistory:", self.stepHistory self.updateValues() + print "after updateValues stepHistory:", self.stepHistory def markDone(self): pass @@ -305,7 +331,7 @@ class Wizard(Screen, HelpableScreen): self["list"].selectPrevious() if self.wizard[self.currStep].has_key("onselect"): print "current:", self["list"].current - self.selection = self["list"].current[1] + self.selection = self["list"].current[-1] #self.selection = self.wizard[self.currStep]["evaluatedlist"][self["list"].l.getCurrentSelectionIndex()][1] exec("self." + self.wizard[self.currStep]["onselect"] + "()") print "up" @@ -321,7 +347,7 @@ class Wizard(Screen, HelpableScreen): print "current:", self["list"].current #self.selection = self.wizard[self.currStep]["evaluatedlist"][self["list"].l.getCurrentSelectionIndex()][1] #exec("self." + self.wizard[self.currStep]["onselect"] + "()") - self.selection = self["list"].current[1] + self.selection = self["list"].current[-1] #self.selection = self.wizard[self.currStep]["evaluatedlist"][self["list"].l.getCurrentSelectionIndex()][1] exec("self." + self.wizard[self.currStep]["onselect"] + "()") print "down" @@ -333,7 +359,7 @@ class Wizard(Screen, HelpableScreen): self["config"].instance.moveSelection(self["config"].instance.moveUp) elif (self.showList and len(self.wizard[self.currStep]["evaluatedlist"]) > 0): if self.wizard[self.currStep].has_key("onselect"): - self.selection = self["list"].current[1] + self.selection = self["list"].current[-1] print "self.selection:", self.selection exec("self." + self.wizard[self.currStep]["onselect"] + "()") @@ -366,7 +392,8 @@ class Wizard(Screen, HelpableScreen): self.condition = True exec (self.wizard[self.currStep]["condition"]) if self.condition: - self.stepHistory.append(self.currStep) + if len(self.stepHistory) == 0 or self.stepHistory[-1] != self.currStep: + self.stepHistory.append(self.currStep) print "wizard step:", self.wizard[self.currStep] if self.showSteps: @@ -438,7 +465,8 @@ class Wizard(Screen, HelpableScreen): else: self["config"].l.setList([]) else: - self["config"].hide() + if self.has_key("config"): + self["config"].hide() else: # condition false self.currStep += 1 self.updateValues() @@ -459,14 +487,14 @@ class WizardManager: def __init__(self): self.wizards = [] - def registerWizard(self, wizard, precondition): - self.wizards.append((wizard, precondition)) + def registerWizard(self, wizard, precondition, priority = 0): + self.wizards.append((wizard, precondition, priority)) def getWizards(self): list = [] for x in self.wizards: if x[1] == 1: # precondition - list.append(x[0]) + list.append((x[2], x[0])) return list wizardManager = WizardManager()