X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ee0903f520403c5e03caef287f813e7b062d05ab..c3f3135726277c4030e0049fc6ab774ba81c706a:/lib/python/Components/Converter/StringList.py diff --git a/lib/python/Components/Converter/StringList.py b/lib/python/Components/Converter/StringList.py index 31dbcd3c..5d02e9ba 100644 --- a/lib/python/Components/Converter/StringList.py +++ b/lib/python/Components/Converter/StringList.py @@ -1,33 +1,38 @@ from Converter import Converter from enigma import eListboxPythonStringContent - +from Components.Element import cached class StringList(Converter): """Turns a simple python list into a list which can be used in a listbox.""" - def __init__(self, *args, **kwargs): - Converter.__init__(self) + def __init__(self, type): + Converter.__init__(self, type) + self.content = None + + def changed(self, what): + if not self.content: + self.content = eListboxPythonStringContent() - def changed(self): - self.content = eListboxPythonStringContent() if self.source: self.content.setList(self.source.list) - self.downstream_elements.changed() + self.downstream_elements.changed(what) def selectionChanged(self, index): - self.upstream_elements.selectionChanged(index) + self.source.selectionChanged(index) # update all non-master targets for x in self.downstream_elements: if x is not self.master: x.index = index + @cached def getCurrent(self): - if self.source is None: + if self.source is None or self.index >= len(self.source.list): return None return self.source.list[self.index] current = property(getCurrent) # pass through: getIndex / setIndex to master + @cached def getIndex(self): if self.master is None: return None @@ -36,5 +41,5 @@ class StringList(Converter): def setIndex(self, index): if self.master is not None: self.master.index = index - + index = property(getIndex, setIndex)