enable/disable pip with blue button in extensions menu
[enigma2.git] / lib / python / Screens / InfoBarGenerics.py
index a2d1ec76a155f44a2a727a522e15d9a6728bc839..e3caa6e81a583785b0ed647ff37ecb35b5bc597f 100644 (file)
@@ -85,7 +85,9 @@ class InfoBarShowHide:
        
        def startHideTimer(self):
                if self.__state == self.STATE_SHOWN and not self.__locked:
-                       self.hideTimer.start(5000, True)
+                       idx = config.usage.infobar_timeout.index
+                       if idx:
+                               self.hideTimer.start(idx*1000, True)
 
        def __onHide(self):
                self.__state = self.STATE_HIDDEN
@@ -190,7 +192,8 @@ class InfoBarNumberZap:
 #              print "You pressed number " + str(number)
                if number == 0:
                        self.servicelist.recallPrevService()
-                       self.doShow()
+                       if config.usage.show_infobar_on_zap.value:
+                               self.doShow()
                else:
                        self.session.openWithCallback(self.numberEntered, NumberZap, number)
 
@@ -312,7 +315,8 @@ class InfoBarChannelSelection:
                else:
                        self.servicelist.moveUp()
                self.servicelist.zap()
-               self.doShow()
+               if config.usage.show_infobar_on_zap.value:
+                       self.doShow()
 
        def zapDown(self):
                if self.servicelist.inBouquet():
@@ -330,7 +334,8 @@ class InfoBarChannelSelection:
                else:
                        self.servicelist.moveDown()
                self.servicelist.zap()
-               self.doShow()
+               if config.usage.show_infobar_on_zap.value:
+                       self.doShow()
 
 class InfoBarMenu:
        """ Handles a menu action, to open the (main) menu """
@@ -804,13 +809,14 @@ class InfoBarSeek:
        def checkSkipShowHideLock(self):
                wantlock = self.seekstate != self.SEEK_STATE_PLAY
                
-               if self.lockedBecauseOfSkipping and not wantlock:
-                       self.unlockShow()
-                       self.lockedBecauseOfSkipping = False
+               if config.usage.show_infobar_on_zap.value:
+                       if self.lockedBecauseOfSkipping and not wantlock:
+                               self.unlockShow()
+                               self.lockedBecauseOfSkipping = False
                
-               if wantlock and not self.lockedBecauseOfSkipping:
-                       self.lockShow()
-                       self.lockedBecauseOfSkipping = True
+                       if wantlock and not self.lockedBecauseOfSkipping:
+                               self.lockShow()
+                               self.lockedBecauseOfSkipping = True
 
        def __evEOF(self):
                if self.seekstate != self.SEEK_STATE_PLAY:
@@ -930,8 +936,8 @@ class InfoBarTimeshift:
                print "enable timeshift"
                ts = self.getTimeshift()
                if ts is None:
-#                      self.session.open(MessageBox, _("Timeshift not possible!"), MessageBox.TYPE_ERROR)
-#                      print "no ts interface"
+                       self.session.open(MessageBox, _("Timeshift not possible!"), MessageBox.TYPE_ERROR)
+                       print "no ts interface"
                        return 0;
                
                if self.timeshift_enabled:
@@ -1140,10 +1146,12 @@ class InfoBarSubtitles:
                return "Enable Subtitles: " + name
 
        def enableSubtitle(self, subtitles):
-               print "enable subitles", subtitles
-               self.selected_subtitle = subtitles
-               self.subtitles_enabled = True
-               
+               if self.selected_subtitle != subtitles:
+                       print "enable subtitles", subtitles
+                       self.subtitles_enabled = False
+                       self.selected_subtitle = subtitles
+                       self.subtitles_enabled = True
+
        def subtitlesEnabled(self):
                return self.subtitles_enabled
                
@@ -1154,11 +1162,10 @@ class InfoBarSubtitles:
 class InfoBarPiP:
        def __init__(self):
                self.session.pipshown = False
-               
-               self.addExtension((self.getShowHideName, self.showPiP, self.available), "1")
-               self.addExtension((self.getMoveName, self.movePiP, self.pipShown), "2")
-               self.addExtension((self.getSwapName, self.swapPiP, self.pipShown), "3")
 
+               self.addExtension((self.getShowHideName, self.showPiP, self.available), "blue")
+               self.addExtension((self.getMoveName, self.movePiP, self.pipShown), "green")
+               self.addExtension((self.getSwapName, self.swapPiP, self.pipShown), "yellow")
        
        def available(self):
                return True
@@ -1456,7 +1463,8 @@ class InfoBarSubserviceSelection:
                                if newservice.valid():
                                        del subservices
                                        del service
-                                       self.doShow()
+                                       if config.usage.show_infobar_on_zap.value:
+                                               self.doShow()
                                        self.session.nav.playService(newservice)
 
        def subserviceSelection(self):
@@ -1488,7 +1496,8 @@ class InfoBarSubserviceSelection:
                                        self.session.open(SubservicesQuickzap, service[2])
                        else:
                                self["SubserviceQuickzapAction"].setEnabled(True)
-                               self.doShow()
+                               if config.usage.show_infobar_on_zap.value:
+                                       self.doShow()
                                self.session.nav.playService(service[1])
 
 class InfoBarAdditionalInfo:
@@ -1781,7 +1790,7 @@ class InfoBarSubtitleSupport(object):
        
        def setSubtitlesEnable(self, enable=True):
                subtitle = self.getCurrentServiceSubtitle()
-               if enable and self.__selected_subtitle:
+               if enable and self.__selected_subtitle is not None:
                        if subtitle and not self.__subtitles_enabled:
                                subtitle.enableSubtitles(self.subtitle_window.instance, self.selected_subtitle)
                                self.subtitle_window.show()