restart previous running services in onClose event
[enigma2.git] / lib / python / Screens / SubservicesQuickzap.py
index 67e27e2a69dd59ca82cebe1d3a43669fbc765f5c..24af517dbc4fd072ea9d02b0ef7f6c23e9bed2f5 100644 (file)
@@ -5,13 +5,14 @@ from Components.Label import Label
 from Screens.ChoiceBox import ChoiceBox
 from Screens.MessageBox import MessageBox
 from InfoBarGenerics import InfoBarShowHide, InfoBarMenu, InfoBarInstantRecord, InfoBarTimeshift, InfoBarSeek, InfoBarTimeshiftState, InfoBarExtensions, InfoBarSubtitleSupport, InfoBarAudioSelection
 from Screens.ChoiceBox import ChoiceBox
 from Screens.MessageBox import MessageBox
 from InfoBarGenerics import InfoBarShowHide, InfoBarMenu, InfoBarInstantRecord, InfoBarTimeshift, InfoBarSeek, InfoBarTimeshiftState, InfoBarExtensions, InfoBarSubtitleSupport, InfoBarAudioSelection
+from Components.ServiceEventTracker import InfoBarBase
 
 from enigma import eTimer
 
 
 from enigma import eTimer
 
-class SubservicesQuickzap(InfoBarShowHide, InfoBarMenu, InfoBarInstantRecord, InfoBarSeek, InfoBarTimeshift, InfoBarTimeshiftState, InfoBarExtensions, InfoBarSubtitleSupport, InfoBarAudioSelection, Screen):
+class SubservicesQuickzap(InfoBarBase, InfoBarShowHide, InfoBarMenu, InfoBarInstantRecord, InfoBarSeek, InfoBarTimeshift, InfoBarTimeshiftState, InfoBarExtensions, InfoBarSubtitleSupport, InfoBarAudioSelection, Screen):
        def __init__(self, session, subservices):
                Screen.__init__(self, session)
        def __init__(self, session, subservices):
                Screen.__init__(self, session)
-               for x in [InfoBarShowHide, InfoBarMenu, InfoBarInstantRecord, InfoBarSeek, InfoBarTimeshift, InfoBarTimeshiftState, InfoBarSubtitleSupport, InfoBarExtensions, InfoBarAudioSelection]:
+               for x in [InfoBarBase, InfoBarShowHide, InfoBarMenu, InfoBarInstantRecord, InfoBarSeek, InfoBarTimeshift, InfoBarTimeshiftState, InfoBarSubtitleSupport, InfoBarExtensions, InfoBarAudioSelection]:
                        x.__init__(self)
 
                self.restoreService = self.session.nav.getCurrentlyPlayingServiceReference()
                        x.__init__(self)
 
                self.restoreService = self.session.nav.getCurrentlyPlayingServiceReference()
@@ -45,6 +46,11 @@ class SubservicesQuickzap(InfoBarShowHide, InfoBarMenu, InfoBarInstantRecord, In
                                "9": self.keyNumberGlobal,
                                "0": self.keyNumberGlobal
                        }, 0)
                                "9": self.keyNumberGlobal,
                                "0": self.keyNumberGlobal
                        }, 0)
+               
+               self.onClose.append(self.__onClose)
+
+       def __onClose(self):
+               self.session.nav.playService(self.restoreService, False)
 
        def onLayoutFinished(self):
                self.timer.start(0,True)
 
        def onLayoutFinished(self):
                self.timer.start(0,True)
@@ -112,7 +118,6 @@ class SubservicesQuickzap(InfoBarShowHide, InfoBarMenu, InfoBarInstantRecord, In
        
        def quit(self, answer):
                if answer:
        
        def quit(self, answer):
                if answer:
-                       self.session.nav.playService(self.restoreService)
                        self.close()
                
        def playSubservice(self, number = 0):
                        self.close()
                
        def playSubservice(self, number = 0):
@@ -121,7 +126,7 @@ class SubservicesQuickzap(InfoBarShowHide, InfoBarMenu, InfoBarInstantRecord, In
                        del self.subservices
                        del self.service
                        self.lastservice = self.currentlyPlayingSubservice
                        del self.subservices
                        del self.service
                        self.lastservice = self.currentlyPlayingSubservice
-                       self.session.nav.playService(newservice)
+                       self.session.nav.playService(newservice, False)
                        self.currentlyPlayingSubservice = number
                        self.currentSubserviceNumberLabel.setText(str(number))
                        self.doShow()
                        self.currentlyPlayingSubservice = number
                        self.currentSubserviceNumberLabel.setText(str(number))
                        self.doShow()