From: Stefan Pluecken Date: Tue, 22 Nov 2005 12:37:49 +0000 (+0000) Subject: fix timerHide in infobar X-Git-Tag: 2.6.0~5013 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/0ba15307e275a40042a9aa7ac0f33aac7c14e63f fix timerHide in infobar --- diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index 62307675..6b5acc64 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -90,6 +90,7 @@ class InfoBarShowHide: STATE_SHOWN = 3 def __init__(self): + print "INFOBARSHOWHIDE init" self["ShowHideActions"] = ActionMap( ["InfobarShowHideActions"] , { "toggleShow": self.toggleShow, @@ -98,19 +99,25 @@ class InfoBarShowHide: self.state = self.STATE_SHOWN + self.onExecBegin.append(self.show) self.onClose.append(self.delHideTimer) self.hideTimer = eTimer() self.hideTimer.timeout.get().append(self.doTimerHide) - self.hideTimer.start(1000) + self.hideTimer.start(5000) def delHideTimer(self): del self.hideTimer def hide(self): self.instance.hide() + + def show(self): + self.state = self.STATE_SHOWN + self.hideTimer.start(5000) def doTimerHide(self): + self.hideTimer.stop() if self.state == self.STATE_SHOWN: self.instance.hide() self.state = self.STATE_HIDDEN @@ -120,14 +127,12 @@ class InfoBarShowHide: self.instance.hide() #pls check animation support, sorry # self.startHide() + self.hideTimer.stop() self.state = self.STATE_HIDDEN - else: + elif self.state == self.STATE_HIDDEN: self.instance.show() -# self.startShow() - self.state = self.STATE_SHOWN - #TODO: make it customizable - self.hideTimer.start(5000) - + self.show() + def startShow(self): self.instance.m_animation.startMoveAnimation(ePoint(0, 600), ePoint(0, 380), 100) self.state = self.STATE_SHOWN diff --git a/lib/python/Screens/Screen.py b/lib/python/Screens/Screen.py index b1e5a51e..6e5ac21d 100644 --- a/lib/python/Screens/Screen.py +++ b/lib/python/Screens/Screen.py @@ -12,12 +12,15 @@ class Screen(dict, HTMLSkin, GUISkin): GUISkin.__init__(self) self.onClose = [ ] + self.onExecBegin = [ ] # in order to support screens *without* a help, # we need the list in every screen. how ironic. self.helpList = [ ] def execBegin(self): + for x in self.onExecBegin: + x() # assert self.session == None, "a screen can only exec one per time" # self.session = session for (name, val) in self.items():