aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>2007-10-28 09:22:33 +0000
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>2007-10-28 09:22:33 +0000
commit468f9d6d40262c6cc75a06afd2dfa232bd91bfd9 (patch)
treeca09191efe4789e7084845e964c80b4e860262d0 /lib
parent306bdc11b9e1bfa625bc57c51edc8fd042d0ba9d (diff)
downloadenigma2-468f9d6d40262c6cc75a06afd2dfa232bd91bfd9.tar.gz
enigma2-468f9d6d40262c6cc75a06afd2dfa232bd91bfd9.zip
parental control:
automatically wrap to validation pin entry in pin changing dialog when 4 figures were entered leave dialog when 4 figures were entered in the validation pin entry
Diffstat (limited to 'lib')
-rw-r--r--lib/python/Components/ConfigList.py4
-rw-r--r--lib/python/Components/config.py7
-rw-r--r--lib/python/Screens/ParentalControlSetup.py8
3 files changed, 19 insertions, 0 deletions
diff --git a/lib/python/Components/ConfigList.py b/lib/python/Components/ConfigList.py
index 7ed6031a..47b577e2 100644
--- a/lib/python/Components/ConfigList.py
+++ b/lib/python/Components/ConfigList.py
@@ -48,6 +48,10 @@ class ConfigList(HTMLComponent, GUIComponent, object):
def getCurrentIndex(self):
return self.l.getCurrentSelectionIndex()
+ def setCurrentIndex(self, index):
+ if self.instance is not None:
+ self.instance.moveSelectionTo(index)
+
def invalidateCurrent(self):
self.l.invalidateEntry(self.l.getCurrentSelectionIndex())
diff --git a/lib/python/Components/config.py b/lib/python/Components/config.py
index a872c300..de06871a 100644
--- a/lib/python/Components/config.py
+++ b/lib/python/Components/config.py
@@ -328,6 +328,8 @@ class ConfigSequence(ConfigElement):
self.default = default
self.value = copy.copy(default)
+
+ self.endNotifier = []
def validate(self):
max_pos = 0
@@ -344,6 +346,8 @@ class ConfigSequence(ConfigElement):
num += 1
if self.marked_pos >= max_pos:
+ for x in self.endNotifier:
+ x(self)
self.marked_pos = max_pos - 1
if self.marked_pos < 0:
@@ -357,6 +361,9 @@ class ConfigSequence(ConfigElement):
if self.marked_pos >= total_len:
self.marked_pos = total_len - 1
+
+ def addEndNotifier(self, notifier):
+ self.endNotifier.append(notifier)
def handleKey(self, key):
if key == KEY_LEFT:
diff --git a/lib/python/Screens/ParentalControlSetup.py b/lib/python/Screens/ParentalControlSetup.py
index abe09af0..f5f48e25 100644
--- a/lib/python/Screens/ParentalControlSetup.py
+++ b/lib/python/Screens/ParentalControlSetup.py
@@ -230,6 +230,8 @@ class ParentalControlChangePin(Screen, ConfigListScreen, ProtectedScreen):
self.list = []
self.pin1 = ConfigPIN(default = 1111, censor = "*")
self.pin2 = ConfigPIN(default = 1112, censor = "*")
+ self.pin1.addEndNotifier(boundFunction(self.valueChanged, 1))
+ self.pin2.addEndNotifier(boundFunction(self.valueChanged, 2))
self.list.append(getConfigListEntry(_("New pin"), NoSave(self.pin1)))
self.list.append(getConfigListEntry(_("Reenter new pin"), NoSave(self.pin2)))
ConfigListScreen.__init__(self, self.list)
@@ -243,6 +245,12 @@ class ParentalControlChangePin(Screen, ConfigListScreen, ProtectedScreen):
"cancel": self.cancel,
}, -1)
+ def valueChanged(self, pin, value):
+ if pin == 1:
+ self["config"].setCurrentIndex(1)
+ elif pin == 2:
+ self.keyOK()
+
def getPinText(self):
return _("Please enter the old pin code")