def activatePiP(self): if self.pipZapAvailable: if InfoBar.instance is not None: modeslist = [ ] keyslist = [ ] if InfoBar.pipShown(InfoBar.instance): slist = self.servicelist if slist: if slist.dopipzap: modeslist.append((_("Zap focus to main screen"), "pipzap")) else: modeslist.append((_("Zap focus to Picture in Picture"), "pipzap")) keyslist.append('red') modeslist.append((_("Move Picture in Picture"), "move")) keyslist.append('green') modeslist.append((_("Disable Picture in Picture"), "stop")) keyslist.append('blue') else: modeslist.append((_("Activate Picture in Picture"), "start")) keyslist.append('blue') dlg = self.session.openWithCallback(self.pipAnswerConfirmed, ChoiceBox, list = modeslist, keys = keyslist) dlg.setTitle(_("Menu") + " PiP")
def pipAnswerConfirmed(self, answer): answer = answer and answer[1] if answer is not None and InfoBar.instance is not None: slist = self.servicelist if answer == "pipzap": InfoBar.togglePipzap(InfoBar.instance) elif answer == "move": InfoBar.movePiP(InfoBar.instance) elif answer == "stop": if InfoBar.pipShown(InfoBar.instance): if slist and slist.dopipzap: slist.togglePipzap() if hasattr(self.session, 'pip'): del self.session.pip self.session.pipshown = False elif answer == "start": prev_playingref = self.session.nav.currentlyPlayingServiceOrGroup if prev_playingref: self.session.nav.currentlyPlayingServiceOrGroup = None InfoBar.showPiP(InfoBar.instance) if prev_playingref: self.session.nav.currentlyPlayingServiceOrGroup = prev_playingref if slist and not slist.dopipzap and hasattr(self.session, 'pip'): InfoBar.togglePipzap(InfoBar.instance)