X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ca42423ea74fdc67e62bbdf92975b4cd05b8c9c0..3d5ee66a7e80c61e431e74e821242e144e88f008:/lib/python/Screens/ChannelSelection.py diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py index 0b626449..c31b7949 100644 --- a/lib/python/Screens/ChannelSelection.py +++ b/lib/python/Screens/ChannelSelection.py @@ -2,10 +2,10 @@ from Screen import Screen from Components.Button import Button from Components.ServiceList import ServiceList from Components.ActionMap import ActionMap +from EpgSelection import EPGSelection +from enigma import eServiceReference, eEPGCache, eEPGCachePtr -from enigma import eServiceReference - -from Screens.Menu import FixedMenu +from Screens.FixedMenu import FixedMenu import xml.dom.minidom @@ -49,6 +49,7 @@ class ChannelSelection(Screen): def __init__(self, session): Screen.__init__(self, session) + self.entry_marked = False self.movemode = False self.bouquet_mark_edit = False @@ -56,8 +57,8 @@ class ChannelSelection(Screen): self.__marked = [ ] self["key_red"] = Button("All") - self["key_green"] = Button("ARD") - self["key_yellow"] = Button("ZDF") + self["key_green"] = Button("Provider") + self["key_yellow"] = Button("Satellite") self["key_blue"] = Button("Favourites") self["list"] = ServiceList() @@ -68,25 +69,32 @@ class ChannelSelection(Screen): class ChannelActionMap(ActionMap): def action(self, contexts, action): if action[:7] == "bouquet": - print "setting root to " + action[8:] l = self.csel["list"] l.setMode(l.MODE_NORMAL) l.setRoot(eServiceReference("1:0:1:0:0:0:0:0:0:0:" + action[8:])) else: ActionMap.action(self, contexts, action) - self["actions"] = ChannelActionMap(["ChannelSelectActions", "OkCancelActions"], + self["actions"] = ChannelActionMap(["ChannelSelectActions", "OkCancelActions", "ContextMenuActions"], { "cancel": self.close, "ok": self.channelSelected, "mark": self.doMark, "contextMenu": self.doContext, - "showFavourites": self.showFavourites + "showFavourites": self.showFavourites, + "showEPGList": self.showEPGList }) self["actions"].csel = self + 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() + # marked edit mode - def startMarkedEdit(self): self.bouquet_mark_edit = True self.clearMarks() @@ -96,7 +104,6 @@ class ChannelSelection(Screen): l = self["list"] for x in marked: - print "mark: " + str(x) l.addMarked(x) def endMarkedEdit(self, abort): @@ -121,9 +128,21 @@ class ChannelSelection(Screen): # ... def channelSelected(self): - self.session.nav.playService(self["list"].getCurrent()) - print "current: " + self["list"].getCurrent().toString() - self.close() + ref = self["list"].getCurrent() + if self.movemode: + if self.entry_marked: + self["list"].setCurrentMarked(False) + self.entry_marked = False + else: + self["list"].setCurrentMarked(True) + self.entry_marked = True + elif (ref.flags & 7) == 7: + l = self["list"] + l.setMode(l.MODE_NORMAL) + l.setRoot(ref) + else: + self.session.nav.playService(ref) + self.close() #called from infoBar def zap(self): @@ -139,8 +158,11 @@ class ChannelSelection(Screen): self.session.open(ChannelContextMenu, self) def setMoveMode(self, mode): - self.movemode = mode - + if mode: + self.movemode = False + else: + self.movemode = True + def showFavourites(self): l = self["list" ] l.setRoot(eServiceReference('1:0:1:0:0:0:0:0:0:0:(provider == "fav")'))