X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/995e780505185fe55afe98b322fa91b55fe7c7a2..7f088b2e0ec5051c3b9b9a1942198f0be28f315b:/lib/python/Screens/InfoBar.py diff --git a/lib/python/Screens/InfoBar.py b/lib/python/Screens/InfoBar.py index a6f4fb19..05c5c98a 100644 --- a/lib/python/Screens/InfoBar.py +++ b/lib/python/Screens/InfoBar.py @@ -15,36 +15,35 @@ from Screens.ChoiceBox import ChoiceBox profile("LOAD:InfoBarGenerics") from Screens.InfoBarGenerics import InfoBarShowHide, \ InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarRdsDecoder, \ - InfoBarEPG, InfoBarEvent, InfoBarServiceName, InfoBarSeek, InfoBarInstantRecord, \ + InfoBarEPG, InfoBarSeek, InfoBarInstantRecord, \ InfoBarAudioSelection, InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, \ - InfoBarSubserviceSelection, InfoBarTuner, InfoBarShowMovies, InfoBarTimeshift, \ + InfoBarSubserviceSelection, InfoBarShowMovies, InfoBarTimeshift, \ InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarSimpleEventView, \ InfoBarSummarySupport, InfoBarMoviePlayerSummarySupport, InfoBarTimeshiftState, InfoBarTeletextPlugin, InfoBarExtensions, \ InfoBarSubtitleSupport, InfoBarPiP, InfoBarPlugins, InfoBarSleepTimer, InfoBarServiceErrorPopupSupport profile("LOAD:InitBar_Components") -from Components.Sources.Source import ObsoleteSource 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, - InfoBarEvent, InfoBarServiceName, InfoBarInstantRecord, InfoBarAudioSelection, + InfoBarInstantRecord, InfoBarAudioSelection, HelpableScreen, InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, - InfoBarSubserviceSelection, InfoBarTuner, InfoBarTimeshift, InfoBarSeek, + InfoBarSubserviceSelection, InfoBarTimeshift, InfoBarSeek, InfoBarSummarySupport, InfoBarTimeshiftState, InfoBarTeletextPlugin, InfoBarExtensions, InfoBarPiP, InfoBarPlugins, InfoBarSubtitleSupport, InfoBarSleepTimer, InfoBarServiceErrorPopupSupport, 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...")), @@ -53,11 +52,11 @@ class InfoBar(InfoBarShowHide, }, prio=2) for x in HelpableScreen, \ - InfoBarShowHide, \ + InfoBarBase, InfoBarShowHide, \ InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarEPG, InfoBarRdsDecoder, \ - InfoBarEvent, InfoBarServiceName, InfoBarInstantRecord, InfoBarAudioSelection, \ + InfoBarInstantRecord, InfoBarAudioSelection, \ InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, InfoBarSubserviceSelection, \ - InfoBarTuner, InfoBarTimeshift, InfoBarSeek, InfoBarSummarySupport, InfoBarTimeshiftState, \ + InfoBarTimeshift, InfoBarSeek, InfoBarSummarySupport, InfoBarTimeshiftState, \ InfoBarTeletextPlugin, InfoBarExtensions, InfoBarPiP, InfoBarSubtitleSupport, InfoBarSleepTimer, \ InfoBarPlugins, InfoBarServiceErrorPopupSupport: x.__init__(self) @@ -65,14 +64,17 @@ class InfoBar(InfoBarShowHide, self.helpList.append((self["actions"], "InfobarActions", [("showMovies", _("view recordings..."))])) self.helpList.append((self["actions"], "InfobarActions", [("showRadio", _("hear radio..."))])) - self["CurrentTime"] = ObsoleteSource(new_source = "global.CurrentTime", removal_date = "2008-01") - self.__event_tracker = ServiceEventTracker(screen=self, eventmap= { iPlayableService.evUpdatedEventInfo: self.__eventInfoChanged }) 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: @@ -121,9 +123,9 @@ class InfoBar(InfoBarShowHide, if service is not None: self.session.open(MoviePlayer, service) -class MoviePlayer(InfoBarShowHide, \ +class MoviePlayer(InfoBarBase, InfoBarShowHide, \ InfoBarMenu, \ - InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, InfoBarAudioSelection, HelpableScreen, InfoBarNotifications, + InfoBarSeek, InfoBarShowMovies, InfoBarAudioSelection, HelpableScreen, InfoBarNotifications, InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarSimpleEventView, InfoBarMoviePlayerSummarySupport, InfoBarSubtitleSupport, Screen, InfoBarTeletextPlugin, InfoBarServiceErrorPopupSupport): @@ -140,7 +142,7 @@ class MoviePlayer(InfoBarShowHide, \ }) for x in HelpableScreen, InfoBarShowHide, InfoBarMenu, \ - InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, \ + InfoBarBase, InfoBarSeek, InfoBarShowMovies, \ InfoBarAudioSelection, InfoBarNotifications, InfoBarSimpleEventView, \ InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \ InfoBarMoviePlayerSummarySupport, InfoBarSubtitleSupport, \ @@ -150,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 @@ -169,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)