X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ef1a9823a5da0c626766dad7afc858e15b57a2d0..3259f96f2e8f864709b819b4d27ee8ef551eeb2c:/lib/python/Screens/InfoBar.py diff --git a/lib/python/Screens/InfoBar.py b/lib/python/Screens/InfoBar.py index 99979b13..a6b2516e 100644 --- a/lib/python/Screens/InfoBar.py +++ b/lib/python/Screens/InfoBar.py @@ -1,4 +1,4 @@ -from Tools.Profile import profile, profile_final +from Tools.Profile import profile from Screen import Screen @@ -20,7 +20,7 @@ from Screens.InfoBarGenerics import InfoBarShowHide, \ InfoBarSubserviceSelection, InfoBarShowMovies, InfoBarTimeshift, \ InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarSimpleEventView, \ InfoBarSummarySupport, InfoBarMoviePlayerSummarySupport, InfoBarTimeshiftState, InfoBarTeletextPlugin, InfoBarExtensions, \ - InfoBarSubtitleSupport, InfoBarPiP, InfoBarPlugins, InfoBarSleepTimer, InfoBarServiceErrorPopupSupport + InfoBarSubtitleSupport, InfoBarPiP, InfoBarPlugins, InfoBarSleepTimer, InfoBarServiceErrorPopupSupport, InfoBarJobman profile("LOAD:InitBar_Components") from Components.ActionMap import HelpableActionMap @@ -36,10 +36,11 @@ class InfoBar(InfoBarBase, InfoBarShowHide, HelpableScreen, InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, InfoBarSubserviceSelection, InfoBarTimeshift, InfoBarSeek, InfoBarSummarySupport, InfoBarTimeshiftState, InfoBarTeletextPlugin, InfoBarExtensions, - InfoBarPiP, InfoBarPlugins, InfoBarSubtitleSupport, InfoBarSleepTimer, InfoBarServiceErrorPopupSupport, + InfoBarPiP, InfoBarPlugins, InfoBarSubtitleSupport, InfoBarSleepTimer, InfoBarServiceErrorPopupSupport, InfoBarJobman, Screen): ALLOW_SUSPEND = True + instance = None def __init__(self, session): Screen.__init__(self, session) @@ -56,8 +57,8 @@ class InfoBar(InfoBarBase, InfoBarShowHide, InfoBarInstantRecord, InfoBarAudioSelection, \ InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, InfoBarSubserviceSelection, \ InfoBarTimeshift, InfoBarSeek, InfoBarSummarySupport, InfoBarTimeshiftState, \ - InfoBarTeletextPlugin, InfoBarExtensions, InfoBarPiP, InfoBarSubtitleSupport, InfoBarSleepTimer, \ - InfoBarPlugins, InfoBarServiceErrorPopupSupport: + InfoBarTeletextPlugin, InfoBarExtensions, InfoBarPiP, InfoBarSubtitleSupport, InfoBarJobman, \ + InfoBarSleepTimer, InfoBarPlugins, InfoBarServiceErrorPopupSupport: x.__init__(self) self.helpList.append((self["actions"], "InfobarActions", [("showMovies", _("view recordings..."))])) @@ -69,6 +70,11 @@ class InfoBar(InfoBarBase, 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: @@ -146,6 +152,10 @@ class MoviePlayer(InfoBarBase, 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 @@ -165,14 +175,13 @@ class MoviePlayer(InfoBarBase, 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) + self.session.nav.stopService() elif answer == "restart": self.doSeek(0)