# HG changeset patch # User Björn Ricks # Date 1354805044 -3600 # Node ID be9acb00cd976cb5a24d7a2d11daa1ada4412eba # Parent eead2420b8bc16054a04419bd326d34209036df8 Update project selection Allow to select single letter projects directly. diff -r eead2420b8bc -r be9acb00cd97 getan/states.py --- a/getan/states.py Thu Dec 06 15:30:49 2012 +0100 +++ b/getan/states.py Thu Dec 06 15:44:04 2012 +0100 @@ -91,7 +91,7 @@ else: if len(key) > 0 and len(key[0]) == 1: - select_proj = SelectProjectState(self.controller, self.view, key[0]) + select_proj = SelectProjectState(self.controller, self.view) return select_proj.keypress(key) return self @@ -103,9 +103,9 @@ class SelectProjectState(State): - def __init__(self, controller, view, key): + def __init__(self, controller, view): super(SelectProjectState, self).__init__(controller, view) - self.proj_keys = key + self.proj_keys = "" self.set_footer_text() def reset(self): @@ -115,7 +115,7 @@ self.view.set_footer_text("Selecting project from key: %s" % self.proj_keys, "running") def check_key(self, key): - return len(self.controller.find_projects_by_key(key)) > 0 + return len(self.controller.find_projects_by_key(key)) def select_project(self): proj = self.controller.project_by_key(self.proj_keys) @@ -139,15 +139,20 @@ self.proj_keys = self.proj_keys[:-1] self.set_footer_text() return self + if keys.get_enter() in key: return self.select_project() + else: if len(key) > 0 and len(key[0]) == 1: proj_key = self.proj_keys + key[0] - if self.check_key(proj_key): + num = self.check_key(proj_key) + if num > 0: self.proj_keys += key[0] self.set_footer_text() - return self.select_project() + if num == 1: + # run project directly + return self.select_project() return self class ExitState(ProjectState):