restart previous running services in onClose event
[enigma2.git] / lib / python / Plugins / Extensions / CutListEditor / plugin.py
index 4cbb8930f30ee81792fdb6b3d2716339f33ef9da..c345667597bd99994daf94cdb66ec6ea47734785 100644 (file)
@@ -5,7 +5,7 @@ from Screens.MessageBox import MessageBox
 from Components.ServicePosition import ServicePositionGauge
 from Components.ActionMap import HelpableActionMap
 from Components.MultiContent import MultiContentEntryText
 from Components.ServicePosition import ServicePositionGauge
 from Components.ActionMap import HelpableActionMap
 from Components.MultiContent import MultiContentEntryText
-from Components.ServiceEventTracker import ServiceEventTracker
+from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase
 from Components.VideoWindow import VideoWindow
 from Screens.InfoBarGenerics import InfoBarSeek, InfoBarCueSheetSupport
 from Components.GUIComponent import GUIComponent
 from Components.VideoWindow import VideoWindow
 from Screens.InfoBarGenerics import InfoBarSeek, InfoBarCueSheetSupport
 from Components.GUIComponent import GUIComponent
@@ -144,7 +144,7 @@ class CutList(GUIComponent):
                if self.instance is not None:
                        self.instance.moveSelectionTo(index)
 
                if self.instance is not None:
                        self.instance.moveSelectionTo(index)
 
-class CutListEditor(Screen, InfoBarSeek, InfoBarCueSheetSupport, HelpableScreen):
+class CutListEditor(Screen, InfoBarBase, InfoBarSeek, InfoBarCueSheetSupport, HelpableScreen):
        skin = """
        <screen position="0,0" size="720,576" title="Cutlist editor" flags="wfNoBorder">
                <eLabel text="Cutlist editor" position="65,60" size="300,25" font="Regular;20" />
        skin = """
        <screen position="0,0" size="720,576" title="Cutlist editor" flags="wfNoBorder">
                <eLabel text="Cutlist editor" position="65,60" size="300,25" font="Regular;20" />
@@ -171,6 +171,7 @@ class CutListEditor(Screen, InfoBarSeek, InfoBarCueSheetSupport, HelpableScreen)
                Screen.__init__(self, session)
                InfoBarSeek.__init__(self, actionmap = "CutlistSeekActions")
                InfoBarCueSheetSupport.__init__(self)
                Screen.__init__(self, session)
                InfoBarSeek.__init__(self, actionmap = "CutlistSeekActions")
                InfoBarCueSheetSupport.__init__(self)
+               InfoBarBase.__init__(self, steal_current_service = True)
                HelpableScreen.__init__(self)
                self.old_service = session.nav.getCurrentlyPlayingServiceReference()
                session.nav.playService(service)
                HelpableScreen.__init__(self)
                self.old_service = session.nav.getCurrentlyPlayingServiceReference()
                session.nav.playService(service)
@@ -212,6 +213,10 @@ class CutListEditor(Screen, InfoBarSeek, InfoBarCueSheetSupport, HelpableScreen)
                # to track new entries we save the last version of the cutlist
                self.last_cuts = [ ]
                self.cut_start = None
                # to track new entries we save the last version of the cutlist
                self.last_cuts = [ ]
                self.cut_start = None
+               self.onClose.append(self.__onClose)
+
+       def __onClose(self):
+               self.session.nav.playService(self.old_service)
 
        def showTutorial(self):
                if not self.tutorial_seen:
 
        def showTutorial(self):
                if not self.tutorial_seen:
@@ -257,7 +262,6 @@ Then seek to the end, press OK, select 'end cut'. That's it.
                        self.removeMark(m)
 
        def exit(self):
                        self.removeMark(m)
 
        def exit(self):
-               self.session.nav.playService(self.old_service)
                self.close()
 
        def getCutlist(self):
                self.close()
 
        def getCutlist(self):