X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c803490aec2d7c7f13966e1a2e926cac018dea2e..fb412ff32c7938649c72d55eed3f5c8ccb5e0a99:/lib/python/Screens/EpgSelection.py diff --git a/lib/python/Screens/EpgSelection.py b/lib/python/Screens/EpgSelection.py index 1af2cbb9..ba49f314 100644 --- a/lib/python/Screens/EpgSelection.py +++ b/lib/python/Screens/EpgSelection.py @@ -14,7 +14,7 @@ from TimerEdit import TimerEditList from TimerEntry import TimerEntry from ServiceReference import ServiceReference from Components.config import config, currentConfigSelectionElement -from time import localtime +from time import localtime, time import xml.dom.minidom @@ -32,11 +32,13 @@ class EPGSelection(Screen): self["key_red"] = Button() self.currentService=service self.eventid = eventid + self.zapFunc = None elif isinstance(service, eServiceReference) or isinstance(service, str): self.type = EPG_TYPE_SINGLE self["key_yellow"] = Button() self["key_blue"] = Button() self.currentService=ServiceReference(service) + self.zapFunc = None else: self.skinName = "EPGSelectionMulti" self.type = EPG_TYPE_MULTI @@ -70,7 +72,7 @@ class EPGSelection(Screen): "yellow": self.yellowButtonPressed, "blue": self.blueButtonPressed, "info": self.infoKeyPressed, - "zapTo": self.zapTo, + "red": self.zapTo, "input_date_time": self.enterDateTime, "nextBouquet": self.nextBouquet, "prevBouquet": self.prevBouquet @@ -101,13 +103,9 @@ class EPGSelection(Screen): self.close(self.closeRecursive) def infoKeyPressed(self): - if self.type == EPG_TYPE_MULTI or self.type == EPG_TYPE_SIMILAR: - cur = self["list"].getCurrent() - event = cur[0] - service = cur[1] - else: - event = self["list"].getCurrent() - service = self.currentService + cur = self["list"].getCurrent() + event = cur[0] + service = cur[1] if event is not None: if self.type != EPG_TYPE_SIMILAR: self.session.open(EventViewSimple, event, service, self.eventViewCallback, self.openSimilarList) @@ -124,15 +122,12 @@ class EPGSelection(Screen): #just used in multipeg def onCreate(self): l = self["list"] + l.recalcEntrySize() if self.type == EPG_TYPE_MULTI: - l.recalcEntrySize() l.fillMultiEPG(self.services, self.ask_time) elif self.type == EPG_TYPE_SINGLE: - if SINGLE_CPP == 0: - l.recalcEntrySize() l.fillSingleEPG(self.currentService) else: - l.recalcEntrySize() l.fillSimilarList(self.currentService, self.eventid) def eventViewCallback(self, setEvent, setService, val): @@ -143,26 +138,23 @@ class EPGSelection(Screen): elif val == +1: self.moveDown() cur = l.getCurrent() - if self.type == EPG_TYPE_SINGLE: - setEvent(cur) + if self.type == EPG_TYPE_MULTI and cur[0] is None and cur[1].ref != old[1].ref: + self.eventViewCallback(setEvent, setService, val) else: - if self.type == EPG_TYPE_MULTI and cur[0] is None and cur[1].ref != old[1].ref: - self.eventViewCallback(setEvent, setService, val) - else: - setService(cur[1]) - setEvent(cur[0]) + setService(cur[1]) + setEvent(cur[0]) def zapTo(self): # just used in multiepg - if self.zapFunc != None: - self.closeRecursive = True - ref = self["list"].getCurrent()[1] - self.zapFunc(ref.ref) + if self.zapFunc and self["key_red"].getText() == "Zap": + lst = self["list"] + count = lst.getCurrentChangeCount() + if count == 0: + self.closeRecursive = True + ref = lst.getCurrent()[1] + self.zapFunc(ref.ref) def eventSelected(self): - if self.type == EPG_TYPE_MULTI: - self.zapTo() - else: - self.infoKeyPressed() + self.infoKeyPressed() def yellowButtonPressed(self): if self.type == EPG_TYPE_MULTI: @@ -173,16 +165,12 @@ class EPGSelection(Screen): self["list"].updateMultiEPG(1) def timerAdd(self): - if self.type == EPG_TYPE_SINGLE: - event = self["list"].getCurrent() - serviceref = self.currentService - else: - cur = self["list"].getCurrent() - event = cur[0] - serviceref = cur[1] + cur = self["list"].getCurrent() + event = cur[0] + serviceref = cur[1] if event is None: return - newEntry = RecordTimerEntry(serviceref, *parseEvent(event)) + newEntry = RecordTimerEntry(serviceref, checkOldTimers = True, *parseEvent(event)) self.session.openWithCallback(self.timerEditFinished, TimerEntry, newEntry) def timerEditFinished(self, answer): @@ -208,13 +196,16 @@ class EPGSelection(Screen): self["now_text"].hide() self["next_text"].hide() self["more_text"].hide() + self["key_red"].setText("") else: if state == 1: + self["key_red"].setText("Zap") self["now_button_sel"].show() self["now_button"].hide() else: self["now_button"].show() self["now_button_sel"].hide() + self["key_red"].setText("") if state == 2: self["next_button_sel"].show()