X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/7c8c2b339b747763eede225a0ca554a405e5ac7b..3d9be241bd3d4558ee28e57bbe405553b8626543:/lib/python/Screens/MessageBox.py diff --git a/lib/python/Screens/MessageBox.py b/lib/python/Screens/MessageBox.py index b16b8730..deea54ba 100644 --- a/lib/python/Screens/MessageBox.py +++ b/lib/python/Screens/MessageBox.py @@ -25,15 +25,8 @@ class MessageBox(Screen): self["QuestionPixmap"] = Pixmap() self["InfoPixmap"] = Pixmap() self.timerRunning = False - if timeout > 0: - self.timer = eTimer() - self.timer.timeout.get().append(self.timerTick) - self.onExecBegin.append(self.startTimer) - self.origTitle = None - self.onShown.append(self.timerTick) - self.timerRunning = True - self.timeout = timeout - + self.initTimeout(timeout) + self.list = [] if type != self.TYPE_ERROR: self["ErrorPixmap"].hide() @@ -45,7 +38,6 @@ class MessageBox(Screen): if type == self.TYPE_YESNO: self.list = [ (_("yes"), 0), (_("no"), 1) ] - self["list"] = MenuList(self.list) self["actions"] = ActionMap(["MsgBoxActions", "DirectionActions"], @@ -63,9 +55,33 @@ class MessageBox(Screen): "rightRepeated": self.right }, -1) + def initTimeout(self, timeout): + self.timeout = timeout + if timeout > 0: + self.timer = eTimer() + self.timer.timeout.get().append(self.timerTick) + self.onExecBegin.append(self.startTimer) + self.origTitle = None + 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) + def stopTimer(self): + if self.timerRunning: + del self.timer + self.setTitle(self.origTitle) + def timerTick(self): if self.execing: self.timeout -= 1 @@ -108,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 + ")"