nice code
[enigma2.git] / lib / python / Screens / MessageBox.py
index e9c0786ff7d64811aeed0872fe2e568512fed9a1..deea54bae4f6a2e2352434306781b61b50b746cb 100644 (file)
@@ -62,17 +62,18 @@ class MessageBox(Screen):
                        self.timer.timeout.get().append(self.timerTick)
                        self.onExecBegin.append(self.startTimer)
                        self.origTitle = None
-                       try:
-                               if self.instance and self.instance.isVisible():
-                                       self.timerTick()
-                               else:
-                                       self.onShown.append(self.timerTick)
-                       except AttributeError:
-                               self.onShown.append(self.timerTick)
+                       if self.execing:
+                               self.timerTick()
+                       else:
+                               self.onShown.append(self.__onShown)
                        self.timerRunning = True
                else:
                        self.timerRunning = False
 
+       def __onShown(self):
+               self.onShown.remove(self.__onShown)
+               self.timerTick()
+
        def startTimer(self):
                self.timer.start(1000)
 
@@ -80,7 +81,6 @@ class MessageBox(Screen):
                if self.timerRunning:
                        del self.timer
                        self.setTitle(self.origTitle)
-                       self.onShown.remove(self.timerTick)
 
        def timerTick(self):
                if self.execing:
@@ -124,12 +124,8 @@ class MessageBox(Screen):
        def move(self, direction):
                if self.close_on_any_key:
                        self.close(True)
-
                self["list"].instance.moveSelection(direction)
-               if self.timerRunning:
-                       self.timer.stop()
-                       self.setTitle(self.origTitle)
-                       self.timerRunning = False
+               self.stopTimer()
 
        def __repr__(self):
                return str(type(self)) + "(" + self.text + ")"