Merge branch 'bug_443_listbox_selection' into experimental
authorghost <andreas.monzner@multimedia-labs.de>
Thu, 11 Feb 2010 22:14:35 +0000 (23:14 +0100)
committerghost <andreas.monzner@multimedia-labs.de>
Thu, 11 Feb 2010 22:14:35 +0000 (23:14 +0100)
data/encoding.conf
lib/python/Components/Converter/TemplatedMultiContent.py
lib/python/Components/Renderer/Listbox.py
lib/python/Components/Sources/List.py

index 9383317..3f09b56 100644 (file)
@@ -12,18 +12,21 @@ bul ISO8859-5
 #so our default is ISO8859-1 without two char byte encoding
 #So all transponders which needs this must be listed here
 #TSID ONID
-0x447 0x1 #ASTRA 19.2 UPC Direct
-0x427 0x1 #ASTRA 19.2 UPC Direct
-0x44b 0x1 #ASTRA 19.2 UPC Direct
-0x4ff 0x1 #ASTRA 19.2 UPC Direct
-0x407 0x1 #ASTRA 19.2 UPC Direct
-0x436 0x1 #ASTRA 19.2 MTV Euro - MTV Networks
-0x42a 0x1 #ASTRA 19.2 VH1 Classic - MTV Networks
-0xbc6 0x3 #ASTRA 23.5 Cslink, Skylink
-0xc85 0x3 #ASTRA 23.5 Cslink, Skylink
-0xc89 0x3 #ASTRA 23.5 Cslink, Skylink
-0xc8f 0x3 #ASTRA 23.5 Cslink, Skylink
-0xbc7 0x3 #ASTRA 23.5 Cslink, Skylink
+0x447 0x1 # Astra 19.2°E 12.304 H - UPC Direct 
+0x427 0x1 # Astra 19.2°E 10.920 H - UPC Direct 
+0x44b 0x1 # Astra 19.2°E 12.382 H - UPC Direct
+0x4ff 0x1 # Astra 19.2°E 11.992 H - UPC Direct 
+0x407 0x1 # Astra 19.2°E 11.671 H - UPC Direct 
+0x436 0x1 # Astra 19.2°E 11.973 V - MTV Networks Europe
+0x42a 0x1 # Astra 19.2°E 11.739 V - MTV Networks Europe
+0xc23 0x3 # Astra 23.5°E 10.803 H - CS Link / SkyLink
+0xc85 0x3 # Astra 23.5°E 11.797 H - CS Link / SkyLink
+0xc89 0x3 # Astra 23.5°E 11.876 H - CS Link / SkyLink
+0xc8f 0x3 # Astra 23.5°E 11.992 H - CS Link / SkyLink
+0xc93 0x3 # Astra 23.5°E 12.070 H - CS Link / SkyLink
+0xc95 0x3 # Astra 23.5°E 12.109 H - SkyLink
+0xbc6 0x3 # Astra 23.5°E 12.525 V - CS Link / SkyLink
+0xbc7 0x3 # Astra 23.5°E 12.565 H - SkyLink
 400 318 #Hotbird 13.0 Cyfra+
 1000 318 #Hotbird 13.0 Grupa ITI
 1500 318 #Hotbird 13.0 Cyfra+
index b86d94b..b5a9844 100644 (file)
@@ -10,8 +10,8 @@ class TemplatedMultiContent(StringList):
                del l["self"] # cleanup locals a bit
                del l["args"]
 
-               self.template = eval(args, {}, l)
                self.active_style = None
+               self.template = eval(args, {}, l)
                assert "fonts" in self.template
                assert "itemHeight" in self.template
                assert "template" in self.template or "templates" in self.template
@@ -25,7 +25,6 @@ class TemplatedMultiContent(StringList):
                if not self.content:
                        from enigma import eListboxPythonMultiContent
                        self.content = eListboxPythonMultiContent()
-                       self.setTemplate()
 
                        # also setup fonts (also given by source)
                        index = 0
@@ -35,30 +34,33 @@ class TemplatedMultiContent(StringList):
 
                # if only template changed, don't reload list
                if what[0] == self.CHANGED_SPECIFIC and what[1] == "style":
-                       self.setTemplate()
-                       return
-
-               if self.source:
+                       pass
+               elif self.source:
                        self.content.setList(self.source.list)
-                       self.setTemplate()
 
+               self.setTemplate()
                self.downstream_elements.changed(what)
 
        def setTemplate(self):
                if self.source:
                        style = self.source.style
+
                        if style == self.active_style:
-                               return # style did not change
+                               return
 
                        # if skin defined "templates", that means that it defines multiple styles in a dict. template should still be a default
                        templates = self.template.get("templates")
                        template = self.template.get("template")
                        itemheight = self.template["itemHeight"]
+                       selectionEnabled = self.template.get("selectionEnabled", True)
 
                        if templates and style and style in templates: # if we have a custom style defined in the source, and different templates in the skin, look it up
                                template = templates[style][1]
                                itemheight = templates[style][0]
+                               if len(templates[style]) > 2:
+                                       selectionEnabled = templates[style][2]
 
                        self.content.setTemplate(template)
-
                        self.content.setItemHeight(itemheight)
+                       self.selectionEnabled = selectionEnabled
+                       self.active_style = style
index 7a89533..640121e 100644 (file)
@@ -77,6 +77,10 @@ class Listbox(Renderer, object):
        selection_enabled = property(lambda self: self.__selection_enabled, setSelectionEnabled)
 
        def changed(self, what):
+               if hasattr(self.source, "selectionEnabled"):
+                       self.selection_enabled = self.source.selectionEnabled
+               if len(what) > 1 and isinstance(what[1], str) and what[1] == "style":
+                       return
                self.content = self.source.content
 
        def entry_changed(self, index):
index 1eab32b..6f0670a 100644 (file)
@@ -91,8 +91,9 @@ to generate HTML."""
                return self.__style
 
        def setStyle(self, style):
-               self.__style = style
-               self.changed((self.CHANGED_SPECIFIC, "style"))
+               if self.__style != style:
+                       self.__style = style
+                       self.changed((self.CHANGED_SPECIFIC, "style"))
 
        style = property(getStyle, setStyle)