diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-07-25 00:02:23 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-07-25 00:02:23 +0000 |
| commit | 3e67da39c881d9afc392162d802bc2ea4b0ec337 (patch) | |
| tree | 8b27f9689f0f953c876ed3ed6e6b99060be36c90 /skin.py | |
| parent | 9bcc599fba7204b53fc24f2ce7357fe0a85f0dc4 (diff) | |
| download | enigma2-3e67da39c881d9afc392162d802bc2ea4b0ec337.tar.gz enigma2-3e67da39c881d9afc392162d802bc2ea4b0ec337.zip | |
try to reuse available converter
Diffstat (limited to 'skin.py')
| -rw-r--r-- | skin.py | 19 |
1 files changed, 16 insertions, 3 deletions
@@ -5,6 +5,8 @@ from Tools.Import import my_import import os from Components.config import ConfigSubsection, configElement, configText, config +from Components.Element import Element +from Components.Converter.Converter import Converter from Tools.XMLTools import elementsWithTag, mergeText @@ -336,11 +338,22 @@ def readSkin(screen, skin, name, desktop): for converter in elementsWithTag(widget.childNodes, "convert"): ctype = converter.getAttribute('type') assert ctype, "'convert'-tag needs a 'type'-attribute" - converter_class = my_import('.'.join(["Components", "Converter", ctype])).__dict__.get(ctype) parms = mergeText(converter.childNodes).strip() - c = converter_class(parms) + converter_class = my_import('.'.join(["Components", "Converter", ctype])).__dict__.get(ctype) - c.connect(source) + c = None + + for i in source.downstream_elements: + if isinstance(i, converter_class) and i.converter_arguments == parms: + c = i + + if c is None: + print "allocating new converter!" + c = converter_class(parms) + c.connect(source) + else: + print "reused conveter!" + source = c renderer_class = my_import('.'.join(["Components", "Renderer", wrender])).__dict__.get(wrender) |
