auf Grund der grossen Nachfrage gibt es wieder ein poweroff im "main", Powertaste...
[enigma2.git] / lib / python / Screens / InfoBar.py
index 62639c04d50f9876cf617aad02e9cdec9ed5e81c..3c776178b799633944e944957238788f54c6ef84 100644 (file)
@@ -91,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" ], 
@@ -107,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,
@@ -150,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)
@@ -224,10 +241,15 @@ 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):
-               self.session.open(Standby)
+       #def quit(self):
+       #       self.session.open(Standby, self)
                #configfile.save()
                #quitMainloop()
        
@@ -275,3 +297,4 @@ class InfoBar(Screen):
                
        def unPauseService(self):
                self.session.nav.pause(0)
+