hide progressbar when event is not valid
[enigma2.git] / lib / python / Components / Converter / EventTime.py
index 3c312a69e844bcfede9233963d91d0077f4b9980..d2b695d29be235bccbd4bde8fb9123ea30a4c664 100644 (file)
@@ -1,6 +1,7 @@
 from Converter import Converter
 from Poll import Poll
 from time import time
+from Components.Element import cached
 
 class EventTime(Poll, Converter, object):
        STARTTIME = 0
@@ -9,8 +10,8 @@ class EventTime(Poll, Converter, object):
        PROGRESS = 3
        DURATION = 4
 
-       def __init__(self, type, *args, **kwargs):
-               Converter.__init__(self)
+       def __init__(self, type):
+               Converter.__init__(self, type)
                Poll.__init__(self)
                if type == "EndTime":
                        self.type = self.ENDTIME
@@ -29,6 +30,7 @@ class EventTime(Poll, Converter, object):
                else:
                        raise str("'%s' is not <StartTime|EndTime|Remaining|Duration> for EventTime converter" % type)
 
+       @cached
        def getTime(self):
                assert self.type != self.PROGRESS
 
@@ -52,13 +54,19 @@ class EventTime(Poll, Converter, object):
                        else:
                                return (duration, None)
 
+       @cached
        def getValue(self):
                assert self.type == self.PROGRESS
 
                event = self.source.event
                if event is None:
+                       if len(self.downstream_elements) and self.downstream_elements[0].visible:
+                               self.downstream_elements[0].visible = False
                        return None
 
+               if len(self.downstream_elements) and not self.downstream_elements[0].visible:
+                       self.downstream_elements[0].visible = True
+
                now = int(time())
                start_time = event.getBeginTime()
                duration = event.getDuration()