add language-screen to the start-wizard, which breaks the startwizard. bug in screen-handling?
<wizard>
<step number="1">
+ <config screen="LanguageSelection" module="LanguageSelection" type="standalone" />
+ </step>
+ <step number="2">
<text value="Hello User.\n\nThis start-wizard will guide you through the basic setup of your Dreambox.\n\nPress the OK button on your remote control to move to the next step." />
- <config screen="LanguageSelection" module="LanguageSelection" type="MenuList" />
<code>
self["arrowdown"].moveTo(557, 232, 10)
self["rc"].moveTo(500, 50, 10)
self["rc"].startMoving()
</code>
</step>
- <step number="2">
+ <step number="3">
<text value="Use the up/down keys on your remote control to select an option. After that, press OK." />
<list>
<listentry caption="Use wizard to set up basic features" step="next" />
self["arrowup"].startMoving()
</code>
</step>
- <step number="3">
+ <step number="4">
<text value="Please set up tuner A" />
<config screen="NimSetup" module="Satconfig" args="0" type="ConfigList" />
<code>
self["arrowdown"].startMoving()
</code>
</step>
- <step number="4">
+ <step number="5">
<text value="Please set up tuner B" />
<config screen="NimSetup" module="Satconfig" args="1" type="ConfigList" />
<code>
self["arrowdown"].startMoving()
</code>
</step>
- <step number="5">
+ <step number="6">
<text value="Do you want to do a service scan?" />
<list>
<listentry caption="Yes, scan now" step="next" />
- <listentry caption="No, scan later manually" step="7" />
+ <listentry caption="No, scan later manually" step="8" />
</list>
</step>
- <step number="6">
+ <step number="7">
<text value="What do you want to scan?" />
<config screen="ScanSimple" module="ScanSetup" type="ConfigList" />
<code>
self["arrowdown"].startMoving()
</code>
</step>
- <step number="7">
+ <step number="8">
<text value="Thanx for using the wizard. Your box is now ready to use." />
<code>
self["arrowdown"].moveTo(740, 200, 10)
def addLanguage(self, name, lang):
try:
- self.lang.append((_(name), gettext.translation('enigma2', '/enigma2/po', languages=[lang])))
+ self.lang.append((_(name), gettext.translation('enigma2', '/enigma2/po', languages=[lang]), lang))
except:
print "Language " + str(name) + " not found"
--- /dev/null
+from HTMLComponent import *
+from GUIComponent import *
+
+from MenuList import MenuList
+
+from enigma import *
+
+RT_HALIGN_LEFT = 0
+RT_HALIGN_RIGHT = 1
+RT_HALIGN_CENTER = 2
+RT_HALIGN_BLOCK = 4
+
+RT_VALIGN_TOP = 0
+RT_VALIGN_CENTER = 8
+RT_VALIGN_BOTTOM = 16
+
+def LanguageEntryComponent(file, name):
+ res = [ None ]
+ res.append((70, 0, 400, 30, 0, RT_HALIGN_LEFT, name))
+ png = loadPNG("/usr/share/enigma2/countries/" + file + ".png")
+ if png == None:
+ png = loadPNG("/usr/share/enigma2/countries/missing.png")
+ res.append((0, 5, 60, 40, png))
+
+ return res
+
+
+class LanguageList(HTMLComponent, GUIComponent, MenuList):
+ def __init__(self, list):
+ GUIComponent.__init__(self)
+ self.l = eListboxPythonMultiContent()
+ self.list = list
+ self.l.setList(list)
+ self.l.setFont(0, gFont("Arial", 25))
+
+ def GUIcreate(self, parent):
+ self.instance = eListbox(parent)
+ self.instance.setContent(self.l)
+ self.instance.setItemHeight(50)
+
InputDevice.py ServicePosition.py SetupDevices.py Harddisk.py \
AVSwitch.py Network.py RFmod.py DiskInfo.py NimManager.py Lcd.py \
EpgList.py ScrollLabel.py Timezones.py Language.py HelpMenuList.py \
- BlinkingPixmap.py Pixmap.py ConditionalWidget.py Slider.py
+ BlinkingPixmap.py Pixmap.py ConditionalWidget.py Slider.py LanguageList.py
from Components.MenuList import MenuList
from Components.ActionMap import ActionMap
from Components.Language import language
+from Components.LanguageList import *
+
class LanguageSelection(Screen):
def __init__(self, session):
self.list = []
list = language.getLanguageList()
- for x in list:
- self.list.append((x, None))
+ for x in language.lang:
+ print x
+ self.list.append(LanguageEntryComponent(x[2], x[0]))
- self["list"] = MenuList(self.list)
+ self["list"] = LanguageList(self.list)
self["actions"] = ActionMap(["OkCancelActions"],
{
"ok": self.save,
"cancel": self.close
})
+ print "INIT LANGUAGESELECTION"
def save(self):
self.run()
#})
def ok(self):
+ print "OK"
if (self.wizard[self.currStep]["config"]["screen"] != None):
- self.configInstance.run()
+ try: # don't die, if no run() is available
+ self.configInstance.run()
+ except:
+ print "Failed to run configInstance"
if (len(self.wizard[self.currStep]["list"]) > 0):
nextStep = self.wizard[self.currStep]["list"][self["list"].l.getCurrentSelectionIndex()][1]
else:
self.currStep += 1
self.updateValues()
+
+ print "Now: " + str(self.currStep)
def keyNumberGlobal(self, number):
if (self.wizard[self.currStep]["config"]["screen"] != None):
def up(self):
if (self.wizard[self.currStep]["config"]["screen"] != None):
- self[self.currConfig].instance.moveSelection(self[self.currConfig].instance.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):
- self[self.currConfig].instance.moveSelection(self[self.currConfig].instance.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 "Updating values in step " + str(self.currStep)
self["step"].setText(_("Step ") + str(self.currStep) + "/" + str(self.numSteps))
self["stepslider"].setValue(self.currStep)
self["text"].setText(self.wizard[self.currStep]["text"])
+
+ if self.wizard[self.currStep]["code"] != "":
+ print self.wizard[self.currStep]["code"]
+ exec(self.wizard[self.currStep]["code"])
self["list"].instance.setZPosition(1)
self.list = []
self["config"].instance.setZPosition(1)
if (self.wizard[self.currStep]["config"]["screen"] != None):
- if self.wizard[self.currStep]["config"]["type"] == "ConfigList":
- self.currConfig = "config"
- elif self.wizard[self.currStep]["config"]["type"] == "MenuList":
- self.currConfig = "list"
-
- self[self.currConfig].instance.setZPosition(2)
- 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"])
+ if self.wizard[self.currStep]["config"]["type"] == "standalone":
+ print "Type is standalone"
+ self.session.openWithCallback(self.ok, 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[self.currConfig].l.setList(self.configInstance[self.currConfig].list)
- self.configInstance[self.currConfig] = self[self.currConfig]
+ self["config"].instance.setZPosition(2)
+ 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)
+ self.configInstance["config"] = self["config"]
else:
self["config"].l.setList([])
- if self.wizard[self.currStep]["code"] != "":
- print self.wizard[self.currStep]["code"]
- exec(self.wizard[self.currStep]["code"])
+
def listActiveWizards():
wizards = [ ]