X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/194615a88fac0c4259b3c2217c8e13372b7c3b86..57794b7710b06a1dcc156a91c84bb8316f104f06:/lib/python/Components/Sources/Boolean.py diff --git a/lib/python/Components/Sources/Boolean.py b/lib/python/Components/Sources/Boolean.py index 21c2c2b9..2364f6d9 100644 --- a/lib/python/Components/Sources/Boolean.py +++ b/lib/python/Components/Sources/Boolean.py @@ -10,13 +10,14 @@ from enigma import eTimer # screen could use your expression, please put your calculation # into a seperate Source, providing a "boolean"-property. class Boolean(Source, object): - def __init__(self, fixed = False, function = None, poll = 0): + def __init__(self, fixed = False, function = None, destroy = None, poll = 0): Source.__init__(self) self.function = function self.fixed = fixed + self.post_destroy = destroy if poll > 0: self.poll_timer = eTimer() - self.poll_timer.timeout.get().append(self.poll) + self.poll_timer.callback.append(self.poll) self.poll_timer.start(poll) else: self.poll_timer = None @@ -28,11 +29,20 @@ class Boolean(Source, object): else: return self.fixed - boolean = property(getBoolean) + def setBoolean(self, value): + assert self.function is None + self.fixed = value + self.poll() + + boolean = property(getBoolean, setBoolean) def poll(self): self.changed((self.CHANGED_ALL,)) def destroy(self): if self.poll_timer: - self.poll_timer.timeout.get().remove(self.poll) + self.poll_timer.callback.remove(self.poll) + if self.post_destroy is not None: + self.fixed = self.post_destroy + self.poll() + Source.destroy(self)