X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/b0b879fc60e616e2e79de61f277d174a57bbc01d..f097c3b368c10b7c88f63038459c4c5a38889a1f:/lib/python/Components/TimerList.py diff --git a/lib/python/Components/TimerList.py b/lib/python/Components/TimerList.py index 793bed4c..f55c9b1b 100644 --- a/lib/python/Components/TimerList.py +++ b/lib/python/Components/TimerList.py @@ -2,9 +2,11 @@ from HTMLComponent import * 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 @@ -20,20 +22,48 @@ RT_WRAP = 32 # # | | -# | | +# | | # -def TimerEntry(timer, processed): +def TimerEntryComponent(timer, processed): res = [ timer ] + 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: + flags = timer.repeated + count = 0 + for x in range(0, 7): + if (flags & 1 == 1): + if (count != 0): + repeatedtext += ", " + repeatedtext += days[x] + count += 1 + flags = flags >> 1 + res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 50, 400, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, repeatedtext + (" %s ... %s" % (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 ... %s" % (FuzzyTime(timer.begin) + FuzzyTime(timer.end)[1:])))) - res.append((0, 0, 400, 30, 0, RT_HALIGN_LEFT, timer.service_ref.getServiceName())) - res.append((0, 30, 200, 20, 1, RT_HALIGN_LEFT, "%s, %s" % FuzzyTime(timer.begin))) - - res.append((200, 0, 200, 20, 1, RT_HALIGN_RIGHT, timer.description)) - if processed: - res.append((200, 30, 200, 20, 1, RT_HALIGN_RIGHT, FuzzyTime(timer.end)[1])) + if not processed: + if timer.state == TimerEntry.StateWaiting: + state = "waiting" + elif timer.state == TimerEntry.StatePrepared: + state = "about to start" + elif timer.state == TimerEntry.StateRunning: + state = "recording..." + else: + state = "" else: - res.append((200, 30, 200, 20, 1, RT_HALIGN_RIGHT, "done")) + state = "done!" + + 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 class TimerList(HTMLComponent, GUIComponent): @@ -41,8 +71,8 @@ class TimerList(HTMLComponent, GUIComponent): GUIComponent.__init__(self) self.l = eListboxPythonMultiContent() self.l.setList(list) - self.l.setFont(0, gFont("Arial", 20)) - self.l.setFont(1, gFont("Arial", 18)) + self.l.setFont(0, gFont("Regular", 20)) + self.l.setFont(1, gFont("Regular", 18)) def getCurrent(self): return self.l.getCurrentSelection() @@ -50,10 +80,21 @@ 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 + def invalidate(self): + self.l.invalidate()