auf Grund der grossen Nachfrage gibt es wieder ein poweroff im "main", Powertaste...
[enigma2.git] / lib / python / Screens / InfoBar.py
index bf1d904bf50dab81a0fb41d9d2c6d55176632d7c..3c776178b799633944e944957238788f54c6ef84 100644 (file)
@@ -15,6 +15,7 @@ from Screens.MessageBox import MessageBox
 from Screens.MovieSelection import MovieSelection
 from Screens.Volume import Volume
 from Screens.Mute import Mute
+from Screens.Standby import Standby
 
 from enigma import *
 
@@ -37,6 +38,8 @@ class NumberZap(Screen):
                self.Timer.start(3000)          #reset timer
                self.field = self.field + str(number)
                self["number"].setText(self.field)
+               if len(self.field) >= 4:
+                       self.keyOK()
 
        def __init__(self, session, number):
                Screen.__init__(self, session)
@@ -88,6 +91,9 @@ class InfoBar(Screen):
                
                self.hideVolTimer = eTimer()
                self.hideVolTimer.timeout.get().append(self.volHide)
+               
+               self.powerKeyTimer = eTimer()
+               self.powerKeyTimer.timeout.get().append(self.powertimer)
 
                #self["actions"] = ActionMap( [ "InfobarActions" ], 
                self["actions"] = NumberActionMap( [ "InfobarActions" ], 
@@ -104,7 +110,9 @@ class InfoBar(Screen):
                                "hide": self.hide,
                                "toggleShow": self.toggleShow,
                                "showMovies": self.showMovies,
-                               "quit": self.quit,
+                               #"quit": self.quit,
+                               "powerdown": self.powerdown,
+                               "powerup": self.powerup,
                                "1": self.keyNumberGlobal,
                                "2": self.keyNumberGlobal,
                                "3": self.keyNumberGlobal,
@@ -128,6 +136,9 @@ class InfoBar(Screen):
 
                self["ServiceName"] = ServiceName(self.session.nav)
                
+               self["Event_Now_StartTime"] = EventInfo(self.session.nav, EventInfo.Now_StartTime)
+               self["Event_Next_StartTime"] = EventInfo(self.session.nav, EventInfo.Next_StartTime)
+                               
                self["Event_Now"] = EventInfo(self.session.nav, EventInfo.Now)
                self["Event_Next"] = EventInfo(self.session.nav, EventInfo.Next)
 
@@ -144,6 +155,18 @@ class InfoBar(Screen):
                assert menu.tagName == "menu", "root element in menu must be 'menu'!"
                self.session.open(MainMenu, menu, menu.childNodes)
 
+       def powertimer(self):   
+               print "PowerOff - Now!"
+               configfile.save()
+               quitMainloop()
+       
+       def powerdown(self):
+               self.powerKeyTimer.start(3000)
+
+       def powerup(self):
+               self.powerKeyTimer.stop()
+               self.session.open(Standby, self)
+
        def keyNumberGlobal(self, number):
                print "You pressed number " + str(number)
                self.session.open(NumberZap, number)
@@ -218,11 +241,17 @@ class InfoBar(Screen):
                        self.muteDialog.instance.hide()
 
        def showEPGList(self):
-               self.session.open(EPGSelection, self.session.nav.getCurrentlyPlayingServiceReference())
+               ref=self.session.nav.getCurrentlyPlayingServiceReference()
+               ptr=eEPGCache.getInstance()
+               if ptr.startTimeQuery(ref) != -1:
+                       self.session.open(EPGSelection, ref)
+               else:
+                       print 'no epg for service', ref.toString()
 
-       def quit(self):
-               configfile.save()
-               quitMainloop()
+       #def quit(self):
+       #       self.session.open(Standby, self)
+               #configfile.save()
+               #quitMainloop()
        
        def stopCurrentRecording(self): 
                print "remove entry"
@@ -268,3 +297,4 @@ class InfoBar(Screen):
                
        def unPauseService(self):
                self.session.nav.pause(0)
+