From e0e7cf8fbfac3bfbf577b7c76c3b9d461a2854ee Mon Sep 17 00:00:00 2001 From: acid-burn Date: Thu, 6 Nov 2008 21:26:23 +0100 Subject: fix Dreambox Keyboard Numberinput inside ConfigIP --- lib/python/Components/config.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) mode change 100644 => 100755 lib/python/Components/config.py (limited to 'lib/python/Components/config.py') diff --git a/lib/python/Components/config.py b/lib/python/Components/config.py old mode 100644 new mode 100755 index b448ca6d..c21a9192 --- a/lib/python/Components/config.py +++ b/lib/python/Components/config.py @@ -513,6 +513,7 @@ class ConfigIP(ConfigSequence): self.auto_jump = auto_jump def handleKey(self, key): + if key == KEY_LEFT: if self.marked_block > 0: self.marked_block -= 1 @@ -531,8 +532,14 @@ class ConfigIP(ConfigSequence): self.marked_block = len(self.limits)-1 self.overwrite = True - if key in KEY_NUMBERS: - number = getKeyNumber(key) + if key in KEY_NUMBERS or key == KEY_ASCII: + if key == KEY_ASCII: + code = getPrevAsciiCode() + if code < 48 or code > 57: + return + number = code - 48 + else: + number = getKeyNumber(key) oldvalue = self._value[self.marked_block] if self.overwrite: -- cgit v1.2.3 From a90424c0dc460b587898b65f6a89a564399ab551 Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 7 Nov 2008 20:35:57 +0100 Subject: fix non working invert of oled display add non working standby slider in display setup --- lib/gdi/lcd.cpp | 8 +++++++- lib/python/Components/Lcd.py | 10 ++++++---- lib/python/Components/config.py | 5 +++++ 3 files changed, 18 insertions(+), 5 deletions(-) (limited to 'lib/python/Components/config.py') diff --git a/lib/gdi/lcd.cpp b/lib/gdi/lcd.cpp index 39117194..ecc19b53 100644 --- a/lib/gdi/lcd.cpp +++ b/lib/gdi/lcd.cpp @@ -166,8 +166,14 @@ void eDBoxLCD::update() memset(raw, 0, 64*64); for (y=0; y<64; y++) { + int pix=0; for (x=0; x<128 / 2; x++) - raw[y*64+x] = (_buffer[y*132 + x * 2 + 2] & 0xF0) |(_buffer[y*132 + x * 2 + 1 + 2] >> 4); + { + pix = (_buffer[y*132 + x * 2 + 2] & 0xF0) |(_buffer[y*132 + x * 2 + 1 + 2] >> 4); + if (inverted) + pix = 0xFF - pix; + raw[y*64+x] = pix; + } } if (lcdfd >= 0) write(lcdfd, raw, 64*64); diff --git a/lib/python/Components/Lcd.py b/lib/python/Components/Lcd.py index 0471843c..0e501237 100644 --- a/lib/python/Components/Lcd.py +++ b/lib/python/Components/Lcd.py @@ -44,9 +44,14 @@ def InitLcd(): ilcd = LCD() - config.lcd.bright = ConfigSlider(default=10, limits=(0, 10)) + config.lcd.standby = ConfigSlider(default=0, 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 if not ilcd.isOled(): config.lcd.contrast = ConfigSlider(default=5, limits=(0, 20)) @@ -54,9 +59,6 @@ def InitLcd(): else: config.lcd.contrast = ConfigNothing() - config.lcd.standby = ConfigSlider(default=0, limits=(0, 10)) - config.lcd.standby.apply = lambda : setLCDbright(config.lcd.standby) - config.lcd.invert = ConfigYesNo(default=False) config.lcd.invert.addNotifier(setLCDinverted); else: diff --git a/lib/python/Components/config.py b/lib/python/Components/config.py index c21a9192..4ddcabec 100755 --- a/lib/python/Components/config.py +++ b/lib/python/Components/config.py @@ -34,6 +34,7 @@ class ConfigElement(object): self.save_disabled = False self.notifiers = [] self.enabled = True + self.callNotifiersOnSaveAndCancel = False # you need to override this to do input validation def setValue(self, value): @@ -66,9 +67,13 @@ class ConfigElement(object): self.saved_value = None else: self.saved_value = self.tostring(self.value) + if self.callNotifiersOnSaveAndCancel: + self.changed() def cancel(self): self.load() + if self.callNotifiersOnSaveAndCancel: + self.changed() def isChanged(self): sv = self.saved_value -- cgit v1.2.3 From 4f3fcdfda1657e35deb3759173024e3b478a4b15 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Wed, 12 Nov 2008 23:39:25 +0100 Subject: when passing a broken utf-8 string, ignore characters. fixes #55. --- lib/python/Components/config.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/python/Components/config.py') diff --git a/lib/python/Components/config.py b/lib/python/Components/config.py index 4ddcabec..4d57bbb9 100755 --- a/lib/python/Components/config.py +++ b/lib/python/Components/config.py @@ -782,12 +782,12 @@ class ConfigText(ConfigElement, NumericalTextInput): def getValue(self): return self.text.encode("utf-8") - + def setValue(self, val): try: self.text = val.decode("utf-8") except UnicodeDecodeError: - self.text = val + self.text = val.decode("utf-8", "ignore") print "Broken UTF8!" value = property(getValue, setValue) -- cgit v1.2.3