allow disabling and resizing of picture in picture window in movie player
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Mon, 21 Sep 2009 22:18:59 +0000 (00:18 +0200)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Mon, 21 Sep 2009 22:18:59 +0000 (00:18 +0200)
lib/python/Screens/InfoBar.py
lib/python/Screens/InfoBarGenerics.py

index 4d92bd3..d65eace 100644 (file)
@@ -47,6 +47,8 @@ class InfoBar(InfoBarBase, InfoBarShowHide,
                                "showTv": (self.showTv, _("Show the tv player...")),
                        }, prio=2)
                
+               self.allowPiP = True
+               
                for x in HelpableScreen, \
                                InfoBarBase, InfoBarShowHide, \
                                InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarEPG, InfoBarRdsDecoder, \
@@ -126,7 +128,7 @@ class MoviePlayer(InfoBarBase, InfoBarShowHide, \
                InfoBarSeek, InfoBarShowMovies, InfoBarAudioSelection, HelpableScreen, InfoBarNotifications,
                InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarSimpleEventView,
                InfoBarMoviePlayerSummarySupport, InfoBarSubtitleSupport, Screen, InfoBarTeletextPlugin,
-               InfoBarServiceErrorPopupSupport, InfoBarExtensions, InfoBarPlugins):
+               InfoBarServiceErrorPopupSupport, InfoBarExtensions, InfoBarPlugins, InfoBarPiP):
 
        ENABLE_RESUME_SUPPORT = True
        ALLOW_SUSPEND = True
@@ -139,13 +141,15 @@ class MoviePlayer(InfoBarBase, InfoBarShowHide, \
                                "leavePlayer": (self.leavePlayer, _("leave movie player..."))
                        })
                
+               self.allowPiP = False
+               
                for x in HelpableScreen, InfoBarShowHide, InfoBarMenu, \
                                InfoBarBase, InfoBarSeek, InfoBarShowMovies, \
                                InfoBarAudioSelection, InfoBarNotifications, InfoBarSimpleEventView, \
                                InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \
                                InfoBarMoviePlayerSummarySupport, InfoBarSubtitleSupport, \
                                InfoBarTeletextPlugin, InfoBarServiceErrorPopupSupport, InfoBarExtensions, \
-                               InfoBarPlugins:
+                               InfoBarPlugins, InfoBarPiP:
                        x.__init__(self)
 
                self.lastservice = session.nav.getCurrentlyPlayingServiceReference()
index 20c069a..2f83061 100644 (file)
@@ -1370,11 +1370,18 @@ class InfoBarSleepTimer:
 # depends on InfoBarExtensions
 class InfoBarPiP:
        def __init__(self):
-               self.session.pipshown = False
+               try:
+                       self.session.pipshown
+               except:
+                       self.session.pipshown = False
                if SystemInfo.get("NumVideoDecoders", 1) > 1:
-                       self.addExtension((self.getShowHideName, self.showPiP, lambda: True), "blue")
-                       self.addExtension((self.getMoveName, self.movePiP, self.pipShown), "green")
-                       self.addExtension((self.getSwapName, self.swapPiP, self.pipShown), "yellow")
+                       if (self.allowPiP):
+                               self.addExtension((self.getShowHideName, self.showPiP, lambda: True), "blue")
+                               self.addExtension((self.getMoveName, self.movePiP, self.pipShown), "green")
+                               self.addExtension((self.getSwapName, self.swapPiP, self.pipShown), "yellow")
+                       else:
+                               self.addExtension((self.getShowHideName, self.showPiP, self.pipShown), "blue")
+                               self.addExtension((self.getMoveName, self.movePiP, self.pipShown), "green")
 
        def pipShown(self):
                return self.session.pipshown