Merge branch 'master' of /git/enigma2
authoracid-burn <acidburn@opendreambox.org>
Wed, 14 Oct 2009 11:06:41 +0000 (11:06 +0000)
committeracid-burn <acidburn@opendreambox.org>
Wed, 14 Oct 2009 11:06:41 +0000 (11:06 +0000)
data/skin_default.xml
lib/python/Components/GUISkin.py [changed mode: 0644->0755]
lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py
lib/python/Plugins/Extensions/DVDPlayer/plugin.py [changed mode: 0644->0755]
lib/python/Plugins/Extensions/MediaPlayer/settings.py
lib/python/Plugins/Extensions/PicturePlayer/plugin.py
lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py [changed mode: 0644->0755]
lib/python/Plugins/SystemPlugins/Videomode/plugin.py
lib/python/Screens/ParentalControlSetup.py [changed mode: 0644->0755]
lib/python/Screens/Setup.py [changed mode: 0644->0755]

index 582a169..6efa969 100755 (executable)
@@ -655,18 +655,10 @@ self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y()))
                <widget name="key0" position="132,92" size="130,30" font="Console;12" halign="center" valign="center" />
                <widget name="help2" position="262,92" size="130,30" font="Console;16" halign="center" valign="center" />
        </screen>
-       <!-- Parental control - change pin -->
-       <screen name="ParentalControlChangePin" position="center,center" size="520,160" title="Change pin code">
-               <widget name="config" position="10,10" size="500,350" scrollbarMode="showOnDemand" />
-       </screen>
        <!-- Parental control - editor -->
        <screen name="ParentalControlEditor" position="center,center" size="520,400" title="Parental control services Editor">
                <widget name="servicelist" position="10,10" size="500,350" scrollbarMode="showOnDemand" />
        </screen>
-       <!-- Parental control - setup -->
-       <screen name="ParentalControlSetup" position="center,center" size="520,400" title="Parental control setup">
-               <widget name="config" position="10,10" size="500,350" scrollbarMode="showOnDemand" />
-       </screen>
        <!-- Picture in picture -->
        <screen name="PictureInPicture" position="400,60" zPosition="-1" size="240,192" flags="wfNoBorder">
                <widget name="video" position="0,0" size="240,192" backgroundColor="transparent" />
@@ -861,14 +853,11 @@ self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y()))
        </screen>
        <!-- Setup -->
        <screen name="Setup" position="center,center" size="560,430" title="Setup">
-               <widget name="cancel" pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" />
-               <widget name="ok" pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" />
-               <ePixmap pixmap="skin_default/buttons/yellow.png" position="280,0" size="140,40" alphatest="on" />
-               <ePixmap pixmap="skin_default/buttons/blue.png" position="420,0" size="140,40" alphatest="on" />
-               <widget name="canceltext" position="0,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />
-               <widget name="oktext" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
-               <widget name="title" position="10,45" size="280,35" font="Regular;23" />
-               <widget name="config" position="10,95" size="540,325" scrollbarMode="showOnDemand" />
+               <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" />
+               <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" />
+               <widget source="key_red" render="Label" position="0,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />
+               <widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
+               <widget name="config" position="5,50" size="550,325" scrollbarMode="showOnDemand" />
        </screen>
        <!-- Simple channelselection -->
        <screen name="SimpleChannelSelection" position="center,center" size="560,430" title="Channel Selection">
@@ -1107,9 +1096,9 @@ self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y()))
        </screen>
        <!-- LCD screen (setup) -->
        <screen name="SetupSummary" position="0,0" size="132,64">
-               <widget name="SetupTitle" position="6,0" size="120,16" font="Regular;12" />
-               <widget name="SetupEntry" position="6,16" size="120,32" font="Regular;12" />
-               <widget name="SetupValue" position="6,48" size="120,16" font="Regular;12" />
+               <widget source="SetupTitle" render="Label" position="6,0" size="120,16" font="Regular;12" />
+               <widget source="SetupEntry" render="Label" position="6,16" size="120,32" font="Regular;12" />
+               <widget source="SetupValue" render="Label" position="6,48" size="120,16" font="Regular;12" />
        </screen>
        <!-- LCD screen (misc) -->
        <screen name="SimpleSummary" position="0,0" size="132,64">
@@ -1170,12 +1159,12 @@ self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y()))
                <widget name="text" position="12,35" size="536,46" font="Regular;46" transparent="1" noWrap="1" halign="right" />
                <widget name="list" position="10,100" size="540,225" selectionDisabled="1" transparent="1" />
        </screen>
-       <!-- VideoSetup (VideoMode Plugin) -->
-       <screen name="VideoSetup" position="center,center" size="560,430" title="VideoSetup">
+       <!-- FileBrowser -->
+       <screen name="FileBrowser" position="center,center" size="520,430" title="DVD File Browser" >
                <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" />
                <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" />
                <widget source="key_red" render="Label" position="0,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />
                <widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
-               <widget name="config" position="5,50" size="550,325" scrollbarMode="showOnDemand" />
+               <widget name="filelist" position="5,50" size="510,370" scrollbarMode="showOnDemand" />
        </screen>
 </skin>
old mode 100644 (file)
new mode 100755 (executable)
index 1bd2729..4ee8a4a
@@ -1,11 +1,13 @@
 from GUIComponent import GUIComponent
 from skin import applyAllAttributes
 from Tools.CList import CList
+from Sources.StaticText import StaticText
 
 class GUISkin:
        __module__ = __name__
 
        def __init__(self):
+               self["Title"] = StaticText()
                self.onLayoutFinish = [ ]
                self.summaries = CList()
                self.instance = None
@@ -63,9 +65,14 @@ class GUISkin:
 
        def setTitle(self, title):
                self.instance.setTitle(title)
-               self.title = title
+               self["Title"].text = title
                self.summaries.setTitle(title)
 
+       def getTitle(self):
+               return self["Title"].text
+
+       title = property(getTitle, setTitle)
+
        def setDesktop(self, desktop):
                self.desktop = desktop
 
@@ -88,6 +95,6 @@ class GUISkin:
 
                # we need to make sure that certain attributes come last
                self.skinAttributes.sort(key=lambda a: {"position": 1}.get(a[0], 0))
-               self.title = title
+               self["Title"].text = title
                applyAllAttributes(self.instance, self.desktop, self.skinAttributes, self.scale)
                self.createGUIScreen(self.instance, self.desktop)
index 9b4e2d5..c4289cb 100755 (executable)
@@ -14,17 +14,12 @@ from Components.config import config, getConfigListEntry
 from Components.ConfigList import ConfigListScreen
 
 class FileBrowser(Screen, HelpableScreen):
-       skin = """
-               <screen name="FileBrowser" position="center,center" size="520,430" title="DVD File Browser" >
-                       <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" />
-                       <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" />
-                       <widget source="key_red" render="Label" position="0,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />
-                       <widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
-                       <widget name="filelist" position="5,50" size="510,380" scrollbarMode="showOnDemand" />
-               </screen>"""
 
        def __init__(self, session, scope, configRef):
                Screen.__init__(self, session)
+               # for the skin: first try FileBrowser_DVDBurn, then FileBrowser, this allows individual skinning
+               self.skinName = ["FileBrowser_DVDBurn", "FileBrowser" ]
+
                HelpableScreen.__init__(self)
                self.scope = scope
                pattern = ""
@@ -57,12 +52,12 @@ class FileBrowser(Screen, HelpableScreen):
                self.filelist = FileList(currDir, matchingPattern=pattern)
                self["filelist"] = self.filelist
 
-               self["FilelistActions"] = ActionMap(["OkCancelActions"],
+               self["FilelistActions"] = ActionMap(["SetupActions"],
                        {
+                               "save": self.ok,
                                "ok": self.ok,
                                "cancel": self.exit
                        })
-
                self["key_red"] = StaticText(_("Cancel"))
                self["key_green"] = StaticText(_("OK"))
                self.onLayoutFinish.append(self.layoutFinished)
old mode 100644 (file)
new mode 100755 (executable)
index ce5fa9d..e895a14
@@ -7,6 +7,7 @@ from Screens.HelpMenu import HelpableScreen
 from Screens.InfoBarGenerics import InfoBarSeek, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarShowHide, InfoBarNotifications
 from Components.ActionMap import ActionMap, NumberActionMap, HelpableActionMap
 from Components.Label import Label
+from Components.Sources.StaticText import StaticText
 from Components.Pixmap import Pixmap
 from Components.FileList import FileList
 from Components.MenuList import MenuList
@@ -20,13 +21,13 @@ import servicedvd # load c++ part of dvd player plugin
 lastpath = ""
 
 class FileBrowser(Screen):
-       skin = """
-       <screen name="FileBrowser" position="100,100" size="520,376" title="DVD File Browser" >
-               <widget name="filelist" position="0,0" size="520,376" scrollbarMode="showOnDemand" />
-       </screen>"""
+
        def __init__(self, session, dvd_filelist = [ ]):
                Screen.__init__(self, session)
 
+               # for the skin: first try FileBrowser_DVDPlayer, then FileBrowser, this allows individual skinning
+               self.skinName = ["FileBrowser_DVDPlayer", "FileBrowser" ]
+
                self.dvd_filelist = dvd_filelist
                if len(dvd_filelist):   
                        self["filelist"] = MenuList(self.dvd_filelist)
@@ -42,11 +43,18 @@ class FileBrowser(Screen):
                        self.filelist = FileList(currDir, matchingPattern = "(?i)^.*\.(iso)", useServiceRef = True)
                        self["filelist"] = self.filelist
 
-               self["FilelistActions"] = ActionMap(["OkCancelActions"],
+               self["FilelistActions"] = ActionMap(["SetupActions"],
                        {
+                               "save": self.ok,
                                "ok": self.ok,
                                "cancel": self.exit
                        })
+               self["key_red"] = StaticText(_("Cancel"))
+               self["key_green"] = StaticText(_("OK"))
+               self.onLayoutFinish.append(self.layoutFinished)
+
+       def layoutFinished(self):
+               self.setTitle(_("DVD File Browser"))
 
        def ok(self):
                if len(self.dvd_filelist):
index 5f9ce7c..0b95812 100755 (executable)
@@ -1,7 +1,7 @@
 from Screens.Screen import Screen
 from Screens.HelpMenu import HelpableScreen
-from Components.Label import Label
 from Components.FileList import FileList
+from Components.Sources.StaticText import StaticText
 from Components.MediaPlayer import PlayList
 from Components.config import config, getConfigListEntry, ConfigSubsection, configfile, ConfigText, ConfigYesNo, ConfigDirectory
 from Components.ConfigList import ConfigListScreen
@@ -14,19 +14,14 @@ config.mediaplayer.saveDirOnExit = ConfigYesNo(default=False)
 config.mediaplayer.defaultDir = ConfigDirectory()
 
 class DirectoryBrowser(Screen, HelpableScreen):
-       skin = """
-               <screen name="DirectoryBrowser" position="center,center" size="560,400" title="Directory browser" >
-                       <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" />
-                       <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" />
-                       <widget source="key_red" render="Label" position="0,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />
-                       <widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
-                       <widget name="filelist" position="5,50" size="550,350" scrollbarMode="showOnDemand" />
-               </screen>"""
+
        def __init__(self, session, currDir):
-               from Components.Sources.StaticText import StaticText
                Screen.__init__(self, session)
+               # for the skin: first try MediaPlayerDirectoryBrowser, then FileBrowser, this allows individual skinning
+               self.skinName = ["MediaPlayerDirectoryBrowser", "FileBrowser" ]
+
                HelpableScreen.__init__(self)
-               
+
                self["key_red"] = StaticText(_("Cancel"))
                self["key_green"] = StaticText(_("Use"))
 
@@ -40,36 +35,39 @@ class DirectoryBrowser(Screen, HelpableScreen):
                                "ok": self.ok,
                                "cancel": self.exit
                        })
+               self.onLayoutFinish.append(self.layoutFinished)
+
+       def layoutFinished(self):
+               self.setTitle(_("Directory browser"))
 
        def ok(self):
                if self.filelist.canDescent():
                        self.filelist.descent()
 
        def use(self):
-               if self.filelist.canDescent() and self["filelist"].getFilename() and len(self["filelist"].getFilename()) > len(self["filelist"].getCurrentDirectory()):
-                       self.filelist.descent()
-               self.close(self["filelist"].getCurrentDirectory())
+               if self["filelist"].getCurrentDirectory() is not None:
+                       if self.filelist.canDescent() and self["filelist"].getFilename() and len(self["filelist"].getFilename()) > len(self["filelist"].getCurrentDirectory()):
+                               self.filelist.descent()
+                               self.close(self["filelist"].getCurrentDirectory())
+               else:
+                               self.close(self["filelist"].getFilename())
 
        def exit(self):
                self.close(False)
 
 class MediaPlayerSettings(Screen,ConfigListScreen):
-       skin = """
-               <screen name="MediaPlayerSettings" position="center,center" size="560,300" title="Edit settings">
-                       <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" />
-                       <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" />
-                       <widget source="key_red" render="Label" position="0,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />
-                       <widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
-                       <widget name="config" position="5,50" size="550,250" />
-               </screen>"""
 
        def __init__(self, session, parent):
-               from Components.Sources.StaticText import StaticText
                Screen.__init__(self, session)
+               # for the skin: first try MediaPlayerSettings, then Setup, this allows individual skinning
+               self.skinName = ["MediaPlayerSettings", "Setup" ]
+               self.setup_title = _("Edit settings")
+               self.onChangedEntry = [ ]
+
                self["key_red"] = StaticText(_("Cancel"))
                self["key_green"] = StaticText(_("Save"))
 
-               ConfigListScreen.__init__(self, [])
+               ConfigListScreen.__init__(self, [], session = session, on_change = self.changedEntry)
                self.parent = parent
                self.initConfigList()
                config.mediaplayer.saveDirOnExit.addNotifier(self.initConfigList)
@@ -82,6 +80,9 @@ class MediaPlayerSettings(Screen,ConfigListScreen):
                    "ok": self.ok,
                }, -2)
 
+       def layoutFinished(self):
+               self.setTitle(self.setup_title)
+
        def initConfigList(self, element=None):
                print "[initConfigList]", element
                try:
@@ -115,3 +116,17 @@ class MediaPlayerSettings(Screen,ConfigListScreen):
        def cancel(self):
                self.close()
 
+       # for summary:
+       def changedEntry(self):
+               for x in self.onChangedEntry:
+                       x()
+
+       def getCurrentEntry(self):
+               return self["config"].getCurrent()[0]
+
+       def getCurrentValue(self):
+               return str(self["config"].getCurrent()[1].getText())
+
+       def createSummary(self):
+               from Screens.Setup import SetupSummary
+               return SetupSummary
index 7902b14..5d1c2cb 100755 (executable)
@@ -145,34 +145,32 @@ class picshow(Screen):
 #------------------------------------------------------------------------------------------
 
 class Pic_Setup(Screen, ConfigListScreen):
-       skin = """
-               <screen name="Pic_Setup" position="center,center" size="550,350" title="Settings" >
-                       <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" />
-                       <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" />
-                       <widget source="key_red" render="Label" position="0,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />
-                       <widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
-                       <widget name="config" position="5,50" size="540,300" />
-               </screen>"""
+
        def __init__(self, session):
                Screen.__init__(self, session)
+               # for the skin: first try MediaPlayerSettings, then Setup, this allows individual skinning
+               self.skinName = ["PicturePlayerSetup", "Setup" ]
+               self.setup_title = _("Settings")
+               self.onChangedEntry = [ ]
                self.session = session
 
-               self["actions"] = ActionMap(["SetupActions", "ColorActions"],
+               self["actions"] = ActionMap(["SetupActions"],
                        {
                                "cancel": self.keyCancel,
                                "save": self.keySave,
+                               "ok": self.keySave,
                        }, -2)
 
                self["key_red"] = StaticText(_("Cancel"))
                self["key_green"] = StaticText(_("OK"))
 
                self.list = []
-               ConfigListScreen.__init__(self, self.list, session = self.session)
+               ConfigListScreen.__init__(self, self.list, session = self.session, on_change = self.changedEntry)
                self.createSetup()
                self.onLayoutFinish.append(self.layoutFinished)
 
        def layoutFinished(self):
-               self.setTitle(_("Settings"))
+               self.setTitle(self.setup_title)
 
        def createSetup(self):
                self.list = []
@@ -193,6 +191,21 @@ class Pic_Setup(Screen, ConfigListScreen):
        def keyRight(self):
                ConfigListScreen.keyRight(self)
 
+       # for summary:
+       def changedEntry(self):
+               for x in self.onChangedEntry:
+                       x()
+
+       def getCurrentEntry(self):
+               return self["config"].getCurrent()[0]
+
+       def getCurrentValue(self):
+               return str(self["config"].getCurrent()[1].getText())
+
+       def createSummary(self):
+               from Screens.Setup import SetupSummary
+               return SetupSummary
+
 #---------------------------------------------------------------------------
 
 class Pic_Exif(Screen):
old mode 100644 (file)
new mode 100755 (executable)
index 71ae50b..5b7edcf
@@ -560,24 +560,34 @@ class DiseqcTester(Screen, TuneTest, ResultParser):
                        self["CmdText"].setText(_("Press OK to get further details for %s") % str(self["progress_list"].getCurrent()[1]))
 
 class DiseqcTesterTestTypeSelection(Screen, ConfigListScreen):
-       skin = """<screen position="80,95" size="560,412" title="DiSEqC Tester Test Settings">
-               <widget name="config" position="10,10" size="540,402" scrollbarMode="showOnDemand" />
-       </screen>
-       """
+
        def __init__(self, session, feid):
                Screen.__init__(self, session)
+               # for the skin: first try MediaPlayerSettings, then Setup, this allows individual skinning
+               self.skinName = ["DiseqcTesterTestTypeSelection", "Setup" ]
+               self.setup_title = _("DiSEqC-Tester settings")
+               self.onChangedEntry = [ ]
                self.feid = feid
                
                self.list = []
-               ConfigListScreen.__init__(self, self.list)
+               ConfigListScreen.__init__(self, self.list, session = self.session, on_change = self.changedEntry)
                
                self["actions"] = ActionMap(["SetupActions"],
-               {
-                       "cancel": self.keyCancel
-               }, -2)
+                       {
+                               "cancel": self.keyCancel,
+                               "save": self.keyOK,
+                               "ok": self.keyOK,
+                       }, -2)
+
+               self["key_red"] = StaticText(_("Cancel"))
+               self["key_green"] = StaticText(_("OK"))
                
                self.createSetup()
-               
+               self.onLayoutFinish.append(self.layoutFinished)
+
+       def layoutFinished(self):
+               self.setTitle(self.setup_title)
+
        def createSetup(self):
                self.testtype = ConfigSelection(choices={"quick": _("Quick"), "random": _("Random"), "complete": _("Complete")}, default = "quick")
                self.testtypeEntry = getConfigListEntry(_("Test Type"), self.testtype)
@@ -613,6 +623,21 @@ class DiseqcTesterTestTypeSelection(Screen, ConfigListScreen):
        def keyCancel(self):
                self.close()
 
+       # for summary:
+       def changedEntry(self):
+               for x in self.onChangedEntry:
+                       x()
+
+       def getCurrentEntry(self):
+               return self["config"].getCurrent()[0]
+
+       def getCurrentValue(self):
+               return str(self["config"].getCurrent()[1].getText())
+
+       def createSummary(self):
+               from Screens.Setup import SetupSummary
+               return SetupSummary
+
 class DiseqcTesterNimSelection(NimSelection):
        skin = """
                <screen position="160,123" size="400,330" title="Choose Tuner">
index db810f0..733edd6 100755 (executable)
@@ -13,6 +13,8 @@ class VideoSetup(Screen, ConfigListScreen):
 
        def __init__(self, session, hw):
                Screen.__init__(self, session)
+               # for the skin: first try VideoSetup, then Setup, this allows individual skinning
+               self.skinName = ["VideoSetup", "Setup" ]
                self.setup_title = _("A/V Settings")
                self.hw = hw
                self.onChangedEntry = [ ]
old mode 100644 (file)
new mode 100755 (executable)
index 4c63dd5..a123d2d
@@ -4,6 +4,7 @@ from Components.ActionMap import NumberActionMap
 from Components.config import config, getConfigListEntry, ConfigNothing, NoSave, ConfigPIN
 from Components.ParentalControlList import ParentalControlEntryComponent, ParentalControlList 
 from Components.ParentalControl import parentalControl
+from Components.Sources.StaticText import StaticText
 from Screens.ChoiceBox import ChoiceBox
 from Screens.MessageBox import MessageBox
 from Screens.InputBox import PinInput
@@ -39,23 +40,35 @@ class ParentalControlSetup(Screen, ConfigListScreen, ProtectedScreen):
        def __init__(self, session):
                Screen.__init__(self, session)
                ProtectedScreen.__init__(self)
+               # for the skin: first try ParentalControlSetup, then Setup, this allows individual skinning
+               self.skinName = ["ParentalControlSetup", "Setup" ]
+               self.setup_title = _("Parental control setup")
+               self.onChangedEntry = [ ]
+
                self.list = []
-               ConfigListScreen.__init__(self, self.list)
+               ConfigListScreen.__init__(self, self.list, session = self.session, on_change = self.changedEntry)
                self.createSetup()
-               
+
                self["actions"] = NumberActionMap(["SetupActions"],
                {
-                       "cancel": self.keyCancel
+                       "cancel": self.keyCancel,
+                       "save": self.keyCancel
                }, -2)
+               self["key_red"] = StaticText(_("Cancel"))
+               self["key_green"] = StaticText(_("OK"))
+               self.onLayoutFinish.append(self.layoutFinished)
+
+       def layoutFinished(self):
+               self.setTitle(self.setup_title)
 
        def isProtected(self):
                return config.ParentalControl.setuppinactive.value and config.ParentalControl.configured.value
-       
+
        def createSetup(self):
                self.editListEntry = None
                self.changePin = None
                self.changeSetupPin = None
-               
+
                self.list = []
                self.list.append(getConfigListEntry(_("Enable parental control"), config.ParentalControl.configured))
                print "config.ParentalControl.configured.value", config.ParentalControl.configured.value
@@ -77,7 +90,7 @@ class ParentalControlSetup(Screen, ConfigListScreen, ProtectedScreen):
                                #self.list.append(getConfigListEntry(_("Remember service pin"), config.ParentalControl.storeservicepin))        
                                self.editListEntry = getConfigListEntry(_("Edit services list"), NoSave(ConfigNothing()))
                                self.list.append(self.editListEntry)
-                               
+
                self["config"].list = self.list
                self["config"].setList(self.list)
 
@@ -136,6 +149,20 @@ class ParentalControlSetup(Screen, ConfigListScreen, ProtectedScreen):
 
        def keyNumberGlobal(self, number):
                pass
+       # for summary:
+       def changedEntry(self):
+               for x in self.onChangedEntry:
+                       x()
+
+       def getCurrentEntry(self):
+               return self["config"].getCurrent()[0]
+
+       def getCurrentValue(self):
+               return str(self["config"].getCurrent()[1].getText())
+
+       def createSummary(self):
+               from Screens.Setup import SetupSummary
+               return SetupSummary
 
 SPECIAL_CHAR = 96
 class ParentalControlEditor(Screen):
@@ -224,6 +251,11 @@ class ParentalControlEditor(Screen):
 class ParentalControlChangePin(Screen, ConfigListScreen, ProtectedScreen):
        def __init__(self, session, pin, pinname):
                Screen.__init__(self, session)
+               # for the skin: first try ParentalControlChangePin, then Setup, this allows individual skinning
+               self.skinName = ["ParentalControlChangePin", "Setup" ]
+               self.setup_title = _("Change pin code")
+               self.onChangedEntry = [ ]
+
                self.pin = pin
                self.list = []
                self.pin1 = ConfigPIN(default = 1111, censor = "*")
@@ -232,16 +264,24 @@ class ParentalControlChangePin(Screen, ConfigListScreen, ProtectedScreen):
                self.pin2.addEndNotifier(boundFunction(self.valueChanged, 2))
                self.list.append(getConfigListEntry(_("New pin"), NoSave(self.pin1)))
                self.list.append(getConfigListEntry(_("Reenter new pin"), NoSave(self.pin2)))
-               ConfigListScreen.__init__(self, self.list)
+               ConfigListScreen.__init__(self, self.list, session = self.session, on_change = self.changedEntry)
 #              print "old pin:", pin
                #if pin.value != "aaaa":
                        #self.onFirstExecBegin.append(boundFunction(self.session.openWithCallback, self.pinEntered, PinInput, pinList = [self.pin.value], title = _("please enter the old pin"), windowTitle = _("Change pin code")))
                ProtectedScreen.__init__(self)
-               
+
                self["actions"] = NumberActionMap(["DirectionActions", "ColorActions", "OkCancelActions"],
                {
                        "cancel": self.cancel,
+                       "red": self.cancel,
+                       "save": self.keyOK,
                }, -1)
+               self["key_red"] = StaticText(_("Cancel"))
+               self["key_green"] = StaticText(_("OK"))
+               self.onLayoutFinish.append(self.layoutFinished)
+
+       def layoutFinished(self):
+               self.setTitle(self.setup_title)
 
        def valueChanged(self, pin, value):
                if pin == 1:
@@ -279,3 +319,17 @@ class ParentalControlChangePin(Screen, ConfigListScreen, ProtectedScreen):
        def keyNumberGlobal(self, number):
                ConfigListScreen.keyNumberGlobal(self, number)
 
+       # for summary:
+       def changedEntry(self):
+               for x in self.onChangedEntry:
+                       x()
+
+       def getCurrentEntry(self):
+               return self["config"].getCurrent()[0]
+
+       def getCurrentValue(self):
+               return str(self["config"].getCurrent()[1].getText())
+
+       def createSummary(self):
+               from Screens.Setup import SetupSummary
+               return SetupSummary
old mode 100644 (file)
new mode 100755 (executable)
index 7226562..e9c3c68
@@ -3,8 +3,7 @@ from Components.ActionMap import NumberActionMap
 from Components.config import config, ConfigNothing
 from Components.SystemInfo import SystemInfo
 from Components.ConfigList import ConfigListScreen
-from Components.Label import Label
-from Components.Pixmap import Pixmap
+from Components.Sources.StaticText import StaticText
 
 import xml.etree.cElementTree
 
@@ -27,26 +26,21 @@ class SetupError(Exception):
         return self.msg
 
 class SetupSummary(Screen):
-       skin = """
-       <screen position="6,0" size="120,64">
-               <widget name="SetupTitle" position="6,0" size="120,16" font="Regular;12" />
-               <widget name="SetupEntry" position="6,16" size="120,32" font="Regular;12" />
-               <widget name="SetupValue" position="6,48" size="120,16" font="Regular;12" />
-       </screen>"""
 
        def __init__(self, session, parent):
+
                Screen.__init__(self, session, parent = parent)
-               self["SetupTitle"] = Label(_(parent.setup_title))
-               self["SetupEntry"] = Label("")
-               self["SetupValue"] = Label("")
+               self["SetupTitle"] = StaticText(_(parent.setup_title))
+               self["SetupEntry"] = StaticText("")
+               self["SetupValue"] = StaticText("")
                self.onShow.append(self.addWatcher)
                self.onHide.append(self.removeWatcher)
-               
+
        def addWatcher(self):
                self.parent.onChangedEntry.append(self.selectionChanged)
                self.parent["config"].onSelectionChanged.append(self.selectionChanged)
                self.selectionChanged()
-       
+
        def removeWatcher(self):
                self.parent.onChangedEntry.remove(self.selectionChanged)
                self.parent["config"].onSelectionChanged.remove(self.selectionChanged)
@@ -77,7 +71,6 @@ class Setup(ConfigListScreen, Screen):
 
        def __init__(self, session, setup):
                Screen.__init__(self, session)
-
                # for the skin: first try a setup_<setupID>, then Setup
                self.skinName = ["setup_" + setup, "Setup" ]
 
@@ -88,13 +81,9 @@ class Setup(ConfigListScreen, Screen):
                self.refill(list)
 
                #check for list.entries > 0 else self.close
-               self["title"] = Label(_(self.setup_title))
+               self["key_red"] = StaticText(_("Cancel"))
+               self["key_green"] = StaticText(_("OK"))
 
-               self["oktext"] = Label(_("OK"))
-               self["canceltext"] = Label(_("Cancel"))
-               self["ok"] = Pixmap()
-               self["cancel"] = Pixmap()
-               
                self["actions"] = NumberActionMap(["SetupActions"], 
                        {
                                "cancel": self.keyCancel,
@@ -104,6 +93,10 @@ class Setup(ConfigListScreen, Screen):
                ConfigListScreen.__init__(self, list, session = session, on_change = self.changedEntry)
 
                self.changedEntry()
+               self.onLayoutFinish.append(self.layoutFinished)
+
+       def layoutFinished(self):
+               self.setTitle(_(self.setup_title))
 
        # for summary:
        def changedEntry(self):