From bcbd5801c2be23b2ee1a22e7b088fc2fb654f1c9 Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Fri, 27 Jun 2008 14:43:24 +0000 Subject: some cleanups, add missing destroy calls, fix incomplete destroy calls, small speedup --- lib/python/Screens/InfoBarGenerics.py | 16 +++++++++------- lib/python/Screens/Screen.py | 5 +++-- lib/python/Screens/SessionGlobals.py | 15 +-------------- 3 files changed, 13 insertions(+), 23 deletions(-) (limited to 'lib/python/Screens') diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index e7f71daf..2227f8b9 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -1619,16 +1619,18 @@ class InfoBarSubserviceSelection: }, -1) self["SubserviceQuickzapAction"].setEnabled(False) - self.session.nav.event.append(self.checkSubservicesAvail) # we like to get service events + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evUpdatedInfo: self.checkSubservicesAvail + }) self.bsel = None - def checkSubservicesAvail(self, ev): - if ev == iPlayableService.evUpdatedEventInfo: - service = self.session.nav.getCurrentService() - subservices = service and service.subServices() - if not subservices or subservices.getNumberOfSubservices() == 0: - self["SubserviceQuickzapAction"].setEnabled(False) + def checkSubservicesAvail(self): + service = self.session.nav.getCurrentService() + subservices = service and service.subServices() + if not subservices or subservices.getNumberOfSubservices() == 0: + self["SubserviceQuickzapAction"].setEnabled(False) def nextSubservice(self): self.changeSubservice(+1) diff --git a/lib/python/Screens/Screen.py b/lib/python/Screens/Screen.py index 508309db..287847ba 100644 --- a/lib/python/Screens/Screen.py +++ b/lib/python/Screens/Screen.py @@ -75,10 +75,11 @@ class Screen(dict, GUISkin): x() def execEnd(self): + active_components = self.active_components # for (name, val) in self.items(): - for val in self.active_components: + self.active_components = None + for val in active_components: val.execEnd() - del self.active_components # assert self.session != None, "execEnd on non-execing screen!" # self.session = None self.execing = False diff --git a/lib/python/Screens/SessionGlobals.py b/lib/python/Screens/SessionGlobals.py index a9636cac..d65acb4d 100644 --- a/lib/python/Screens/SessionGlobals.py +++ b/lib/python/Screens/SessionGlobals.py @@ -1,4 +1,3 @@ -from enigma import iPlayableService from Screens.Screen import Screen from Components.Sources.CurrentService import CurrentService from Components.Sources.EventInfo import EventInfo @@ -16,20 +15,8 @@ class SessionGlobals(Screen): self["Event_Now"] = EventInfo(session.nav, EventInfo.NOW) self["Event_Next"] = EventInfo(session.nav, EventInfo.NEXT) self["FrontendStatus"] = FrontendStatus(service_source = session.nav.getCurrentService) - self["FrontendInfo"] = FrontendInfo(service_source = session.nav.getCurrentService) + self["FrontendInfo"] = FrontendInfo(navcore = session.nav) self["VideoPicture"] = Source() self["TunerInfo"] = TunerInfo() self["RecordState"] = RecordState(session) - session.nav.event.append(self.serviceEvent) - self.service_state = 0 - FrontpanelLed().connect(self["RecordState"]) - - def serviceEvent(self, evt): - if evt == iPlayableService.evStart: - self.service_state = 1 - elif evt == iPlayableService.evEnd: - self.service_state = 0 - elif evt == iPlayableService.evUpdatedInfo and self.service_state == 1: - self.service_state = 2 - self["FrontendInfo"].updateFrontendData() -- cgit v1.2.3