rename a baseclass wizard for further wizards
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Sun, 11 Dec 2005 03:31:42 +0000 (03:31 +0000)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Sun, 11 Dec 2005 03:31:42 +0000 (03:31 +0000)
derive a StartWizard-class from this wizard-baseclass

each wizard now has a listbox, a configlist, a text-label and a xml file describing the wizard

lib/python/Screens/Makefile.am
lib/python/Screens/StartWizard.py [new file with mode: 0644]
lib/python/Screens/Wizard.py
mytest.py

index 749ef89..0f873d9 100644 (file)
@@ -7,4 +7,4 @@ install_PYTHON = \
        Satconfig.py ScanSetup.py NetworkSetup.py Ci.py TimerEntry.py Volume.py \
        EpgSelection.py EventView.py Mute.py Standby.py ServiceInfo.py \
        AudioSelection.py InfoBarGenerics.py HelpMenu.py Wizard.py __init__.py \
        Satconfig.py ScanSetup.py NetworkSetup.py Ci.py TimerEntry.py Volume.py \
        EpgSelection.py EventView.py Mute.py Standby.py ServiceInfo.py \
        AudioSelection.py InfoBarGenerics.py HelpMenu.py Wizard.py __init__.py \
-       Dish.py SubserviceSelection.py LanguageSelection.py
+       Dish.py SubserviceSelection.py LanguageSelection.py StartWizard.py
diff --git a/lib/python/Screens/StartWizard.py b/lib/python/Screens/StartWizard.py
new file mode 100644 (file)
index 0000000..736b3ef
--- /dev/null
@@ -0,0 +1,27 @@
+from Wizard import Wizard, wizardManager
+
+from Components.Pixmap import *
+
+class StartWizard(Wizard):
+       skin = """
+               <screen position="0,0" size="720,560" title="Welcome..." flags="wfNoBorder" >
+                       <widget name="text" position="50,100" size="440,200" font="Arial;23" />
+                       <widget name="list" position="50,300" zPosition="1" size="440,200" />
+                       <widget name="config" position="50,300" zPosition="1" size="440,200" transparent="1" />                 
+                       <widget name="step" position="50,50" size="440,25" font="Arial;23" />
+                       <widget name="stepslider" position="50,500" zPosition="1" size="440,20" backgroundColor="dark" />
+                       <widget name="rc" pixmap="/usr/share/enigma2/rc.png" position="500,600" zPosition="10" size="154,475" transparent="1" alphatest="on"/>
+                       <widget name="arrowdown" pixmap="/usr/share/enigma2/arrowdown.png" position="0,0" zPosition="11" size="37,70" transparent="1" alphatest="on"/>
+                       <widget name="arrowup" pixmap="/usr/share/enigma2/arrowup.png" position="-100,-100" zPosition="11" size="37,70" transparent="1" alphatest="on"/>
+               </screen>"""
+       
+       def __init__(self, session):
+               self.skin = StartWizard.skin
+               self.xmlfile = "startwizard.xml"
+               
+               Wizard.__init__(self, session)
+               self["rc"] = MovingPixmap()
+               self["arrowdown"] = MovingPixmap()
+               self["arrowup"] = MovingPixmap()
+               
+wizardManager.registerWizard(StartWizard)
\ No newline at end of file
index 07c5f9a..97b07bf 100644 (file)
@@ -14,19 +14,7 @@ from xml.sax.handler import ContentHandler
 
 config.misc.firstrun = configElementBoolean("config.misc.firstrun", 1);
 
 
 config.misc.firstrun = configElementBoolean("config.misc.firstrun", 1);
 
-class WelcomeWizard(Screen, HelpableScreen):
-
-       skin = """
-               <screen position="0,0" size="720,560" title="Welcome..." flags="wfNoBorder" >
-                       <widget name="text" position="50,100" size="440,200" font="Arial;23" />
-                       <widget name="list" position="50,300" zPosition="1" size="440,200" />
-                       <widget name="config" position="50,300" zPosition="1" size="440,200" transparent="1" />                 
-                       <widget name="step" position="50,50" size="440,25" font="Arial;23" />
-                       <widget name="stepslider" position="50,500" zPosition="1" size="440,20" backgroundColor="dark" />
-                       <widget name="rc" pixmap="/usr/share/enigma2/rc.png" position="500,600" zPosition="10" size="154,475" transparent="1" alphatest="on"/>
-                       <widget name="arrowdown" pixmap="/usr/share/enigma2/arrowdown.png" position="0,0" zPosition="11" size="37,70" transparent="1" alphatest="on"/>
-                       <widget name="arrowup" pixmap="/usr/share/enigma2/arrowup.png" position="-100,-100" zPosition="11" size="37,70" transparent="1" alphatest="on"/>
-               </screen>"""
+class Wizard(Screen, HelpableScreen):
 
        class parseWizard(ContentHandler):
                def __init__(self, wizard):
 
        class parseWizard(ContentHandler):
                def __init__(self, wizard):
@@ -61,25 +49,20 @@ class WelcomeWizard(Screen, HelpableScreen):
                                 self.wizard[self.lastStep]["code"] = self.wizard[self.lastStep]["code"] + ch
                                
        def __init__(self, session):
                                 self.wizard[self.lastStep]["code"] = self.wizard[self.lastStep]["code"] + ch
                                
        def __init__(self, session):
-               self.skin = WelcomeWizard.skin
-
                Screen.__init__(self, session)
                HelpableScreen.__init__(self)
 
                self.wizard = {}
                parser = make_parser()
                Screen.__init__(self, session)
                HelpableScreen.__init__(self)
 
                self.wizard = {}
                parser = make_parser()
-               print "Reading startwizard.xml"
+               print "Reading " + self.xmlfile
                wizardHandler = self.parseWizard(self.wizard)
                parser.setContentHandler(wizardHandler)
                wizardHandler = self.parseWizard(self.wizard)
                parser.setContentHandler(wizardHandler)
-               parser.parse('/usr/share/enigma2/startwizard.xml')
+               parser.parse('/usr/share/enigma2/' + self.xmlfile)
                
                self.numSteps = len(self.wizard)
                self.currStep = 1
 
                self["text"] = Label()
                
                self.numSteps = len(self.wizard)
                self.currStep = 1
 
                self["text"] = Label()
-               self["rc"] = MovingPixmap()
-               self["arrowdown"] = MovingPixmap()
-               self["arrowup"] = MovingPixmap()
 
                self["config"] = ConfigList([])
 
 
                self["config"] = ConfigList([])
 
@@ -208,12 +191,17 @@ class WelcomeWizard(Screen, HelpableScreen):
                else:
                        self["config"].l.setList([])
 
                else:
                        self["config"].l.setList([])
 
-
-
-def listActiveWizards():
-       wizards = [ ]
-
-       if config.misc.firstrun.value:
-               wizards.append(WelcomeWizard)
+class WizardManager:
+       def __init__(self):
+               self.wizards = []
        
        
-       return wizards
+       def registerWizard(self, wizard):
+               self.wizards.append(wizard)
+       
+       def getWizards(self):
+               if config.misc.firstrun.value:
+                       return self.wizards
+               else:
+                       return []
+
+wizardManager = WizardManager()
index 206802e..42bcd3e 100644 (file)
--- a/mytest.py
+++ b/mytest.py
@@ -16,7 +16,8 @@ from Navigation import Navigation
 from skin import readSkin, applyAllAttributes
 
 from Components.config import configfile
 from skin import readSkin, applyAllAttributes
 
 from Components.config import configfile
-from Screens.Wizard import listActiveWizards
+from Screens.Wizard import wizardManager
+from Screens.StartWizard import *
 from Tools.BoundFunction import boundFunction
 
 had = dict()
 from Tools.BoundFunction import boundFunction
 
 had = dict()
@@ -177,7 +178,7 @@ def runScreenTest():
        
        session.nav = Navigation()
        
        
        session.nav = Navigation()
        
-       screensToRun = listActiveWizards()
+       screensToRun = wizardManager.getWizards()
        screensToRun.append(Screens.InfoBar.InfoBar)
        
        def runNextScreen(session, screensToRun, *result):
        screensToRun.append(Screens.InfoBar.InfoBar)
        
        def runNextScreen(session, screensToRun, *result):