X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/efc5aca651306518e6f21a6bd7cbfa1928821b60..e3626cbb8e9d0649f9180899947cd928a070a55d:/lib/python/Screens/InfoBar.py diff --git a/lib/python/Screens/InfoBar.py b/lib/python/Screens/InfoBar.py index ad38f46a..05c5c98a 100644 --- a/lib/python/Screens/InfoBar.py +++ b/lib/python/Screens/InfoBar.py @@ -25,12 +25,12 @@ from Screens.InfoBarGenerics import InfoBarShowHide, \ profile("LOAD:InitBar_Components") from Components.ActionMap import HelpableActionMap from Components.config import config -from Components.ServiceEventTracker import ServiceEventTracker +from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase profile("LOAD:HelpableScreen") from Screens.HelpMenu import HelpableScreen -class InfoBar(InfoBarShowHide, +class InfoBar(InfoBarBase, InfoBarShowHide, InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarEPG, InfoBarRdsDecoder, InfoBarInstantRecord, InfoBarAudioSelection, HelpableScreen, InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, @@ -40,10 +40,10 @@ class InfoBar(InfoBarShowHide, Screen): ALLOW_SUSPEND = True + instance = None def __init__(self, session): Screen.__init__(self, session) - self["actions"] = HelpableActionMap(self, "InfobarActions", { "showMovies": (self.showMovies, _("Play recorded movies...")), @@ -52,7 +52,7 @@ class InfoBar(InfoBarShowHide, }, prio=2) for x in HelpableScreen, \ - InfoBarShowHide, \ + InfoBarBase, InfoBarShowHide, \ InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarEPG, InfoBarRdsDecoder, \ InfoBarInstantRecord, InfoBarAudioSelection, \ InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, InfoBarSubserviceSelection, \ @@ -70,6 +70,11 @@ class InfoBar(InfoBarShowHide, }) self.current_begin_time=0 + assert InfoBar.instance is None, "class InfoBar is a singleton class and just one instance of this class is allowed!" + InfoBar.instance = self + + def __onClose(self): + InfoBar.instance = None def __eventInfoChanged(self): if self.execing: @@ -118,7 +123,7 @@ class InfoBar(InfoBarShowHide, if service is not None: self.session.open(MoviePlayer, service) -class MoviePlayer(InfoBarShowHide, \ +class MoviePlayer(InfoBarBase, InfoBarShowHide, \ InfoBarMenu, \ InfoBarSeek, InfoBarShowMovies, InfoBarAudioSelection, HelpableScreen, InfoBarNotifications, InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarSimpleEventView, @@ -137,7 +142,7 @@ class MoviePlayer(InfoBarShowHide, \ }) for x in HelpableScreen, InfoBarShowHide, InfoBarMenu, \ - InfoBarSeek, InfoBarShowMovies, \ + InfoBarBase, InfoBarSeek, InfoBarShowMovies, \ InfoBarAudioSelection, InfoBarNotifications, InfoBarSimpleEventView, \ InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \ InfoBarMoviePlayerSummarySupport, InfoBarSubtitleSupport, \ @@ -147,6 +152,10 @@ class MoviePlayer(InfoBarShowHide, \ self.lastservice = self.session.nav.getCurrentlyPlayingServiceReference() self.session.nav.playService(service) self.returning = False + self.onClose.append(self.__onClose) + + def __onClose(self): + self.session.nav.playService(self.lastservice) def leavePlayer(self): self.is_closing = True @@ -166,14 +175,12 @@ class MoviePlayer(InfoBarShowHide, \ def leavePlayerConfirmed(self, answer): answer = answer and answer[1] if answer == "quit": - self.session.nav.playService(self.lastservice) config.movielist.last_videodir.cancel() self.close() elif answer == "movielist": ref = self.session.nav.getCurrentlyPlayingServiceReference() self.returning = True self.session.openWithCallback(self.movieSelected, MovieSelection, ref) - self.session.nav.playService(self.lastservice) elif answer == "restart": self.doSeek(0)