X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/6d7673190e7fec573aed8e15e98d470cd4189d52..33d3f132bc35d60fecd89aff87069889c4930e9d:/lib/python/Screens/TimerEntry.py diff --git a/lib/python/Screens/TimerEntry.py b/lib/python/Screens/TimerEntry.py index c548e153..faf4f304 100644 --- a/lib/python/Screens/TimerEntry.py +++ b/lib/python/Screens/TimerEntry.py @@ -1,15 +1,13 @@ from Screen import Screen import ChannelSelection from ServiceReference import ServiceReference -from Components.config import ConfigSelection, ConfigText, ConfigSubList, ConfigSubsection, ConfigDateTime, ConfigClock, ConfigYesNo, getConfigListEntry -from Components.ActionMap import ActionMap, NumberActionMap -from Components.ConfigList import ConfigList, ConfigListScreen +from Components.config import ConfigSelection, ConfigText, ConfigSubList, ConfigDateTime, ConfigClock, ConfigYesNo, getConfigListEntry +from Components.ActionMap import NumberActionMap +from Components.ConfigList import ConfigListScreen from Components.MenuList import MenuList from Components.Button import Button -from Components.NimManager import nimmanager from Components.Label import Label from Components.Pixmap import Pixmap -from Screens.MessageBox import MessageBox from Screens.ChoiceBox import ChoiceBox from RecordTimer import AFTEREVENT from enigma import eEPGCache @@ -21,6 +19,10 @@ class TimerEntry(Screen, ConfigListScreen): Screen.__init__(self, session) self.timer = timer + self.entryStartDate = None + self.entryEndDate = None + self.entryService = None + self["oktext"] = Label(_("OK")) self["canceltext"] = Label(_("Cancel")) self["ok"] = Pixmap() @@ -79,8 +81,8 @@ class TimerEntry(Screen, ConfigListScreen): weekday = (int(time.strftime("%w", time.localtime(self.timer.begin))) - 1) % 7 day[weekday] = 1 - self.timerentry_justplay = ConfigSelection(choices = [("zap", _("zap")), ("record", _("record"))], default = {0: "record", 1: "record"}[justplay]) - self.timerentry_afterevent = ConfigSelection(choices = [("nothing", _("do nothing")), ("deepstandby", _("go to deep standby"))], default = afterevent) + self.timerentry_justplay = ConfigSelection(choices = [("zap", _("zap")), ("record", _("record"))], default = {0: "record", 1: "zap"}[justplay]) + self.timerentry_afterevent = ConfigSelection(choices = [("nothing", _("do nothing")), ("standby", _("go to standby")), ("deepstandby", _("go to deep standby"))], default = afterevent) self.timerentry_type = ConfigSelection(choices = [("once",_("once")), ("repeated", _("repeated"))], default = type) self.timerentry_name = ConfigText(default = self.timer.name, fixed_size = False) self.timerentry_description = ConfigText(default = self.timer.description, fixed_size = False) @@ -88,10 +90,12 @@ class TimerEntry(Screen, ConfigListScreen): self.timerentry_repeated = ConfigSelection(default = repeated, choices = [("daily", _("daily")), ("weekly", _("weekly")), ("weekdays", _("Mon-Fri")), ("user", _("user defined"))]) self.timerentry_startdate = ConfigDateTime(default = self.timer.begin, formatstring = _("%d.%B %Y"), increment = 86400) - self.timerentry_starttime = ConfigClock(default = [int(time.strftime("%H", time.localtime(self.timer.begin))), int(time.strftime("%M", time.localtime(self.timer.begin)))]) + self.timerentry_starttime = ConfigClock(default = self.timer.begin) self.timerentry_enddate = ConfigDateTime(default = self.timer.end, formatstring = _("%d.%B %Y"), increment = 86400) - self.timerentry_endtime = ConfigClock(default = [int(time.strftime("%H", time.localtime(self.timer.end))), int(time.strftime("%M", time.localtime(self.timer.end)))]) + self.timerentry_endtime = ConfigClock(default = self.timer.end) + + self.timerentry_repeatedbegindate = ConfigDateTime(default = self.timer.repeatedbegindate, formatstring = _("%d.%B %Y"), increment = 86400) self.timerentry_weekday = ConfigSelection(default = weekday_table[weekday], choices = [("mon",_("Monday")), ("tue", _("Tuesday")), ("wed",_("Wednesday")), ("thu", _("Thursday")), ("fri", _("Friday")), ("sat", _("Saturday")), ("sun", _("Sunday"))]) @@ -114,11 +118,11 @@ class TimerEntry(Screen, ConfigListScreen): if configElement is self.timerentry_startdate: if self.timerentry_enddate.value < self.timerentry_startdate.value: self.timerentry_enddate.value = self.timerentry_startdate.value - self["config"].invalidate(self.timerentry_enddate) + self["config"].invalidate(self.entryEndDate) if configElement is self.timerentry_enddate: if (self.timerentry_enddate.value < self.timerentry_startdate.value): self.timerentry_startdate.value = self.timerentry_enddate.value - self["config"].invalidate(self.timerentry_startdate) + self["config"].invalidate(self.entryStartDate) def createSetup(self, widget): self.list = [] @@ -134,6 +138,8 @@ class TimerEntry(Screen, ConfigListScreen): else: # repeated self.frequencyEntry = getConfigListEntry(_("Frequency"), self.timerentry_repeated) self.list.append(self.frequencyEntry) + self.repeatedbegindateEntry = getConfigListEntry(_("Starting on"), self.timerentry_repeatedbegindate) + self.list.append(self.repeatedbegindateEntry) if self.timerentry_repeated.value == "daily": pass if self.timerentry_repeated.value == "weekdays": @@ -153,15 +159,17 @@ class TimerEntry(Screen, ConfigListScreen): #self.list.append(getConfigListEntry("StartDate", self.timerentry_startdate)) # self.list.append(getConfigListEntry("Weekday", self.timerentry_weekday)) + self.entryStartDate = getConfigListEntry(_("Start"), self.timerentry_startdate) if self.timerentry_type.value == "once": - self.list.append(getConfigListEntry(_("Start"), self.timerentry_startdate)) + self.list.append(self.entryStartDate) self.list.append(getConfigListEntry(" ", self.timerentry_starttime)) else: self.list.append(getConfigListEntry(_("StartTime"), self.timerentry_starttime)) + self.entryEndDate = getConfigListEntry(_("End"), self.timerentry_enddate) if self.timerentry_type.value == "once": if self.timerentry_justplay.value != "zap": - self.list.append(getConfigListEntry(_("End"), self.timerentry_enddate)) + self.list.append(self.entryEndDate) self.list.append(getConfigListEntry(" ", self.timerentry_endtime)) else: if self.timerentry_justplay.value != "zap": @@ -192,12 +200,6 @@ class TimerEntry(Screen, ConfigListScreen): ConfigListScreen.keyLeft(self) self.newConfig() - def keyRightCallback(self, configPath): - currentConfigPath = self["config"].getCurrent()[1].parent.getConfigPath() - # check if we are still on the same config entry - if (currentConfigPath == configPath): - self.keyRight() - def keyRight(self): if self["config"].getCurrent() is self.channelEntry: self.keySelect() @@ -214,14 +216,19 @@ class TimerEntry(Screen, ConfigListScreen): def finishedChannelSelection(self, *args): if len(args): self.timer.service_ref = ServiceReference(args[0]) - self.timerentry_service.vals = (str(self.timer.service_ref.getServiceName()),) - self["config"].invalidate(self.timerentry_service) + self.timerentry_service.setCurrentText(self.timer.service_ref.getServiceName()) + self["config"].invalidate(self.channelEntry) def getTimestamp(self, date, mytime): d = time.localtime(date) dt = datetime.datetime(d.tm_year, d.tm_mon, d.tm_mday, mytime[0], mytime[1]) return int(time.mktime(dt.timetuple())) + def buildRepeatedBegin(self, rep_time, start_time): + d = time.localtime(rep_time) + dt = datetime.datetime(d.tm_year, d.tm_mon, d.tm_mday, start_time[0], start_time[1]) + return int(time.mktime(dt.timetuple())) + def getBeginEnd(self): enddate = self.timerentry_enddate.value endtime = self.timerentry_endtime.value @@ -265,6 +272,7 @@ class TimerEntry(Screen, ConfigListScreen): if self.timerentry_day[x].value: self.timer.setRepeated(x) + self.timer.repeatedbegindate = self.buildRepeatedBegin(self.timerentry_repeatedbegindate.value, self.timerentry_starttime.value) self.timer.begin = self.getTimestamp(time.time(), self.timerentry_starttime.value) self.timer.end = self.getTimestamp(time.time(), self.timerentry_endtime.value) @@ -288,13 +296,19 @@ class TimerEntry(Screen, ConfigListScreen): tlist.append((i.getName(), i)) self.session.openWithCallback(self.subserviceSelected, ChoiceBox, title=_("Please select a subservice to record..."), list = tlist, selection = selection) return + + self.saveTimer() self.close((True, self.timer)) def subserviceSelected(self, service): if not service is None: self.timer.service_ref = ServiceReference(service[1]) + self.saveTimer() self.close((True, self.timer)) + def saveTimer(self): + self.session.nav.RecordTimer.saveTimer() + def keyCancel(self): self.close((False,)) @@ -329,7 +343,10 @@ class TimerLog(Screen): }, -1) def deleteEntry(self): - self.log_entries.remove(self["loglist"].getCurrent()[1]) + cur = self["loglist"].getCurrent() + if cur is None: + return + self.log_entries.remove(cur[1]) self.fillLogList() self["loglist"].l.setList(self.list) self.updateText() @@ -337,7 +354,7 @@ class TimerLog(Screen): def fillLogList(self): self.list = [ ] for x in self.log_entries: - self.list.append((str(time.strftime("%Y-%m-%d %H-%M", localtime(x[0])) + " - " + x[2]), x)) + self.list.append((str(time.strftime("%Y-%m-%d %H-%M", time.localtime(x[0])) + " - " + x[2]), x)) def clearLog(self): self.log_entries = []