save supposed afterEvent config in class Job member (fixes #394 DVDBurn shutdown...
[enigma2.git] / lib / python / Components / Lcd.py
index e722250db26d5e7fc1b5990e2ed86a6271141eb9..dde158b6a16f4c1d97d697b312f12f239a7637bb 100644 (file)
@@ -28,9 +28,18 @@ class LCD:
        def isOled(self):
                return eDBoxLCD.getInstance().isOled()
 
+def leaveStandby():
+       config.lcd.bright.apply()
+
+def standbyCounterChanged(configElement):
+       from Screens.Standby import inStandby
+       inStandby.onClose.append(leaveStandby)
+       config.lcd.standby.apply()
+
 def InitLcd():
        detected = eDBoxLCD.getInstance().detected()
        SystemInfo["Display"] = detected
+       config.lcd = ConfigSubsection();
        if detected:
                def setLCDbright(configElement):
                        ilcd.setBright(configElement.value);
@@ -41,22 +50,36 @@ def InitLcd():
                def setLCDinverted(configElement):
                        ilcd.setInverted(configElement.value);
 
-               ilcd = LCD()
-
-               config.lcd = ConfigSubsection();
+               standby_default = 0
 
-               config.lcd.bright = ConfigSlider(default=10, limits=(0, 10))
-               config.lcd.bright.addNotifier(setLCDbright);
-               config.lcd.bright.apply = lambda : setLCDbright(config.lcd.bright)
+               ilcd = LCD()
 
                if not ilcd.isOled():
                        config.lcd.contrast = ConfigSlider(default=5, limits=(0, 20))
                        config.lcd.contrast.addNotifier(setLCDcontrast);
                else:
                        config.lcd.contrast = ConfigNothing()
+                       standby_default = 1
 
-               config.lcd.standby = ConfigSlider(default=0, limits=(0, 10))
+               config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 10))
+               config.lcd.standby.addNotifier(setLCDbright);
                config.lcd.standby.apply = lambda : setLCDbright(config.lcd.standby)
 
+               config.lcd.bright = ConfigSlider(default=5, limits=(0, 10))
+               config.lcd.bright.addNotifier(setLCDbright);
+               config.lcd.bright.apply = lambda : setLCDbright(config.lcd.bright)
+               config.lcd.bright.callNotifiersOnSaveAndCancel = True
+
                config.lcd.invert = ConfigYesNo(default=False)
                config.lcd.invert.addNotifier(setLCDinverted);
+       else:
+               def doNothing():
+                       pass
+               config.lcd.contrast = ConfigNothing()
+               config.lcd.bright = ConfigNothing()
+               config.lcd.standby = ConfigNothing()
+               config.lcd.bright.apply = lambda : doNothing()
+               config.lcd.standby.apply = lambda : doNothing()
+
+       config.misc.standbyCounter.addNotifier(standbyCounterChanged, initial_call = False)
+