X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ca49e976280c61bb862d03567ddf65dbce3d568c..15171632716c0734526eefc55e3d0601be177b45:/lib/python/Screens/EventView.py diff --git a/lib/python/Screens/EventView.py b/lib/python/Screens/EventView.py index 5d50d9bc..5d3786fb 100644 --- a/lib/python/Screens/EventView.py +++ b/lib/python/Screens/EventView.py @@ -1,17 +1,21 @@ from Screen import Screen from Screens.TimerEdit import TimerSanityConflict +from Screens.MessageBox import MessageBox from Components.ActionMap import ActionMap from Components.Button import Button from Components.Label import Label from Components.ScrollLabel import ScrollLabel from Components.TimerList import TimerList from enigma import eEPGCache, eTimer, eServiceReference -from RecordTimer import RecordTimerEntry, parseEvent +from RecordTimer import RecordTimerEntry, parseEvent, AFTEREVENT from TimerEntry import TimerEntry from time import localtime from Components.config import config class EventViewBase: + ADD_TIMER = 0 + REMOVE_TIMER = 1 + def __init__(self, Event, Ref, callback=None, similarEPGCB=None): self.similarEPGCB = similarEPGCB self.cbFunc = callback @@ -28,6 +32,7 @@ class EventViewBase: self.SimilarBroadcastTimer.callback.append(self.getSimilarEvents) else: self.SimilarBroadcastTimer = None + self.key_green_choice = self.ADD_TIMER if self.isRecording: self["key_green"] = Button("") else: @@ -59,8 +64,25 @@ class EventViewBase: if self.cbFunc is not None: self.cbFunc(self.setEvent, self.setService, +1) + def removeTimer(self, timer): + timer.afterEvent = AFTEREVENT.NONE + self.session.nav.RecordTimer.removeEntry(timer) + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER + def timerAdd(self): - if not self.isRecording: + event = self.event + serviceref = self.currentService + if event is None: + return + eventid = event.getEventId() + refstr = serviceref.ref.toString() + for timer in self.session.nav.RecordTimer.timer_list: + if timer.eit == eventid and timer.service_ref.ref.toString() == refstr: + cb_func = lambda ret : not ret or self.removeTimer(timer) + self.session.openWithCallback(cb_func, MessageBox, _("Do you really want to delete %s?") % event.getEventName()) + break + else: newEntry = RecordTimerEntry(self.currentService, checkOldTimers = True, *parseEvent(self.event)) self.session.openWithCallback(self.finishedAdd, TimerEntry, newEntry) @@ -76,7 +98,11 @@ class EventViewBase: self.session.nav.RecordTimer.record(entry) else: self.session.openWithCallback(self.finishSanityCorrection, TimerSanityConflict, simulTimerList) + self["key_green"].setText(_("Remove timer")) + self.key_green_choice = self.REMOVE_TIMER else: + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER print "Timeredit aborted" def finishSanityCorrection(self, answer): @@ -123,6 +149,22 @@ class EventViewBase: if self.SimilarBroadcastTimer is not None: self.SimilarBroadcastTimer.start(400,True) + serviceref = self.currentService + eventid = self.event.getEventId() + refstr = serviceref.ref.toString() + isRecordEvent = False + for timer in self.session.nav.RecordTimer.timer_list: + if timer.eit == eventid and timer.service_ref.ref.toString() == refstr: + isRecordEvent = True + break + if isRecordEvent and self.key_green_choice != self.REMOVE_TIMER: + self["key_green"].setText(_("Remove timer")) + self.key_green_choice = self.REMOVE_TIMER + elif not isRecordEvent and self.key_green_choice != self.ADD_TIMER: + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER + + def pageUp(self): self["epg_description"].pageUp()