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 Components.ServiceEventTracker import InfoBarBase
 
 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)
-               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()
@@ -45,6 +46,11 @@ class SubservicesQuickzap(InfoBarShowHide, InfoBarMenu, InfoBarInstantRecord, In
                                "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)
@@ -112,7 +118,6 @@ class SubservicesQuickzap(InfoBarShowHide, InfoBarMenu, InfoBarInstantRecord, In
        
        def quit(self, answer):
                if answer:
-                       self.session.nav.playService(self.restoreService)
                        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
-                       self.session.nav.playService(newservice)
+                       self.session.nav.playService(newservice, False)
                        self.currentlyPlayingSubservice = number
                        self.currentSubserviceNumberLabel.setText(str(number))
                        self.doShow()