X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/67b53c1cb06988394c35a6e965c99b72b67fe1be..edf2e7b1a646ca0a35ac2bc92e97a4b4b29c74f7:/lib/python/Screens/TimerEntry.py diff --git a/lib/python/Screens/TimerEntry.py b/lib/python/Screens/TimerEntry.py index cc43a9af..3541d36d 100644 --- a/lib/python/Screens/TimerEntry.py +++ b/lib/python/Screens/TimerEntry.py @@ -84,8 +84,8 @@ class TimerEntry(Screen, ConfigListScreen): 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) + self.timerentry_name = ConfigText(default = self.timer.name, visible_width = 50, fixed_size = False) + self.timerentry_description = ConfigText(default = self.timer.description, visible_width = 50, fixed_size = False) self.timerentry_repeated = ConfigSelection(default = repeated, choices = [("daily", _("daily")), ("weekly", _("weekly")), ("weekdays", _("Mon-Fri")), ("user", _("user defined"))]) @@ -109,6 +109,7 @@ class TimerEntry(Screen, ConfigListScreen): servicename = str(self.timer.service_ref.getServiceName()) except: pass + self.timerentry_service_ref = self.timer.service_ref self.timerentry_service = ConfigSelection([servicename]) self.timerentry_startdate.addNotifier(self.checkDate) @@ -215,8 +216,8 @@ class TimerEntry(Screen, ConfigListScreen): def finishedChannelSelection(self, *args): if len(args): - self.timer.service_ref = ServiceReference(args[0]) - self.timerentry_service.setCurrentText(self.timer.service_ref.getServiceName()) + self.timerentry_service_ref = ServiceReference(args[0]) + self.timerentry_service.setCurrentText(self.timerentry_service_ref.getServiceName()) self["config"].invalidate(self.channelEntry) def getTimestamp(self, date, mytime): @@ -224,6 +225,11 @@ class TimerEntry(Screen, ConfigListScreen): 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 @@ -247,11 +253,11 @@ class TimerEntry(Screen, ConfigListScreen): self.timer.justplay = self.timerentry_justplay.value == "zap" self.timer.resetRepeated() self.timer.afterEvent = {"nothing": AFTEREVENT.NONE, "deepstandby": AFTEREVENT.DEEPSTANDBY, "standby": AFTEREVENT.STANDBY}[self.timerentry_afterevent.value] - + self.timer.service_ref = self.timerentry_service_ref + if self.timerentry_type.value == "once": self.timer.begin, self.timer.end = self.getBeginEnd() if self.timerentry_type.value == "repeated": - self.timer.repeatedbegindate = self.timerentry_repeatedbegindate.value if self.timerentry_repeated.value == "daily": for x in range(0,7): self.timer.setRepeated(x) @@ -268,6 +274,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) @@ -291,13 +298,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,)) @@ -332,7 +345,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()