update all non-master listboxes when any listbox changes
[enigma2.git] / lib / python / Components / Converter / StringList.py
index 4199212a33f348bbe1494a95500e7adea357b464..213f08bc2984a4b471ebdae243f7df328105b2c3 100644 (file)
@@ -18,14 +18,21 @@ class StringList(Converter):
 
        def selectionChanged(self, index):
                self.source.selectionChanged(index)
 
        def selectionChanged(self, index):
                self.source.selectionChanged(index)
+
+       def setIndex(self, index):
                # update all non-master targets
                for x in self.downstream_elements:
                        if x is not self.master:
                                x.index = index
 
                # update all non-master targets
                for x in self.downstream_elements:
                        if x is not self.master:
                                x.index = index
 
+       def getIndex(self, index):
+               return None
+       
+       index = property(getIndex, setIndex)
+
        @cached
        def getCurrent(self):
        @cached
        def getCurrent(self):
-               if self.source is None:
+               if self.source is None or self.index is None or self.index >= len(self.source.list):
                        return None
                return self.source.list[self.index]
 
                        return None
                return self.source.list[self.index]
 
@@ -41,5 +48,8 @@ class StringList(Converter):
        def setIndex(self, index):
                if self.master is not None:
                        self.master.index = index
        def setIndex(self, index):
                if self.master is not None:
                        self.master.index = index
-       
+
        index = property(getIndex, setIndex)
        index = property(getIndex, setIndex)
+
+       def entry_changed(self, index):
+               self.downstream_elements.entry_changed(index)