X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/bf32c388285065d3e9024cc8181c737e621efadf..da81f2941ca129621d6511d1dcbc96bd29f4802b:/lib/python/Screens/EpgSelection.py diff --git a/lib/python/Screens/EpgSelection.py b/lib/python/Screens/EpgSelection.py index 3103bfa7..6740bfb6 100644 --- a/lib/python/Screens/EpgSelection.py +++ b/lib/python/Screens/EpgSelection.py @@ -3,21 +3,17 @@ from Components.config import config, ConfigClock from Components.Button import Button from Components.Pixmap import Pixmap from Components.Label import Label -from Components.EpgList import * +from Components.EpgList import EPGList, EPG_TYPE_SINGLE, EPG_TYPE_SIMILAR, EPG_TYPE_MULTI from Components.ActionMap import ActionMap -from Components.ScrollLabel import ScrollLabel +from Screens.TimerEdit import TimerSanityConflict from Screens.EventView import EventViewSimple from TimeDateInput import TimeDateInput from enigma import eServiceReference -from Screens.FixedMenu import FixedMenu from RecordTimer import RecordTimerEntry, parseEvent -from TimerEdit import TimerEditList from TimerEntry import TimerEntry from ServiceReference import ServiceReference from time import localtime, time -import xml.dom.minidom - mepg_config_initialized = False class EPGSelection(Screen): @@ -41,6 +37,8 @@ class EPGSelection(Screen): self["key_blue"] = Button() self.currentService=ServiceReference(service) self.zapFunc = None + self.sort_type = 0 + self.setSortDescription() else: self.skinName = "EPGSelectionMulti" self.type = EPG_TYPE_MULTI @@ -62,11 +60,7 @@ class EPGSelection(Screen): self["key_green"] = Button(_("Add timer")) self["list"] = EPGList(type = self.type, selChangedCB = self.onSelectionChanged, timer = self.session.nav.RecordTimer) - class ChannelActionMap(ActionMap): - def action(self, contexts, action): - return ActionMap.action(self, contexts, action) - - self["actions"] = ChannelActionMap(["EPGSelectActions", "OkCancelActions"], + self["actions"] = ActionMap(["EPGSelectActions", "OkCancelActions"], { "cancel": self.closeScreen, "ok": self.eventSelected, @@ -165,6 +159,21 @@ class EPGSelection(Screen): def yellowButtonPressed(self): if self.type == EPG_TYPE_MULTI: self["list"].updateMultiEPG(-1) + elif self.type == EPG_TYPE_SINGLE: + if self.sort_type == 0: + self.sort_type = 1 + else: + self.sort_type = 0 + self["list"].sortSingleEPG(self.sort_type) + self.setSortDescription() + + def setSortDescription(self): + if self.sort_type == 1: + # TRANSLATORS: This must fit into the header button in the EPG-List + self["key_yellow"].setText(_("Sort Time")) + else: + # TRANSLATORS: This must fit into the header button in the EPG-List + self["key_yellow"].setText(_("Sort A-Z")) def blueButtonPressed(self): if self.type == EPG_TYPE_MULTI: @@ -177,13 +186,25 @@ class EPGSelection(Screen): if event is None: return newEntry = RecordTimerEntry(serviceref, checkOldTimers = True, *parseEvent(event)) - self.session.openWithCallback(self.timerEditFinished, TimerEntry, newEntry) + self.session.openWithCallback(self.finishedAdd, TimerEntry, newEntry) - def timerEditFinished(self, answer): + def finishedAdd(self, answer): + print "finished add" if answer[0]: - self.session.nav.RecordTimer.record(answer[1]) + 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) else: - print "Timeredit aborted" + print "Timeredit aborted" + + def finishSanityCorrection(self, answer): + self.finishedAdd(answer) def moveUp(self): self["list"].moveUp()