Add some parental control improvements (made by Tode)
[enigma2.git] / lib / python / Components / ParentalControlList.py
index 6315963fb0a5231a71ba232da9ccbf96713db697..797ea39166a439b2f82091eb0376b8e30a33c104 100644 (file)
@@ -1,55 +1,44 @@
-from HTMLComponent import *
-from GUIComponent import *
-
 from MenuList import MenuList
-from Components.ParentalControl import parentalControl
-from Tools.Directories import *
-
-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
-
-lockPicture = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "lock-fs8.png"))
-
-def ParentalControlEntryComponent(service, name, locked = True):
-       res = [ (service, name, locked) ]
-       res.append((eListboxPythonMultiContent.TYPE_TEXT, 80, 5, 200, 50, 0, RT_HALIGN_LEFT, name))
-       if locked:
-               res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 0, 0, 32, 32, lockPicture))
-       
+from Components.ParentalControl import parentalControl, IMG_WHITESERVICE, IMG_WHITEBOUQUET, IMG_BLACKSERVICE, IMG_BLACKBOUQUET
+from Tools.Directories import SCOPE_SKIN_IMAGE, resolveFilename
+
+from enigma import eListboxPythonMultiContent, gFont, RT_HALIGN_LEFT
+from Tools.LoadPixmap import LoadPixmap
+
+#Now there is a list of pictures instead of one...
+entryPicture = {}
+
+entryPicture[IMG_BLACKSERVICE] = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/lock.png"))
+entryPicture[IMG_BLACKBOUQUET] = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/lockBouquet.png"))
+entryPicture[IMG_WHITESERVICE] = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/unlock.png"))
+entryPicture[IMG_WHITEBOUQUET] = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/unlockBouquet.png"))
+
+def ParentalControlEntryComponent(service, name, protectionType):
+       locked = protectionType[0]
+       sImage = protectionType[1]
+       res = [
+               (service, name, locked),
+               (eListboxPythonMultiContent.TYPE_TEXT, 80, 5, 300, 50, 0, RT_HALIGN_LEFT, name)
+       ]
+       #Changed logic: The image is defined by sImage, not by locked anymore
+       if sImage != "":
+               res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 0, 0, 32, 32, entryPicture[sImage]))
        return res
 
-class ParentalControlList(MenuList, HTMLComponent, GUIComponent):
-       def __init__(self, list):
-               GUIComponent.__init__(self)
-               self.l = eListboxPythonMultiContent()
-               self.list = list
-               self.l.setList(list)
+class ParentalControlList(MenuList):
+       def __init__(self, list, enableWrapAround = False):
+               MenuList.__init__(self, list, enableWrapAround, eListboxPythonMultiContent)
                self.l.setFont(0, gFont("Regular", 20))
-
-       GUI_WIDGET = eListbox
-       
-       def setList(self, list):
-               self.list = list
-               self.l.setList(list)
-               
-       def postWidgetCreate(self, instance):
-               instance.setContent(self.l)
-               instance.setItemHeight(32)
+               self.l.setItemHeight(32)
 
        def toggleSelectedLock(self):
                print "self.l.getCurrentSelection():", self.l.getCurrentSelection()
                print "self.l.getCurrentSelectionIndex():", self.l.getCurrentSelectionIndex()
-               self.list[self.l.getCurrentSelectionIndex()] = ParentalControlEntryComponent(self.l.getCurrentSelection()[0][0], self.l.getCurrentSelection()[0][1], not self.l.getCurrentSelection()[0][2]);
-               if self.l.getCurrentSelection()[0][2]:
-                       parentalControl.protectService(self.l.getCurrentSelection()[0][0])
+               curSel = self.l.getCurrentSelection()
+               if curSel[0][2]:
+                       parentalControl.unProtectService(self.l.getCurrentSelection()[0][0])
                else:
-                       parentalControl.unProtectService(self.l.getCurrentSelection()[0][0])    
+                       parentalControl.protectService(self.l.getCurrentSelection()[0][0])      
+               #Instead of just negating the locked- flag, now I call the getProtectionType every time...
+               self.list[self.l.getCurrentSelectionIndex()] = ParentalControlEntryComponent(curSel[0][0], curSel[0][1], parentalControl.getProtectionType(curSel[0][0]))
                self.l.setList(self.list)