- "red": self.beginFocus,
- "yellow": self.endFocus
- })
-
- self.entry = entry
- # begin, end, description, service
- self["begin"] = TimeInput()
- self["end"] = TimeInput()
-
- self["lbegin"] = Label("Begin")
- self["lend"] = Label("End")
-
- self["description"] = Label("bla")
-# TextInput()
- self["apply"] = Button("Apply")
- self["service"] = Button()
-
- def beginFocus(self):
- self.setFocus(self["begin"])
+ "ok": self.openEdit,
+ "cancel": self.leave,
+ "red": self.removeTimerQuestion,
+ "green": self.addCurrentTimer,
+ "blue": self.cleanupQuestion,
+ "yellow": self.toggleDisabledState,
+ "log": self.showLog,
+ "left": self.left,
+ "right": self.right,
+ "up": self.up,
+ "down": self.down
+ }, -1)
+ self.session.nav.RecordTimer.on_state_change.append(self.onStateChange)
+ self.onShown.append(self.updateState)
+
+ def up(self):
+ self["timerlist"].instance.moveSelection(self["timerlist"].instance.moveUp)
+ self.updateState()
+
+ def down(self):
+ self["timerlist"].instance.moveSelection(self["timerlist"].instance.moveDown)
+ self.updateState()
+
+ def left(self):
+ self["timerlist"].instance.moveSelection(self["timerlist"].instance.pageUp)
+ self.updateState()
+
+ def right(self):
+ self["timerlist"].instance.moveSelection(self["timerlist"].instance.pageDown)
+ self.updateState()
+
+ def toggleDisabledState(self):
+ cur=self["timerlist"].getCurrent()
+ if cur:
+ t = cur
+
+ if t.disabled:
+ t.enable()
+ self.session.nav.RecordTimer.timeChanged(t)
+
+ else:
+ if t.isRunning() and t.repeated:
+ list = []
+ list.append((_("Stop current event but not coming events"), "stoponlycurrent"))
+ list.append((_("Stop current event and disable coming events"), "stopall"))
+ list.append((_("Don't stop current event but disable coming events"), "stoponlycoming"))
+ self.session.openWithCallback(boundFunction(self.runningEventCallback, t), ChoiceBox, title=_("Repeating event currently recording... What do you want to do?"), list = list)
+ else:
+ t.disable()
+ self.session.nav.RecordTimer.timeChanged(t)
+ self.updateState()
+ self.refill()
+
+ 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?"))