revert changes from some hours ago (aka disable PiP again)
[enigma2.git] / lib / python / Screens / InfoBarGenerics.py
index 0ae0dc420b9c6d43941a93a0bc4c1fa2330d5712..aea81318d080939ea4f7abe0807fcf9963caf199 100644 (file)
@@ -561,7 +561,7 @@ class InfoBarSeek:
        def getSeek(self):
                service = self.session.nav.getCurrentService()
                if service is None:
-                       return False
+                       return None
 
                seek = service.seek()
 
@@ -857,7 +857,7 @@ class InfoBarTimeshift:
        
        def getTimeshift(self):
                service = self.session.nav.getCurrentService()
-               return service.timeshift()
+               return service and service.timeshift()
 
        def startTimeshift(self):
                print "enable timeshift"
@@ -964,7 +964,7 @@ class InfoBarExtensions:
                
                self["InstantExtensionsActions"] = HelpableActionMap(self, "InfobarExtensions",
                        {
-                               "extensions": (self.extensions, "Extensions..."),
+                               #"extensions": (self.extensions, "Extensions..."),
                        })
                        
        def extensions(self):
@@ -976,19 +976,26 @@ class InfoBarExtensions:
                self.session.openWithCallback(self.extensionCallback, ChoiceBox, title=_("Please choose an extension..."), list = list)
 
        def extensionCallback(self, answer):
-               if answer[1] == "pipon":
-                       self.session.nav.stopService()
-                       self.pip = self.session.instantiateDialog(PictureInPicture)
-                       #self.pip.show()
-                       
-                       newservice = str(ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference())) + "s"
-                       self.pipservice = eServiceCenter.getInstance().play(eServiceReference(newservice))
-                       self.pipservice.start()
-                       self.pipshown = True
-               elif answer[1] == "pipoff":
-                       #self.pip.hide()
-                       del self.pip
-                       self.pipshown = False
+               if answer is not None:
+                       if answer[1] == "pipon":
+                               self.session.nav.stopService()
+                               self.pip = self.session.instantiateDialog(PictureInPicture)
+                               #self.pip.show()
+                               
+                               newservice = self.session.nav.getCurrentlyPlayingServiceReference()
+                               self.pipservice = eServiceCenter.getInstance().play(newservice)
+                               if self.pipservice and not self.pipservice.setTarget(1):
+                                       self.pipservice.start()
+                                       self.pipshown = True
+                               else:
+                                       self.pipservice = None
+                                       del self.pip
+       
+                       elif answer[1] == "pipoff":
+                               #self.pip.hide()
+                               self.pipservice = None
+                               del self.pip
+                               self.pipshown = False
 
 from RecordTimer import parseEvent
 
@@ -1060,11 +1067,16 @@ class InfoBarInstantRecord:
                return False
 
        def recordQuestionCallback(self, answer):
+               print "pre:\n", self.recording
+               
                if answer is None or answer[1] == "no":
                        return
                list = []
-               for x in self.recording:
-                       if x.dontSave:
+               recording = self.recording[:]
+               for x in recording:
+                       if not x in self.session.nav.RecordTimer.timer_list:
+                               self.recording.remove(x)
+                       elif x.dontSave and x.isRunning():
                                list.append(TimerEntryComponent(x, False))              
 
                if answer[1] == "changeduration":
@@ -1085,6 +1097,8 @@ class InfoBarInstantRecord:
                                self.selectedEntry = len(self.recording)
                                self.session.openWithCallback(self.inputCallback, InputBox, title=_("How many minutes do you want to record?"), text="5", maxSize=False, type=Input.NUMBER)
                        self.startInstantRecording(limitEvent = limitEvent)
+                       
+               print "after:\n", self.recording
 
        def changeDuration(self, entry):
                if entry is not None:
@@ -1169,9 +1183,9 @@ class InfoBarAdditionalInfo:
                self.onLayoutFinish.append(self["ButtonYellowText"].update)
 
                self["ButtonBlue"] = PixmapConditional(withTimer = False)
-               self["ButtonBlue"].setConnect(lambda: True)
+               self["ButtonBlue"].setConnect(lambda: False)
                self["ButtonBlueText"] = LabelConditional(text = _("Extensions"), withTimer = False)
-               self["ButtonBlueText"].setConnect(lambda: True)
+               self["ButtonBlueText"].setConnect(lambda: False)
                self.onLayoutFinish.append(self["ButtonBlue"].update)
                self.onLayoutFinish.append(self["ButtonBlueText"].update)