git.cweiske.de
/
enigma2.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
ba3ca76
)
add possibility to disable/enable listbox selection in multicontent templates
author
ghost
<andreas.monzner@multimedia-labs.de>
Thu, 11 Feb 2010 22:12:47 +0000
(23:12 +0100)
committer
ghost
<andreas.monzner@multimedia-labs.de>
Wed, 31 Mar 2010 09:04:14 +0000
(11:04 +0200)
fixes bug #443
lib/python/Components/Converter/TemplatedMultiContent.py
patch
|
blob
|
history
lib/python/Components/Renderer/Listbox.py
patch
|
blob
|
history
lib/python/Components/Sources/List.py
patch
|
blob
|
history
diff --git
a/lib/python/Components/Converter/TemplatedMultiContent.py
b/lib/python/Components/Converter/TemplatedMultiContent.py
index b86d94bf5ad3c4c8555a51e713b8b9cb8e5b7168..b5a9844931378cb950ac3e7a35f86ec62b9d8bb4 100644
(file)
--- a/
lib/python/Components/Converter/TemplatedMultiContent.py
+++ b/
lib/python/Components/Converter/TemplatedMultiContent.py
@@
-10,8
+10,8
@@
class TemplatedMultiContent(StringList):
del l["self"] # cleanup locals a bit
del l["args"]
del l["self"] # cleanup locals a bit
del l["args"]
- self.template = eval(args, {}, l)
self.active_style = None
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
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()
if not self.content:
from enigma import eListboxPythonMultiContent
self.content = eListboxPythonMultiContent()
- self.setTemplate()
# also setup fonts (also given by source)
index = 0
# 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":
# 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.content.setList(self.source.list)
- self.setTemplate()
+ self.setTemplate()
self.downstream_elements.changed(what)
def setTemplate(self):
if self.source:
style = self.source.style
self.downstream_elements.changed(what)
def setTemplate(self):
if self.source:
style = self.source.style
+
if style == self.active_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"]
# 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 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.setTemplate(template)
-
self.content.setItemHeight(itemheight)
self.content.setItemHeight(itemheight)
+ self.selectionEnabled = selectionEnabled
+ self.active_style = style
diff --git
a/lib/python/Components/Renderer/Listbox.py
b/lib/python/Components/Renderer/Listbox.py
index 7a895330aa2381f8cc03d5c6348e346096cdabee..640121e1ff97a7ac92cb6ece3e26ed1602dfd3b8 100644
(file)
--- a/
lib/python/Components/Renderer/Listbox.py
+++ b/
lib/python/Components/Renderer/Listbox.py
@@
-77,6
+77,10
@@
class Listbox(Renderer, object):
selection_enabled = property(lambda self: self.__selection_enabled, setSelectionEnabled)
def changed(self, what):
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):
self.content = self.source.content
def entry_changed(self, index):
diff --git
a/lib/python/Components/Sources/List.py
b/lib/python/Components/Sources/List.py
index 1eab32b22db1314cf0ba458b6fa11378592038ce..6f0670a1f6f059d8485d0c0016c8a79847ce7cd8 100644
(file)
--- a/
lib/python/Components/Sources/List.py
+++ b/
lib/python/Components/Sources/List.py
@@
-91,8
+91,9
@@
to generate HTML."""
return self.__style
def setStyle(self, style):
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)
style = property(getStyle, setStyle)