more __deref__ changes
[enigma2.git] / lib / python / Screens / InfoBarGenerics.py
index 065069b17642eada57befc7b782e6ddc73282069..c7fce347f88a330342041e607d394f159cdb8e4b 100644 (file)
@@ -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)
                
@@ -1573,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()
@@ -1587,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:
@@ -1609,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:
@@ -1908,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")