allow styleable TemplatedMultiContent lists
[enigma2.git] / lib / python / Components / Converter / RemainingToText.py
index 534fef1885183c930cd74b4a0c6e3ffcaffb677e..4249e30afefb8e8dd867281dc0079cb7e9917353 100644 (file)
@@ -1,19 +1,44 @@
 from Components.Converter.Converter import Converter
+from Components.Element import cached
 
 class RemainingToText(Converter, object):
-       def __init__(self, type, *args, **kwargs):
-               Converter.__init__(self)
+       DEFAULT = 0
+       WITH_SECONDS = 1
+       NO_SECONDS = 2
 
-       def getText(self):
+       def __init__(self, type):
+               Converter.__init__(self, type)
+               if type == "WithSeconds":
+                       self.type = self.WITH_SECONDS
+               elif type == "NoSeconds":
+                       self.type = self.NO_SECONDS
+               else:
+                       self.type = self.DEFAULT
 
-               r = self.source.time
-               if r is None:
+       @cached
+       def getText(self):
+               time = self.source.time
+               if time is None:
                        return ""
 
                (duration, remaining) = self.source.time
-               if remaining is not None:
-                       return "+%d min" % (remaining / 60)
+
+               if self.type == self.WITH_SECONDS:
+                       if remaining is not None:
+                               return "%d:%02d:%02d" % (remaining / 3600, (remaining / 60) - ((remaining / 3600) * 60), remaining % 60)
+                       else:
+                               return "%02d:%02d:%02d" % (duration / 3600, (duration / 60) - ((duration / 3600) * 60), duration % 60)
+               elif self.type == self.NO_SECONDS:
+                       if remaining is not None:
+                               return "+%d:%02d" % (remaining / 3600, (remaining / 60) - ((remaining / 3600) * 60))
+                       else:
+                               return "%02d:%02d" % (duration / 3600, (duration / 60) - ((duration / 3600) * 60))
+               elif self.type == self.DEFAULT:
+                       if remaining is not None:
+                               return "+%d min" % (remaining / 60)
+                       else:
+                               return "%d min" % (duration / 60)
                else:
-                       return "%d min" % (duration / 60)
+                       return "???"
 
        text = property(getText)