support for 'long keypresses' ('l' in keymap.xml flags)
[enigma2.git] / lib / python / Screens / Standby.py
index cb0a957e3e922112c26d8d6f61ce78e61894f56b..a4ba60425122409b40c50071dfff9df91c919534 100644 (file)
@@ -5,7 +5,7 @@ from Components.AVSwitch import AVSwitch
 from enigma import eDVBVolumecontrol, eDBoxLCD, eServiceReference
 from Components.Sources.Clock import Clock
 
-inStandby = False
+inStandby = None
 
 class Standby(Screen):
        def Power(self):
@@ -63,12 +63,11 @@ class Standby(Screen):
 
        def __onShow(self):
                global inStandby
-               inStandby = True
+               inStandby = self
 
        def __onHide(self):
                global inStandby
-               inStandby = False
-
+               inStandby = None
 
 class StandbySummary(Screen):
        skin = """
@@ -89,7 +88,7 @@ from time import time
 inTryQuitMainloop = False
 
 class TryQuitMainloop(MessageBox):
-       def __init__(self, session, retvalue=1):
+       def __init__(self, session, retvalue=1, timeout=-1):
                self.retval=retvalue
                recordings = len(session.nav.getRecordings())
                self.connected = False
@@ -98,13 +97,13 @@ class TryQuitMainloop(MessageBox):
                        next_rec_time = session.nav.RecordTimer.getNextRecordingTime()
                if recordings or (next_rec_time > 0 and (next_rec_time - time()) < 360):
                        if retvalue == 1:
-                               MessageBox.__init__(self, session, _("Recording(s) are in progress or comming up in few seconds... really shutdown now?"), type = MessageBox.TYPE_YESNO, timeout = -1, close_on_any_key = False)
+                               MessageBox.__init__(self, session, _("Recording(s) are in progress or coming up in few seconds... really shutdown now?"), type = MessageBox.TYPE_YESNO, timeout = timeout)
                        elif retvalue == 2:
-                               MessageBox.__init__(self, session, _("Recording(s) are in progress or comming up in few seconds... really reboot now?"), type = MessageBox.TYPE_YESNO, timeout = -1, close_on_any_key = False)
+                               MessageBox.__init__(self, session, _("Recording(s) are in progress or coming up in few seconds... really reboot now?"), type = MessageBox.TYPE_YESNO, timeout = timeout)
                        elif retvalue == 4:
                                pass
                        else:
-                               MessageBox.__init__(self, session, _("Recording(s) are in progress or comming up in few seconds... really restart now?"), type = MessageBox.TYPE_YESNO, timeout = -1, close_on_any_key = False)
+                               MessageBox.__init__(self, session, _("Recording(s) are in progress or coming up in few seconds... really restart now?"), type = MessageBox.TYPE_YESNO, timeout = timeout)
                        self.skinName = "MessageBox"
                        session.nav.record_event.append(self.getRecordEvent)
                        self.connected = True
@@ -122,6 +121,7 @@ class TryQuitMainloop(MessageBox):
                                rec_time = self.session.nav.RecordTimer.getNextRecordingTime()
                                if rec_time > 0 and (rec_time - time()) < 360:
                                        self.initTimeout(360) # wait for next starting timer
+                                       self.startTimer()
                                else:
                                        self.close(True) # immediate shutdown
                elif event == iRecordableService.evStart: