X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/1f3de605b9be5751d14c39f785adc5d4af2fced7..878c28f3ac56f6dce9647993278e36cacb994bcc:/lib/python/Screens/ChannelSelection.py diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py index 465d3de3..1fe572e9 100644 --- a/lib/python/Screens/ChannelSelection.py +++ b/lib/python/Screens/ChannelSelection.py @@ -5,7 +5,7 @@ from Components.ActionMap import ActionMap from enigma import eServiceReference -from Screens.Menu import FixedMenu +from Screens.FixedMenu import FixedMenu import xml.dom.minidom @@ -49,16 +49,17 @@ class ChannelSelection(Screen): def __init__(self, session): Screen.__init__(self, session) + self.entry_marked = False self.movemode = False self.bouquet_mark_edit = False ## FIXME self.__marked = [ ] - self["key_red"] = Button("red") - self["key_green"] = Button("green") - self["key_yellow"] = Button("yellow") - self["key_blue"] = Button("blue") + self["key_red"] = Button("All") + self["key_green"] = Button("Provider") + self["key_yellow"] = Button("Satellite") + self["key_blue"] = Button("Favourites") self["list"] = ServiceList() self["list"].setRoot(eServiceReference("""1:0:1:0:0:0:0:0:0:0:(type == 1)""")) @@ -68,8 +69,9 @@ class ChannelSelection(Screen): class ChannelActionMap(ActionMap): def action(self, contexts, action): if action[:7] == "bouquet": - print "setting root to " + action[8:] - self.csel["list"].setRoot(eServiceReference("1:0:1:0:0:0:0:0:0:0:" + 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) @@ -78,7 +80,8 @@ class ChannelSelection(Screen): "cancel": self.close, "ok": self.channelSelected, "mark": self.doMark, - "contextMenu": self.doContext + "contextMenu": self.doContext, + "showFavourites": self.showFavourites }) self["actions"].csel = self @@ -93,7 +96,6 @@ class ChannelSelection(Screen): l = self["list"] for x in marked: - print "mark: " + str(x) l.addMarked(x) def endMarkedEdit(self, abort): @@ -118,8 +120,21 @@ class ChannelSelection(Screen): # ... def channelSelected(self): - self.session.nav.playService(self["list"].getCurrent()) - 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): @@ -135,5 +150,12 @@ 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")')) + l.setMode(l.MODE_FAVOURITES)