+ print "finished add"
+ if answer[0]:
+ entry = answer[1]
+ simulTimerList = self.session.nav.RecordTimer.record(entry)
+ if simulTimerList is not None:
+ if (len(simulTimerList) == 2) and (simulTimerList[1].dontSave) and (simulTimerList[1].autoincrease):
+ simulTimerList[1].end = entry.begin - 30
+ self.session.nav.RecordTimer.timeChanged(simulTimerList[1])
+ self.session.nav.RecordTimer.record(entry)
+ else:
+ self.session.openWithCallback(self.finishSanityCorrection, TimerSanityConflict, simulTimerList)
+ self.fillTimerList()
+ self.updateState()
+ else:
+ print "Timeredit aborted"
+
+ def finishSanityCorrection(self, answer):
+ self.finishedAdd(answer)
+
+ def leave(self):
+ self.session.nav.RecordTimer.on_state_change.remove(self.onStateChange)
+ self.close()
+
+ def onStateChange(self, entry):
+ self.refill()
+ self.updateState()
+
+class TimerSanityConflict(Screen):
+ def __init__(self, session, timer):
+ Screen.__init__(self, session)
+ self.timer = timer
+ print "TimerSanityConflict"
+
+ self["timer1"] = TimerList(self.getTimerList(timer[0]))
+ self.list = []
+ self.list2 = []
+ count = 0
+ for x in timer:
+ if count != 0:
+ self.list.append((_("Conflicting timer") + " " + str(count), x))
+ self.list2.append((timer[count], False))
+ count += 1
+
+ self["list"] = MenuList(self.list)
+ self["timer2"] = TimerList(self.list2)
+
+ self["key_red"] = Button("Edit")
+ self["key_green"] = Button("")
+ self["key_yellow"] = Button("Edit")
+ self["key_blue"] = Button("")
+
+ self["actions"] = ActionMap(["OkCancelActions", "DirectionActions", "ShortcutActions", "TimerEditActions"],
+ {
+ "ok": self.leave_ok,
+ "cancel": self.leave_cancel,
+ "red": self.editTimer1,
+ "green": self.toggleTimer1,
+ "yellow": self.editTimer2,
+ "blue": self.toggleTimer2,
+ #"log": self.showLog,
+ #"left": self.left,
+ #"right": self.right,
+ "up": self.up,
+ "down": self.down
+ }, -1)
+ self.onShown.append(self.updateState)
+
+ def getTimerList(self, timer):
+ return [(timer, False)]
+
+ def editTimer1(self):
+ self.session.openWithCallback(self.finishedEdit, TimerEntry, self["timer1"].getCurrent())
+
+ def toggleTimer1(self):
+ if self.timer[0].disabled:
+ self.timer[0].disabled = False
+ else:
+ if not self.timer[0].isRunning():
+ self.timer[0].disabled = True
+ self.finishedEdit((True, self.timer[0]))
+
+ def editTimer2(self):
+ self.session.openWithCallback(self.finishedEdit, TimerEntry, self["timer2"].getCurrent())
+
+ def toggleTimer2(self):
+ x = self["list"].getSelectedIndex() + 1 # the first is the new timer so we do +1 here
+ if self.timer[x].disabled:
+ self.timer[x].disabled = False
+ elif not self.timer[x].isRunning():
+ self.timer[x].disabled = True
+ self.finishedEdit((True, self.timer[0]))
+
+ def finishedEdit(self, answer):
+ self.leave_ok()
+
+ def leave_ok(self):
+ self.close((True, self.timer[0]))
+
+ def leave_cancel(self):
+ self.close((False, self.timer[0]))
+
+ def up(self):
+ self["list"].instance.moveSelection(self["list"].instance.moveUp)
+ self["timer2"].moveToIndex(self["list"].getSelectedIndex())
+
+ def down(self):
+ self["list"].instance.moveSelection(self["list"].instance.moveDown)
+ self["timer2"].moveToIndex(self["list"].getSelectedIndex())
+
+ def updateState(self):
+ if self.timer[0] is not None:
+ green_text = self["key_green"].getText()
+ if self.timer[0].disabled and green_text != _("Enable"):
+ self["actions"].actions.update({"green":self.toggleTimer1})
+ self["key_green"].setText(_("Enable"))
+ self["key_green"].instance.invalidate()
+ elif self.timer[0].isRunning() and green_text != "":
+ del self["actions"].actions["green"]
+ self["key_green"].setText("")
+ self["key_green"].instance.invalidate()
+ elif not self.timer[0].disabled and green_text != _("Disable"):
+ self["actions"].actions.update({"green":self.toggleTimer1})
+ self["key_green"].setText(_("Disable"))
+ self["key_green"].instance.invalidate()
+ if len(self.timer) > 1:
+ x = self["list"].getSelectedIndex()
+ if self.timer[x] is not None:
+ blue_text = self["key_blue"].getText()
+ if self.timer[x].disabled and blue_text != _("Enable"):
+ self["actions"].actions.update({"blue":self.toggleTimer2})
+ self["key_blue"].setText(_("Enable"))
+ self["key_blue"].instance.invalidate()
+ elif self.timer[x].isRunning() and blue_text != "":
+ del self["actions"].actions["blue"]
+ self["key_blue"].setText("")
+ self["key_blue"].instance.invalidate()
+ elif not self.timer[x].disabled and blue_text != _("Disable"):
+ self["actions"].actions.update({"blue":self.toggleTimer2})
+ self["key_blue"].setText(_("Disable"))
+ self["key_blue"].instance.invalidate()