fix bug in EpgList.py (line 79, in getCurrent .. TypeError: unscribtable object)
[enigma2.git] / lib / python / Components / TimerList.py
index e48b7a0dd304a9fc43898d643c9e7a801a4d19af..bdc749e435a6d935a172300d4235db9bc82b00c5 100644 (file)
@@ -4,8 +4,9 @@ from GUIComponent import *
 from Tools.FuzzyDate import FuzzyTime
 import time
 
-from enigma import eListboxPythonMultiContent, eListbox, gFont
+from enigma import eListboxPythonMultiContent, eListbox, gFont, loadPNG
 from timer import TimerEntry
+from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE
 
 RT_HALIGN_LEFT = 0
 RT_HALIGN_RIGHT = 1
@@ -26,10 +27,12 @@ RT_WRAP = 32
 def TimerEntryComponent(timer, processed):
        res = [ timer ]
        
-       res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 220, 30, 0, RT_HALIGN_LEFT, timer.service_ref.getServiceName()))
+       res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 560, 30, 0, RT_HALIGN_LEFT|RT_VALIGN_CENTER, timer.service_ref.getServiceName()))
+       res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 30, 560, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, timer.name))
+       
        repeatedtext = ""
-       days = [ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" ]
-       if (timer.repeated != 0):
+       days = [ _("Mon"), _("Tue"), _("Wed"), _("Thu"), _("Fri"), _("Sat"), _("Sun") ]
+       if timer.repeated:
                flags = timer.repeated
                count = 0
                for x in range(0, 7):
@@ -39,25 +42,36 @@ def TimerEntryComponent(timer, processed):
                                        repeatedtext += days[x]
                                        count += 1
                                flags = flags >> 1
-               res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 30, 300, 20, 1, RT_HALIGN_LEFT, repeatedtext + (" %s ... %s" % (FuzzyTime(timer.begin)[1], FuzzyTime(timer.end)[1]))))
+               if timer.justplay:
+                       res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 50, 400, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, repeatedtext + ((" %s "+ _("(ZAP)")) % (FuzzyTime(timer.begin)[1], FuzzyTime(timer.end)[1]))))
+               else:
+                       res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 50, 400, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, repeatedtext + ((" %s ... %s (%d " + _("mins") + ")") % (FuzzyTime(timer.begin)[1], FuzzyTime(timer.end)[1], (timer.end - timer.begin) / 60))))
        else:
-               res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 30, 300, 20, 1, RT_HALIGN_LEFT, repeatedtext + ("%s, %s ... %s" % (FuzzyTime(timer.begin) + FuzzyTime(timer.end)[1:]))))
+               if timer.justplay:
+                       res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 50, 400, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, repeatedtext + (("%s, %s " + _("(ZAP)")) % (FuzzyTime(timer.begin)))))
+               else:
+                       res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 50, 400, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, repeatedtext + (("%s, %s ... %s (%d " + _("mins") + ")") % (FuzzyTime(timer.begin) + FuzzyTime(timer.end)[1:] + ((timer.end - timer.begin) / 60,)))))
 
-       res.append((eListboxPythonMultiContent.TYPE_TEXT, 240, 0, 320, 20, 1, RT_HALIGN_RIGHT, timer.name))
-       
        if not processed:
-               if timer.state == TimerEntry.StateWait:
-                       state = "waiting"
-               elif timer.state == TimerEntry.StatePrepare:
-                       state = "about to start"
+               if timer.state == TimerEntry.StateWaiting:
+                       state = _("waiting")
+               elif timer.state == TimerEntry.StatePrepared:
+                       state = _("about to start")
                elif timer.state == TimerEntry.StateRunning:
-                       state = "recording..."
+                       if timer.justplay:
+                               state = _("zapped")
+                       else:
+                               state = _("recording...")
                else:
-                       state = "<unknown>"
+                       state = _("<unknown>")
        else:
-               state = "done!"
+               state = _("done!")
        
-       res.append((eListboxPythonMultiContent.TYPE_TEXT, 320, 30, 240, 20, 1, RT_HALIGN_RIGHT, state))
+       res.append((eListboxPythonMultiContent.TYPE_TEXT, 320, 50, 240, 20, 1, RT_HALIGN_RIGHT|RT_VALIGN_CENTER, state))
+
+       if timer.disabled:
+               png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "redx.png"))
+               res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 490, 5, 40, 40, png))
        
        return res
 
@@ -75,8 +89,17 @@ class TimerList(HTMLComponent, GUIComponent):
        def GUIcreate(self, parent):
                self.instance = eListbox(parent)
                self.instance.setContent(self.l)
-               self.instance.setItemHeight(50)
-       
+               self.instance.setItemHeight(70)
+
+       def moveToIndex(self, index):
+               self.instance.moveSelectionTo(index)
+
+       def getCurrentIndex(self):
+               return self.instance.getCurrentIndex()
+
+       def moveDown(self):
+               self.instance.moveSelection(self.instance.moveDown)
+
        def GUIdelete(self):
                self.instance.setContent(None)
                self.instance = None