Enigma2{data/skin_default.xml, Screens/ParentalControlSetup.py} - remove ParentalCont...
[vuplus_dvbapp] / lib / python / Screens / ParentalControlSetup.py
old mode 100644 (file)
new mode 100755 (executable)
index 6ae12ca..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.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
 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)
        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 = []
                self.list = []
-               ConfigListScreen.__init__(self, self.list)
+               ConfigListScreen.__init__(self, self.list, session = self.session, on_change = self.changedEntry)
                self.createSetup()
                self.createSetup()
-               
+
                self["actions"] = NumberActionMap(["SetupActions"],
                {
                self["actions"] = NumberActionMap(["SetupActions"],
                {
-                       "cancel": self.keyCancel
+                       "cancel": self.keyCancel,
+                       "save": self.keyCancel
                }, -2)
                }, -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 isProtected(self):
                return config.ParentalControl.setuppinactive.value and config.ParentalControl.configured.value
-       
+
        def createSetup(self):
                self.editListEntry = None
                self.changePin = None
                self.changeSetupPin = None
        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
                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.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)
 
                self["config"].list = self.list
                self["config"].setList(self.list)
 
@@ -136,6 +149,20 @@ class ParentalControlSetup(Screen, ConfigListScreen, ProtectedScreen):
 
        def keyNumberGlobal(self, number):
                pass
 
        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):
 
 SPECIAL_CHAR = 96
 class ParentalControlEditor(Screen):
@@ -215,9 +242,7 @@ class ParentalControlEditor(Screen):
                if result is not None:
                        print "result:", result
                        self.currentLetter = result[1]
                if result is not None:
                        print "result:", result
                        self.currentLetter = result[1]
-                       self.list = []
-                       for x in self.servicesList[result[1]]:
-                               self.list.append(ParentalControlEntryComponent(x[0], x[1], parentalControl.getProtectionLevel(x[0]) != -1))
+                       self.list = [ParentalControlEntryComponent(x[0], x[1], parentalControl.getProtectionLevel(x[0]) != -1) for x in self.servicesList[result[1]]]
                        self.servicelist.setList(self.list)
                else:
                        parentalControl.save()
                        self.servicelist.setList(self.list)
                else:
                        parentalControl.save()
@@ -226,6 +251,11 @@ class ParentalControlEditor(Screen):
 class ParentalControlChangePin(Screen, ConfigListScreen, ProtectedScreen):
        def __init__(self, session, pin, pinname):
                Screen.__init__(self, session)
 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 = "*")
                self.pin = pin
                self.list = []
                self.pin1 = ConfigPIN(default = 1111, censor = "*")
@@ -234,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)))
                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)
 #              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,
                self["actions"] = NumberActionMap(["DirectionActions", "ColorActions", "OkCancelActions"],
                {
                        "cancel": self.cancel,
+                       "red": self.cancel,
+                       "save": self.keyOK,
                }, -1)
                }, -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:
 
        def valueChanged(self, pin, value):
                if pin == 1:
@@ -281,3 +319,17 @@ class ParentalControlChangePin(Screen, ConfigListScreen, ProtectedScreen):
        def keyNumberGlobal(self, number):
                ConfigListScreen.keyNumberGlobal(self, number)
 
        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