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("red")
59 self["key_green"] = Button("green")
60 self["key_yellow"] = Button("yellow")
61 self["key_blue"] = Button("blue")
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:]
72 self.csel["list"].setRoot(eServiceReference("1:0:1:0:0:0:0:0:0:0:" + action[8:]))
74 ActionMap.action(self, contexts, action)
76 self["actions"] = ChannelActionMap(["ChannelSelectActions", "OkCancelActions"],
79 "ok": self.channelSelected,
81 "contextMenu": self.doContext
83 self["actions"].csel = self
87 def startMarkedEdit(self):
88 self.bouquet_mark_edit = True
92 marked = self.__marked
96 print "mark: " + str(x)
99 def endMarkedEdit(self, abort):
100 self.bouquet_mark_edit = True
101 new_marked = self["list"].getMarked()
102 self.__marked = new_marked
104 self.bouquet_mark_edit = False
106 def clearMarks(self):
107 self["list"].clearMarks()
110 if not self.bouquet_mark_edit:
113 ref = self["list"].getCurrent()
114 if self["list"].isMarked(ref):
115 self["list"].removeMarked(ref)
117 self["list"].addMarked(ref)
120 def channelSelected(self):
121 self.session.nav.playService(self["list"].getCurrent())
126 self.session.nav.playService(self["list"].getCurrent())
129 self["list"].moveUp()
132 self["list"].moveDown()
135 self.session.open(ChannelContextMenu, self)
137 def setMoveMode(self, mode):