def fillSingleEPG(self, service):
t = time()
test = [ 'RIBDT', (service.ref.toString(), 0, -1, -1) ]
- self.l.setList(self.queryEPG(test))
+ self.list = self.queryEPG(test)
+ self.l.setList(self.list)
print time() - t
self.selectionChanged()
- def sort_func(self,x,y):
- if x[2] < y[2]:
- return -1
- elif x[2] == y[2]:
- return 0
- else:
- return 1
+ def sortSingleEPG(self, type):
+ if len(self.list):
+ if type == 1:
+ event_id = self.getSelectedEventId()
+ self.list.sort(key=lambda x: (x[4] and x[4].lower(), x[2]))
+ self.l.setList(self.list)
+ 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.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()
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