diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2008-02-13 22:23:29 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2008-02-13 22:23:29 +0000 |
| commit | 194615a88fac0c4259b3c2217c8e13372b7c3b86 (patch) | |
| tree | d3ed38612b97b375d4d6b089148ab43267685a4d /lib/python/Components | |
| parent | 829ad562bb09e7e396320cd902263ec8b73f89dd (diff) | |
| download | enigma2-194615a88fac0c4259b3c2217c8e13372b7c3b86.tar.gz enigma2-194615a88fac0c4259b3c2217c8e13372b7c3b86.zip | |
implement proper 'destroy' functions in Converter
Diffstat (limited to 'lib/python/Components')
| -rw-r--r-- | lib/python/Components/Converter/ConditionalShowHide.py | 6 | ||||
| -rw-r--r-- | lib/python/Components/Converter/Poll.py | 2 | ||||
| -rw-r--r-- | lib/python/Components/Element.py | 9 | ||||
| -rw-r--r-- | lib/python/Components/Sources/Boolean.py | 6 | ||||
| -rw-r--r-- | lib/python/Components/Sources/Clock.py | 3 | ||||
| -rw-r--r-- | lib/python/Components/Sources/FrontendStatus.py | 3 |
6 files changed, 27 insertions, 2 deletions
diff --git a/lib/python/Components/Converter/ConditionalShowHide.py b/lib/python/Components/Converter/ConditionalShowHide.py index d2e89ba4..50e8b1a8 100644 --- a/lib/python/Components/Converter/ConditionalShowHide.py +++ b/lib/python/Components/Converter/ConditionalShowHide.py @@ -11,6 +11,8 @@ class ConditionalShowHide(Converter, object): self.blinktime = 500 self.timer = eTimer() self.timer.timeout.get().append(self.blinkFunc) + else: + self.timer = None def blinkFunc(self): if self.blinking == True: @@ -56,3 +58,7 @@ class ConditionalShowHide(Converter, object): self.stopBlinking() else: downstream.visible = self.calcVisibility() + + def destroy(self): + if self.timer: + self.timer.timeout.get().remove(self.blinkFunc) diff --git a/lib/python/Components/Converter/Poll.py b/lib/python/Components/Converter/Poll.py index 060c12ea..f41765d4 100644 --- a/lib/python/Components/Converter/Poll.py +++ b/lib/python/Components/Converter/Poll.py @@ -29,3 +29,5 @@ class Poll(object): if not suspended: self.poll() + def destroy(self): + self.__poll_timer.timeout.get().remove(self.poll) diff --git a/lib/python/Components/Element.py b/lib/python/Components/Element.py index baab4cfb..437d934b 100644 --- a/lib/python/Components/Element.py +++ b/lib/python/Components/Element.py @@ -48,11 +48,13 @@ class Element(object): # 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" - + # Sources don't have a source themselves. don't do anything here. if self.source is not None: self.source.disconnectDownstream(self) - + # sources are owned by the Screen, so don't destroy them here. + self.destroy() + def disconnectDownstream(self, downstream): self.downstream_elements.remove(downstream) if self.master == downstream: @@ -89,3 +91,6 @@ class Element(object): def doSuspend(self, suspend): pass + + def destroy(self): + pass diff --git a/lib/python/Components/Sources/Boolean.py b/lib/python/Components/Sources/Boolean.py index df7f81b2..21c2c2b9 100644 --- a/lib/python/Components/Sources/Boolean.py +++ b/lib/python/Components/Sources/Boolean.py @@ -18,6 +18,8 @@ class Boolean(Source, object): self.poll_timer = eTimer() self.poll_timer.timeout.get().append(self.poll) self.poll_timer.start(poll) + else: + self.poll_timer = None @cached def getBoolean(self): @@ -30,3 +32,7 @@ class Boolean(Source, object): def poll(self): self.changed((self.CHANGED_ALL,)) + + def destroy(self): + if self.poll_timer: + self.poll_timer.timeout.get().remove(self.poll) diff --git a/lib/python/Components/Sources/Clock.py b/lib/python/Components/Sources/Clock.py index 8341ebec..b59a20d5 100644 --- a/lib/python/Components/Sources/Clock.py +++ b/lib/python/Components/Sources/Clock.py @@ -26,3 +26,6 @@ class Clock(Source): else: self.clock_timer.start(1000) self.poll() + + def destroy(self): + self.clock_timer.timeout.get().remove(self.poll) diff --git a/lib/python/Components/Sources/FrontendStatus.py b/lib/python/Components/Sources/FrontendStatus.py index 5e096186..4d38f754 100644 --- a/lib/python/Components/Sources/FrontendStatus.py +++ b/lib/python/Components/Sources/FrontendStatus.py @@ -47,3 +47,6 @@ class FrontendStatus(Source): else: self.poll_timer.start(self.update_interval) + def destroy(self): + self.poll_timer.timeout.get().remove(self.updateFrontendStatus) + |
