+ def runningEventCallback(self, t, result):
+ if result is not None:
+ if result[1] == "stoponlycurrent" or result[1] == "stopall":
+ t.enable()
+ t.processRepeated(findRunningEvent = False)
+ self.session.nav.RecordTimer.doActivate(t)
+ if result[1] == "stoponlycoming" or result[1] == "stopall":
+ t.disable()
+ self.session.nav.RecordTimer.timeChanged(t)
+
+ self.updateState()
+ self.refill()
+
+ def updateState(self):
+ if len(self.list) > 0:
+ if self["timerlist"].getCurrent().disabled:
+ self["key_yellow"].setText(_("Enable"))
+ else:
+ self["key_yellow"].setText(_("Disable"))
+ self["key_yellow"].instance.invalidate()
+
+ def fillTimerList(self):
+ del self.list[:]
+
+ for timer in self.session.nav.RecordTimer.timer_list:
+ self.list.append((timer, False))
+
+ for timer in self.session.nav.RecordTimer.processed_timers:
+ self.list.append((timer, True))
+ self.list.sort(cmp = lambda x, y: x[0].begin < y[0].begin)
+
+ def showLog(self):
+ cur=self["timerlist"].getCurrent()
+ if cur:
+ self.session.openWithCallback(self.finishedEdit, TimerLog, cur)
+
+ def openEdit(self):
+ cur=self["timerlist"].getCurrent()
+ if cur:
+ self.session.openWithCallback(self.finishedEdit, TimerEntry, cur)
+
+ def cleanupQuestion(self):
+ self.session.openWithCallback(self.cleanupTimer, MessageBox, _("Really delete done timers?"))
+
+ def cleanupTimer(self, delete):
+ if delete:
+ self.session.nav.RecordTimer.cleanup()
+ self.refill()
+
+ def removeTimerQuestion(self):
+ if not self["timerlist"].getCurrent():
+ return
+ self.session.openWithCallback(self.removeTimer, MessageBox, _("Really delete this timer?"))
+
+ def removeTimer(self, result):
+ if not result:
+ return
+ list = self["timerlist"]
+ cur = list.getCurrent()
+ if cur:
+ timer = cur
+ timer.afterEvent = AFTEREVENT.NONE
+ self.session.nav.RecordTimer.removeEntry(timer)
+ self.refill()
+
+ def refill(self):
+ oldsize = len(self.list)
+ self.fillTimerList()
+ lst = self["timerlist"]
+ newsize = len(self.list)
+ if oldsize and oldsize != newsize:
+ idx = lst.getCurrentIndex()
+ lst.entryRemoved(idx)
+ else:
+ lst.invalidate()
+
+ def addCurrentTimer(self):
+ event = None
+ service = self.session.nav.getCurrentService()
+ if service is not None:
+ info = service.info()
+ if info is not None:
+ event = info.getEvent(0)