class InfoBarEPG:
""" EPG - Opens an EPG list when the showEPGList action fires """
def __init__(self):
+ self.dlg_stack = [ ]
self["EPGActions"] = HelpableActionMap(self, "InfobarEPGActions",
{
"showEventInfo": (self.openEventView, _("show EPG...")),
if len(services):
self.epg_bouquet = bouquet
if withCallback:
- self.session.openWithCallback(self.closed, EPGSelection, services, self.zapToService)
+ self.dlg_stack.append(self.session.openWithCallback(self.closed, EPGSelection, services, self.zapToService))
else:
self.session.open(EPGSelection, services, self.zapToService)
def closed(self, ret):
+ self.dlg_stack.pop()
if ret:
- self.close(ret)
+ dlgs=len(self.dlg_stack)
+ assert dlgs>0
+ self.dlg_stack[dlgs-1].close(dlgs > 1)
def openMultiServiceEPG(self, withCallback=True):
bouquets = self.servicelist.getBouquetList()
cnt = len(bouquets)
if cnt > 1: # show bouquet list
if withCallback:
- self.session.openWithCallback(self.closed, BouquetSelector, bouquets, self.openBouquetEPG)
+ self.dlg_stack.append(self.session.openWithCallback(self.closed, BouquetSelector, bouquets, self.openBouquetEPG))
else:
self.session.open(BouquetSelector, bouquets, self.openBouquetEPG)
elif cnt == 1:
def openSingleServiceEPG(self):
ref=self.session.nav.getCurrentlyPlayingServiceReference()
- ptr=eEPGCache.getInstance()
- self.session.openWithCallback(self.closed, EPGSelection, ref)
+ self.session.open(EPGSelection, ref)
+
+ def openSimilarList(self, eventid, refstr):
+ self.session.open(EPGSelection, refstr, None, eventid)
def openEventView(self):
self.epglist = [ ]
if ptr:
self.epglist.append(ptr)
if len(self.epglist) > 0:
- self.session.open(EventViewEPGSelect, self.epglist[0], ServiceReference(ref), self.eventViewCallback, self.openSingleServiceEPG, self.openMultiServiceEPG)
+ self.dlg_stack.append(self.session.openWithCallback(self.closed, EventViewEPGSelect, self.epglist[0], ServiceReference(ref), self.eventViewCallback, self.openSingleServiceEPG, self.openMultiServiceEPG, self.openSimilarList))
else:
print "no epg for the service avail.. so we show multiepg instead of eventinfo"
self.openMultiServiceEPG(False)
def getSeek(self):
service = self.session.nav.getCurrentService()
if service is None:
- return False
+ return None
seek = service.seek()
def getTimeshift(self):
service = self.session.nav.getCurrentService()
- return service.timeshift()
+ return service and service.timeshift()
def startTimeshift(self):
print "enable timeshift"
self["InstantExtensionsActions"] = HelpableActionMap(self, "InfobarExtensions",
{
- "extensions": (self.extensions, "Extensions..."),
+ #"extensions": (self.extensions, "Extensions..."),
})
def extensions(self):
self.session.openWithCallback(self.extensionCallback, ChoiceBox, title=_("Please choose an extension..."), list = list)
def extensionCallback(self, answer):
- if answer[1] == "pipon":
- self.session.nav.stopService()
- self.pip = self.session.instantiateDialog(PictureInPicture)
- #self.pip.show()
-
- newservice = self.session.nav.getCurrentlyPlayingServiceReference()
- self.pipservice = eServiceCenter.getInstance().play(newservice)
- if self.pipservice and not self.pipservice.setTarget(1):
- self.pipservice.start()
- self.pipshown = True
- else:
+ if answer is not None:
+ if answer[1] == "pipon":
+ self.session.nav.stopService()
+ self.pip = self.session.instantiateDialog(PictureInPicture)
+ #self.pip.show()
+
+ newservice = self.session.nav.getCurrentlyPlayingServiceReference()
+ self.pipservice = eServiceCenter.getInstance().play(newservice)
+ if self.pipservice and not self.pipservice.setTarget(1):
+ self.pipservice.start()
+ self.pipshown = True
+ else:
+ self.pipservice = None
+ del self.pip
+
+ elif answer[1] == "pipoff":
+ #self.pip.hide()
self.pipservice = None
del self.pip
-
- elif answer[1] == "pipoff":
- #self.pip.hide()
- del self.pip
- self.pipshown = False
+ self.pipshown = False
from RecordTimer import parseEvent
return False
def recordQuestionCallback(self, answer):
+ print "pre:\n", self.recording
+
if answer is None or answer[1] == "no":
return
list = []
- for x in self.recording:
- if x.dontSave and x.isRunning():
+ recording = self.recording[:]
+ for x in recording:
+ if not x in self.session.nav.RecordTimer.timer_list:
+ self.recording.remove(x)
+ elif x.dontSave and x.isRunning():
list.append(TimerEntryComponent(x, False))
if answer[1] == "changeduration":
self.selectedEntry = len(self.recording)
self.session.openWithCallback(self.inputCallback, InputBox, title=_("How many minutes do you want to record?"), text="5", maxSize=False, type=Input.NUMBER)
self.startInstantRecording(limitEvent = limitEvent)
+
+ print "after:\n", self.recording
def changeDuration(self, entry):
if entry is not None:
self.onLayoutFinish.append(self["ButtonYellowText"].update)
self["ButtonBlue"] = PixmapConditional(withTimer = False)
- self["ButtonBlue"].setConnect(lambda: True)
+ self["ButtonBlue"].setConnect(lambda: False)
self["ButtonBlueText"] = LabelConditional(text = _("Extensions"), withTimer = False)
- self["ButtonBlueText"].setConnect(lambda: True)
+ self["ButtonBlueText"].setConnect(lambda: False)
self.onLayoutFinish.append(self["ButtonBlue"].update)
self.onLayoutFinish.append(self["ButtonBlueText"].update)