X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fpython%2FScreens%2FInfoBarGenerics.py;h=9e998d0571ebc272bdbac0037546967f070ef639;hb=0528c4567801f2ca68168d3f9a9d3771ca2eec5c;hp=67212656c57660e0a88f48703ddc23a08691e1d0;hpb=4e8cae716ad3fdf29a7b2a45e5eec0a530f93277;p=vuplus_dvbapp diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index 6721265..9e998d0 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -1020,6 +1020,7 @@ class InfoBarExtensions: PIPON = 0 PIPOFF = 1 MOVEPIP = 2 + PIPSWAP = 3 def extensions(self): list = [] @@ -1028,29 +1029,30 @@ class InfoBarExtensions: elif self.pipshown == True: list.append((_("Disable Picture in Picture"), self.PIPOFF)) list.append((_("Move Picture in Picture"), self.MOVEPIP)) + list.append((_("Swap services"), self.PIPSWAP)) self.session.openWithCallback(self.extensionCallback, ChoiceBox, title=_("Please choose an extension..."), list = list) def extensionCallback(self, answer): if answer is not None: if answer[1] == self.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() + + if self.pip.playService(newservice): self.pipshown = True else: - self.pipservice = None + self.pipshown = False del self.pip self.session.nav.playService(newservice) elif answer[1] == self.PIPOFF: - #self.pip.hide() - self.pipservice = None del self.pip self.pipshown = False + elif answer[1] == self.PIPSWAP: + swapservice = self.pip.getCurrentService() + self.pip.playService(self.session.nav.getCurrentlyPlayingServiceReference()) + self.session.nav.playService(swapservice) + elif answer[1] == self.MOVEPIP: self.session.open(PiPSetup, pip = self.pip) @@ -1408,6 +1410,10 @@ class InfoBarNotifications: def __init__(self): self.onExecBegin.append(self.checkNotifications) Notifications.notificationAdded.append(self.checkNotificationsIfExecing) + self.onClose.append(self.__removeNotification) + + def __removeNotification(self): + Notifications.notificationAdded.remove(self.checkNotificationsIfExecing) def checkNotificationsIfExecing(self): if self.execing: @@ -1417,7 +1423,6 @@ class InfoBarNotifications: if len(Notifications.notifications): n = Notifications.notifications[0] Notifications.notifications = Notifications.notifications[1:] - print "open",n cb = n[0] if cb is not None: self.session.openWithCallback(cb, n[1], *n[2], **n[3])