X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/dba614edd2aad3c17e244914eaef3809d8300cb1..8a7fd294aeb67932e1057bf967958bbe5a959cfb:/screens.py diff --git a/screens.py b/screens.py index dd13c550..fe8d69db 100644 --- a/screens.py +++ b/screens.py @@ -15,17 +15,22 @@ class Screen(dict, HTMLSkin, GUISkin): GUISkin.__init__(self) def execBegin(self): +# assert self.session == None, "a screen can only exec one per time" +# self.session = session for (name, val) in self.items(): val.execBegin() def execEnd(self): for (name, val) in self.items(): val.execEnd() +# assert self.session != None, "execEnd on non-execing screen!" +# self.session = None # never call this directly - it will be called from the session! def doClose(self): GUISkin.close(self) + del self.session for (name, val) in self.items(): print "%s -> %d" % (name, sys.getrefcount(val)) del self[name] @@ -58,9 +63,10 @@ class mainMenu(Screen): Screen.__init__(self, session) b = Button("ok") - self["actions"] = ActionMap("MainMenuActions", + self["actions"] = ActionMap(["OkCancelActions"], { - "selected": self.okbuttonClick + "ok": self.okbuttonClick, + "cancel": self.close }) b.onClick = [ self.okbuttonClick ] @@ -77,37 +83,38 @@ class mainMenu(Screen): ("wie spaet ists?!", self.goClock) ]) -#class mainMenu(Screen): -# def __init__(self): -# GUISkin.__init__(self) -# -# self["title"] = Header("this is the\nMAIN MENU !!!"); -# self["okbutton"] = Button("ok") -# self["okbutton"].onClick = [ self.close ] - class channelSelection(Screen): def __init__(self, session): Screen.__init__(self, session) self["list"] = ServiceList() - self["list"].setRoot(eServiceReference("1:0:1:0:0:0:0:0:0:0:PREMIERE")) + self["list"].setRoot(eServiceReference("""1:0:1:0:0:0:0:0:0:0:(provider=="ARD") && (type == 1)""")) self["okbutton"] = Button("ok", [self.channelSelected]) class ChannelActionMap(ActionMap): - def action(self, context, action): + 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:])) else: - ActionMap.action(self, context, action) + ActionMap.action(self, contexts, action) - self["actions"] = ChannelActionMap("ChannelSelectActions", + self["actions"] = ChannelActionMap(["ChannelSelectActions", "OkCancelActions"], { - "selectChannel": self.channelSelected, + "cancel": self.close, + "ok": self.channelSelected, + "mark": self.doMark }) self["actions"].csel = self + def doMark(self): + ref = self["list"].getCurrent() + if self["list"].isMarked(ref): + self["list"].removeMarked(ref) + else: + self["list"].addMarked(ref) + def channelSelected(self): self.session.nav.playService(self["list"].getCurrent()) self.close() @@ -117,7 +124,7 @@ class infoBar(Screen): def __init__(self, session): Screen.__init__(self, session) - self["actions"] = ActionMap("InfobarActions", + self["actions"] = ActionMap( [ "InfobarActions" ], { "switchChannel": self.switchChannel, "mainMenu": self.mainMenu @@ -155,9 +162,13 @@ class clockDisplay(Screen): class serviceScan(Screen): def ok(self): + print "ok" if self["scan"].isDone(): self.close() + def cancel(self): + print "cancel not yet implemented ;)" + def __init__(self, session): Screen.__init__(self, session) @@ -165,5 +176,9 @@ class serviceScan(Screen): self["scan_state"] = Label("scan state") self["scan"] = ServiceScan(self["scan_progress"], self["scan_state"]) - self["okbutton"] = Button("ok", [self.ok]) - self["okbutton"].disable() + self["actions"] = ActionMap(["OkCancelActions"], + { + "ok": self.ok, + "cancel": self.cancel + }) +