git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix recursive close crashes
[enigma2.git]
/
lib
/
python
/
Screens
/
InfoBarGenerics.py
diff --git
a/lib/python/Screens/InfoBarGenerics.py
b/lib/python/Screens/InfoBarGenerics.py
index 1a2ee14541d8a6b5c7d4f252d46ca0f3e4675db6..79b3e145961a79e891755661d2dae174cb7bcacb 100644
(file)
--- a/
lib/python/Screens/InfoBarGenerics.py
+++ b/
lib/python/Screens/InfoBarGenerics.py
@@
-342,6
+342,7
@@
class InfoBarSimpleEventView:
class InfoBarEPG:
""" EPG - Opens an EPG list when the showEPGList action fires """
def __init__(self):
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...")),
self["EPGActions"] = HelpableActionMap(self, "InfobarEPGActions",
{
"showEventInfo": (self.openEventView, _("show EPG...")),
@@
-372,13
+373,16
@@
class InfoBarEPG:
if len(services):
self.epg_bouquet = bouquet
if withCallback:
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):
else:
self.session.open(EPGSelection, services, self.zapToService)
def closed(self, ret):
+ self.dlg_stack.pop()
if ret:
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()
def openMultiServiceEPG(self, withCallback=True):
bouquets = self.servicelist.getBouquetList()
@@
-388,7
+392,7
@@
class InfoBarEPG:
cnt = len(bouquets)
if cnt > 1: # show bouquet list
if withCallback:
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:
else:
self.session.open(BouquetSelector, bouquets, self.openBouquetEPG)
elif cnt == 1:
@@
-396,8
+400,10
@@
class InfoBarEPG:
def openSingleServiceEPG(self):
ref=self.session.nav.getCurrentlyPlayingServiceReference()
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 = [ ]
def openEventView(self):
self.epglist = [ ]
@@
-419,7
+425,7
@@
class InfoBarEPG:
if ptr:
self.epglist.append(ptr)
if len(self.epglist) > 0:
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)
else:
print "no epg for the service avail.. so we show multiepg instead of eventinfo"
self.openMultiServiceEPG(False)
@@
-857,7
+863,7
@@
class InfoBarTimeshift:
def getTimeshift(self):
service = self.session.nav.getCurrentService()
def getTimeshift(self):
service = self.session.nav.getCurrentService()
- return service.timeshift()
+ return service
and service
.timeshift()
def startTimeshift(self):
print "enable timeshift"
def startTimeshift(self):
print "enable timeshift"
@@
-964,7
+970,7
@@
class InfoBarExtensions:
self["InstantExtensionsActions"] = HelpableActionMap(self, "InfobarExtensions",
{
self["InstantExtensionsActions"] = HelpableActionMap(self, "InfobarExtensions",
{
- "extensions": (self.extensions, "Extensions..."),
+
#
"extensions": (self.extensions, "Extensions..."),
})
def extensions(self):
})
def extensions(self):