+ def showEPGList(self):
+ ref=self["list"].getCurrent()
+ ptr=eEPGCache.getInstance()
+ if ptr.startTimeQuery(ref) != -1:
+ self.session.open(EPGSelection, ref)
+ else:
+ print 'no epg for service', ref.toString()
+
+# multiple marked entry stuff ( edit mode, later multiepg selection )
+ def startMarkedEdit(self):
+ l = self["list"]
+ # add all services from the current list to internal marked set in listboxservicecontent
+ if self.mutableList is not None:
+ self.bouquetRoot = l.getRoot()
+ self.clearMarks() # this clears the internal marked set in the listboxservicecontent
+ self.bouquet_mark_edit = True
+ self.__marked = l.getRootServices()
+ for x in self.__marked:
+ l.addMarked(eServiceReference(x))
+
+ def removeCurrentService(self):
+ l = self["list"]
+ ref=l.getCurrent()
+ if ref.valid() and self.mutableList is not None:
+ self.mutableList.removeService(ref)
+ self.mutableList.flushChanges() #FIXME dont flush on each single removed service
+ self.setRoot(l.getRoot())
+
+ def endMarkedEdit(self, abort):
+ l = self["list"]
+ if not abort and self.mutableList is not None:
+ new_marked = set(l.getMarked())
+ old_marked = set(self.__marked)
+ removed = old_marked - new_marked
+ added = new_marked - old_marked
+ changed = False
+ for x in removed:
+ changed = True
+ self.mutableList.removeService(eServiceReference(x))
+ for x in added:
+ changed = True
+ self.mutableList.addService(eServiceReference(x))
+ if changed:
+ self.mutableList.flushChanges()
+ #self.setRoot(self.bouquetRoot)
+ self.showFavourites()
+ self.__marked = []
+ self.clearMarks()
+ self.bouquet_mark_edit = False
+ self.bouquetRoot = None
+
+ def setRoot(self, root):
+ if not self.movemode:
+ if not self.bouquet_mark_edit:
+ serviceHandler = eServiceCenter.getInstance()
+ list = serviceHandler.list(root)
+ if list is not None:
+ self.mutableList = list.startEdit()
+ else:
+ self.mutableList = None
+ self.saveRoot(root)
+ self["list"].setRoot(root)
+
+ def clearMarks(self):
+ self["list"].clearMarks()
+