X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/672bbfc3e8a1d063ad3d96be1711bddf5ca66249..983baf2d5c358faf34f4bc55930b0ca168114528:/lib/python/Screens/InfoBarGenerics.py?ds=sidebyside diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index c8c9f30d..c7fce347 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -66,7 +66,7 @@ class InfoBarShowHide: { "toggleShow": self.toggleShow, "hide": self.hide, - }) + }, 1) # lower prio to make it possible to override ok and cancel.. self.__state = self.STATE_SHOWN self.__locked = 0 @@ -227,7 +227,7 @@ class InfoBarNumberZap: bouquetlist = serviceHandler.list(bouquet) if not bouquetlist is None: while number: - bouquet = self.servicelist.appendDVBTypes(bouquetlist.getNext()) + bouquet = bouquetlist.getNext() if not bouquet.valid(): #check end of list break if bouquet.flags & eServiceReference.isDirectory: @@ -609,6 +609,8 @@ class InfoBarSeek: }, prio=-1) # give them a little more priority to win over color buttons + self["SeekActions"].setEnabled(False) + self.seekstate = self.SEEK_STATE_PLAY self.onClose.append(self.delTimer) @@ -860,25 +862,28 @@ class InfoBarSeek: from Screens.PVRState import PVRState, TimeshiftState class InfoBarPVRState: - def __init__(self, screen=PVRState, show_always_in_timeshift=False): - self.show_always_in_timeshift = show_always_in_timeshift + def __init__(self, screen=PVRState): self.onPlayStateChanged.append(self.__playStateChanged) self.pvrStateDialog = self.session.instantiateDialog(screen) - self.onShow.append(self.__mayShow) + self.onShow.append(self._mayShow) self.onHide.append(self.pvrStateDialog.hide) - def __mayShow(self): - if self.execing and ((self.show_always_in_timeshift and self.timeshift_enabled) or self.seekstate != self.SEEK_STATE_PLAY): + def _mayShow(self): + if self.execing and self.seekstate != self.SEEK_STATE_PLAY: self.pvrStateDialog.show() def __playStateChanged(self, state): playstateString = state[3] self.pvrStateDialog["state"].setText(playstateString) - self.__mayShow() + self._mayShow() class InfoBarTimeshiftState(InfoBarPVRState): def __init__(self): - InfoBarPVRState.__init__(self, screen=TimeshiftState, show_always_in_timeshift=True) + InfoBarPVRState.__init__(self, screen=TimeshiftState) + + def _mayShow(self): + if self.execing and self.timeshift_enabled: + self.pvrStateDialog.show() class InfoBarShowMovies: @@ -1333,9 +1338,21 @@ class InfoBarInstantRecord: return if self.isInstantRecordRunning(): - self.session.openWithCallback(self.recordQuestionCallback, ChoiceBox, title=_("A recording is currently running.\nWhat do you want to do?"), list=[(_("stop recording"), "stop"), (_("change recording (duration)"), "changeduration"), (_("add recording (indefinitely)"), "indefinitely"), (_("add recording (stop after current event)"), "event"), (_("add recording (enter recording duration)"), "manualduration"), (_("do nothing"), "no")]) + self.session.openWithCallback(self.recordQuestionCallback, ChoiceBox, \ + title=_("A recording is currently running.\nWhat do you want to do?"), \ + list=[(_("stop recording"), "stop"), \ + (_("change recording (duration)"), "changeduration"), \ + (_("add recording (indefinitely)"), "indefinitely"), \ + (_("add recording (stop after current event)"), "event"), \ + (_("add recording (enter recording duration)"), "manualduration"), \ + (_("do nothing"), "no")]) else: - self.session.openWithCallback(self.recordQuestionCallback, ChoiceBox, title=_("Start recording?"), list=[(_("add recording (indefinitely)"), "indefinitely"), (_("add recording (stop after current event)"), "event"), (_("add recording (enter recording duration)"), "manualduration"),(_("don't record"), "no")]) + self.session.openWithCallback(self.recordQuestionCallback, ChoiceBox, \ + title=_("Start recording?"), \ + list=[(_("add recording (indefinitely)"), "indefinitely"), \ + (_("add recording (stop after current event)"), "event"), \ + (_("add recording (enter recording duration)"), "manualduration"), \ + (_("don't record"), "no")]) from Tools.ISO639 import LanguageCodes @@ -1558,7 +1575,7 @@ class InfoBarAdditionalInfo: self["NimB_Active"].hide() def checkTunerState(self, service): - info = service.frontendInfo() + info = service and service.frontendInfo() feNumber = info and info.getFrontendInfo(iFrontendInformation.frontendNumber) if feNumber is None: self["NimA"].hide() @@ -1572,7 +1589,7 @@ class InfoBarAdditionalInfo: def gotServiceEvent(self, ev): service = self.session.nav.getCurrentService() - if ev == iPlayableService.evStart: + if ev == iPlayableService.evUpdatedInfo or ev == iPlayableService.evEnd: self.checkTunerState(service) class InfoBarNotifications: @@ -1594,6 +1611,11 @@ class InfoBarNotifications: Notifications.notifications = Notifications.notifications[1:] cb = n[0] + + if n[3].has_key("onSessionOpenCallback"): + n[3]["onSessionOpenCallback"]() + del n[3]["onSessionOpenCallback"] + if cb is not None: dlg = self.session.openWithCallback(cb, n[1], *n[2], **n[3]) else: @@ -1893,10 +1915,7 @@ class InfoBarServiceErrorPopupSupport: eDVBServicePMTHandler.eventEOF: None } - if error not in errors: - error = None - - error = error is not None and errors[error] + error = errors.get(error) #this returns None when the key not exist in the dict if error is not None: Notifications.AddPopup(text = error, type = MessageBox.TYPE_ERROR, timeout = 5, id = "ZapError")