1 from Screen import Screen
2 from Components.Button import Button
3 from Components.ServiceList import ServiceList
4 from Components.ActionMap import ActionMap
6 from enigma import eServiceReference
8 from Screens.Menu import FixedMenu
10 import xml.dom.minidom
12 class ChannelContextMenu(FixedMenu):
13 def __init__(self, session, csel):
16 menu = [("back", self.close)]
19 menu.append(("disable move mode", self.moveMode))
21 menu.append(("enable move mode", self.moveMode))
23 if csel.bouquet_mark_edit:
24 menu.append(("end bouquet edit", self.bouquetMarkEnd))
25 menu.append(("abort bouquet edit", self.bouquetMarkAbort))
27 menu.append(("edit bouquet...", self.bouquetMarkStart))
29 FixedMenu.__init__(self, session, "Channel Selection", menu)
30 self.skinName = "Menu"
33 self.csel.setMoveMode(self.csel.movemode)
36 def bouquetMarkStart(self):
37 self.csel.startMarkedEdit()
40 def bouquetMarkEnd(self):
41 self.csel.endMarkedEdit(abort=False)
44 def bouquetMarkAbort(self):
45 self.csel.endMarkedEdit(abort=True)
48 class ChannelSelection(Screen):
49 def __init__(self, session):
50 Screen.__init__(self, session)
53 self.bouquet_mark_edit = False
58 self["key_red"] = Button("All")
59 self["key_green"] = Button("ARD")
60 self["key_yellow"] = Button("ZDF")
61 self["key_blue"] = Button("Favourites")
63 self["list"] = ServiceList()
64 self["list"].setRoot(eServiceReference("""1:0:1:0:0:0:0:0:0:0:(type == 1)"""))
66 #self["okbutton"] = Button("ok", [self.channelSelected])
68 class ChannelActionMap(ActionMap):
69 def action(self, contexts, action):
70 if action[:7] == "bouquet":
71 print "setting root to " + action[8:]
73 l.setMode(l.MODE_NORMAL)
74 l.setRoot(eServiceReference("1:0:1:0:0:0:0:0:0:0:" + action[8:]))
76 ActionMap.action(self, contexts, action)
78 self["actions"] = ChannelActionMap(["ChannelSelectActions", "OkCancelActions"],
81 "ok": self.channelSelected,
83 "contextMenu": self.doContext,
84 "showFavourites": self.showFavourites
86 self["actions"].csel = self
90 def startMarkedEdit(self):
91 self.bouquet_mark_edit = True
95 marked = self.__marked
99 print "mark: " + str(x)
102 def endMarkedEdit(self, abort):
103 self.bouquet_mark_edit = True
104 new_marked = self["list"].getMarked()
105 self.__marked = new_marked
107 self.bouquet_mark_edit = False
109 def clearMarks(self):
110 self["list"].clearMarks()
113 if not self.bouquet_mark_edit:
116 ref = self["list"].getCurrent()
117 if self["list"].isMarked(ref):
118 self["list"].removeMarked(ref)
120 self["list"].addMarked(ref)
123 def channelSelected(self):
124 self.session.nav.playService(self["list"].getCurrent())
125 print "current: " + self["list"].getCurrent().toString()
130 self.session.nav.playService(self["list"].getCurrent())
133 self["list"].moveUp()
136 self["list"].moveDown()
139 self.session.open(ChannelContextMenu, self)
141 def setMoveMode(self, mode):
144 def showFavourites(self):
146 l.setRoot(eServiceReference('1:0:1:0:0:0:0:0:0:0:(provider == "fav")'))
147 l.setMode(l.MODE_FAVOURITES)