From e77779c4822c7c860f5006b24445960722c7a46e Mon Sep 17 00:00:00 2001 From: Stefan Pluecken Date: Sun, 11 Jun 2006 22:11:07 +0000 Subject: [PATCH 1/1] skip separation lines in a ChoiceBox when pressing up/down (a choicebox of only separation lines will cause an endless loop. so don't do it :)) --- lib/python/Screens/ChoiceBox.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/python/Screens/ChoiceBox.py b/lib/python/Screens/ChoiceBox.py index 60aa5e10..522ee3c5 100644 --- a/lib/python/Screens/ChoiceBox.py +++ b/lib/python/Screens/ChoiceBox.py @@ -30,7 +30,7 @@ class ChoiceBox(Screen): pos += 1 self["list"] = ChoiceList(list = self.list, selection = selection) - self["actions"] = NumberActionMap(["WizardActions", "InputActions", "ColorActions"], + self["actions"] = NumberActionMap(["WizardActions", "InputActions", "ColorActions", "DirectionActions"], { "ok": self.go, "back": self.cancel, @@ -47,7 +47,9 @@ class ChoiceBox(Screen): "red": self.keyRed, "green": self.keyGreen, "yellow": self.keyYellow, - "blue": self.keyBlue + "blue": self.keyBlue, + "up": self.up, + "down": self.down }, -1) def keyLeft(self): @@ -56,6 +58,17 @@ class ChoiceBox(Screen): def keyRight(self): pass + def up(self): + while 1: + self["list"].instance.moveSelection(self["list"].instance.moveUp) + if self["list"].l.getCurrentSelection()[0][0] != "--": + break + + def down(self): + while 1: + self["list"].instance.moveSelection(self["list"].instance.moveDown) + if self["list"].l.getCurrentSelection()[0][0] != "--": + break def keyNumberGlobal(self, number): print "pressed", number if self.keymap.has_key(str(number)): -- 2.30.2