X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/fe0d65abf126e400bd20a51aa96dd532b03efd3d..d4969fafffd49c4791f56141d57281a83007a29b:/lib/python/Components/EpgList.py diff --git a/lib/python/Components/EpgList.py b/lib/python/Components/EpgList.py index 1bc98ef6..0c4290d6 100644 --- a/lib/python/Components/EpgList.py +++ b/lib/python/Components/EpgList.py @@ -231,14 +231,28 @@ class EPGList(HTMLComponent, GUIComponent): def sortSingleEPG(self, type): if len(self.list): if type == 1: - self.list.sort(key=lambda x: (x[4].lower(), x[2])) + event_id = self.getSelectedEventId() + self.list.sort(key=lambda x: (x[4] and x[4].lower(), x[2])) self.l.setList(self.list) - self.selectionChanged() + self.moveToEventId(event_id) else: assert(type == 0) + event_id = self.getSelectedEventId() self.list.sort(key=lambda x: x[2]) self.l.setList(self.list) - self.selectionChanged() + self.moveToEventId(event_id) + + def getSelectedEventId(self): + x = self.l.getCurrentSelection() + return x and x[1] + + def moveToEventId(self, eventId): + index = 0 + for x in self.list: + if x[1] == eventId: + self.instance.moveSelectionTo(index) + break + index += 1 def fillSimilarList(self, refstr, event_id): t = time() @@ -247,7 +261,7 @@ class EPGList(HTMLComponent, GUIComponent): return l = self.epgcache.search(('RIBND', 1024, eEPGCache.SIMILAR_BROADCASTINGS_SEARCH, refstr, event_id)) if l and len(l): - l.sort(self.sort_func) + l.sort(key=lambda x: x[2]) self.l.setList(l) self.selectionChanged() print time() - t