Highlight selected task, handle arrow keys in edit mode

This commit is contained in:
Aaron Gutierrez
2015-07-19 20:07:04 -07:00
parent 113ec0de3d
commit 45fb6c28f7
2 changed files with 14 additions and 3 deletions

View File

@@ -55,6 +55,7 @@ def registerSignals():
urwid.register_signal(ui.TaskList, 'complete')
urwid.register_signal(ui.TaskEdit, 'complete')
def main():
cmdasana = CmdAsana()
registerSignals()
@@ -62,7 +63,10 @@ def main():
task_list = ui.TaskList(cmdasana.allMyTasks())
urwid.connect_signal(task_list, 'complete', cmdasana.completeTask)
loop = urwid.MainLoop(task_list, unhandled_input=handleInput)
loop = urwid.MainLoop(task_list,
unhandled_input=handleInput,
palette=ui.palette
)
loop.run()

11
ui.py
View File

@@ -5,6 +5,10 @@ from event import Event
EDIT = 'edit'
LIST = 'list'
palette = [
('selected', 'standout', ''),
]
class TaskList(urwid.ListBox):
def __init__(self, tasks):
self.tasks = tasks
@@ -13,10 +17,11 @@ class TaskList(urwid.ListBox):
[TaskEdit(task) for task in tasks]
)
body = urwid.SimpleFocusListWalker([])
for task_widget,_ in task_widgets.contents:
urwid.connect_signal(task_widget, 'complete', self.completeTask)
body.append(urwid.AttrMap(task_widget, None, focus_map='selected'))
body = urwid.SimpleFocusListWalker([task_widgets])
super(TaskList, self).__init__(body)
def completeTask(self, task_id):
@@ -49,10 +54,12 @@ class TaskEdit(urwid.Edit):
if self.mode == EDIT:
key = super(TaskEdit, self).keypress(size, key)
if key == 'esc':
if key in ('esc', 'up', 'down'):
self.mode = LIST
self.set_caption(self.edit_text)
self.set_edit_text('')
if key != 'esc':
return key
else:
return key
else: