import string
from Screens.HelpMenu import HelpableScreen
-from Components.config import config, KEY_LEFT, KEY_RIGHT
+from Components.config import config, KEY_LEFT, KEY_RIGHT, KEY_DELETE, KEY_BACKSPACE
from Components.Label import Label
from Components.Slider import Slider
from Components.ActionMap import NumberActionMap
def setText(self, text):
self["text"].setText(text)
-class Wizard(Screen, HelpableScreen):
+class Wizard(Screen):
def createSummary(self):
print "WizardCreateSummary"
return WizardSummary
def __init__(self, session, showSteps = True, showStepSlider = True, showList = True, showConfig = True):
Screen.__init__(self, session)
- HelpableScreen.__init__(self)
self.stepHistory = []
self["text"] = Label()
if showConfig:
- self["config"] = ConfigList([])
+ self["config"] = ConfigList([], session = session)
if self.showSteps:
self["step"] = Label()
self.disableKeys = False
- self["actions"] = NumberActionMap(["WizardActions", "NumberActions", "ColorActions"],
+ self["actions"] = NumberActionMap(["WizardActions", "NumberActions", "ColorActions", "SetupActions"],
{
"ok": self.ok,
"back": self.back,
"green": self.green,
"yellow": self.yellow,
"blue":self.blue,
+ "deleteBackward": self.deleteBackward,
+ "deleteForward": self.deleteForward,
"1": self.keyNumberGlobal,
"2": self.keyNumberGlobal,
"3": self.keyNumberGlobal,
print "blue"
pass
+ def deleteForward(self):
+ self.resetCounter()
+ if (self.wizard[self.currStep]["config"]["screen"] != None):
+ self.configInstance.keyDelete()
+ elif (self.wizard[self.currStep]["config"]["type"] == "dynamic"):
+ self["config"].handleKey(KEY_DELETE)
+ print "deleteForward"
+
+ def deleteBackward(self):
+ self.resetCounter()
+ if (self.wizard[self.currStep]["config"]["screen"] != None):
+ self.configInstance.keyBackspace()
+ elif (self.wizard[self.currStep]["config"]["type"] == "dynamic"):
+ self["config"].handleKey(KEY_BACKSPACE)
+ print "deleteBackward"
+
def setLCDTextCallback(self, callback):
self.lcdCallbacks.append(callback)
if self.showConfig:
if self.wizard[currStep]["config"]["type"] == "dynamic":
eval("self." + self.wizard[currStep]["config"]["evaluation"])()
-
+
if self.showList:
if (len(self.wizard[currStep]["evaluatedlist"]) > 0):
print "current:", self["list"].current
self.resetCounter()
if (self.showConfig and self.wizard[self.currStep]["config"]["screen"] != None):
- self["config"].instance.moveSelection(self["config"].instance.moveUp)
+ 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.timeoutTimer.stop()
if self.configInstance is not None:
+ # remove callbacks
+ self.configInstance["config"].onSelectionChanged = []
del self.configInstance["config"]
self.configInstance.doClose()
self.configInstance = None
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)
+ callbacks = self.configInstance["config"].onSelectionChanged
self.configInstance["config"].destroy()
+ print "clearConfigList", self.configInstance["config"], self["config"]
self.configInstance["config"] = self["config"]
+ self.configInstance["config"].onSelectionChanged = callbacks
+ print "clearConfigList", self.configInstance["config"], self["config"]
else:
self["config"].l.setList([])
else: