From: Felix Domke Date: Mon, 24 Jul 2006 23:56:06 +0000 (+0000) Subject: support only one upstream element (source) X-Git-Tag: 2.6.0~3122 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/9bcc599fba7204b53fc24f2ce7357fe0a85f0dc4 support only one upstream element (source) --- diff --git a/lib/python/Components/Element.py b/lib/python/Components/Element.py index 5b8bed86..884c87d3 100644 --- a/lib/python/Components/Element.py +++ b/lib/python/Components/Element.py @@ -7,7 +7,6 @@ from Tools.CList import CList class Element: def __init__(self): self.downstream_elements = CList() - self.upstream_elements = CList() self.master = None self.source = None @@ -17,8 +16,8 @@ class Element: self.master = downstream def connectUpstream(self, upstream): - self.upstream_elements.append(upstream) - self.source = upstream # for single-source elements (i.e., most of them.) + assert self.source is None + self.source = upstream self.changed() def connect(self, upstream): @@ -30,10 +29,7 @@ class Element: # we should not disconnect from upstream if # there are still elements depending on us. assert len(self.downstream_elements) == 0, "there are still downstream elements left" - - # disconnect all upstream elements from us - for upstream in self.upstream_elements: - upstream.disconnectDownstream(self) + self.source.disconnectDownstream(self) def disconnectDownstream(self, downstream): self.downstream_elements.remove(downstream) @@ -46,3 +42,7 @@ class Element: # default action: push downstream def changed(self, *args, **kwargs): self.downstream_elements.changed(*args, **kwargs) + + def reconnectUpstream(self, new_upstream): + assert self.source is not None + self.source = new_upstream diff --git a/lib/python/Components/Renderer/Listbox.py b/lib/python/Components/Renderer/Listbox.py index fb787bfa..ab696c23 100644 --- a/lib/python/Components/Renderer/Listbox.py +++ b/lib/python/Components/Renderer/Listbox.py @@ -50,7 +50,7 @@ class Listbox(Renderer, object): wrap_around = property(lambda self: self.__wrap_around, setWrapAround) def selectionChanged(self): - self.upstream_elements.selectionChanged(self.index) + self.source.selectionChanged(self.index) def getIndex(self): if self.instance is None: