Highlight selected task, handle arrow keys in edit mode
This commit is contained in:
@@ -55,6 +55,7 @@ def registerSignals():
|
|||||||
urwid.register_signal(ui.TaskList, 'complete')
|
urwid.register_signal(ui.TaskList, 'complete')
|
||||||
urwid.register_signal(ui.TaskEdit, 'complete')
|
urwid.register_signal(ui.TaskEdit, 'complete')
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
cmdasana = CmdAsana()
|
cmdasana = CmdAsana()
|
||||||
registerSignals()
|
registerSignals()
|
||||||
@@ -62,7 +63,10 @@ def main():
|
|||||||
task_list = ui.TaskList(cmdasana.allMyTasks())
|
task_list = ui.TaskList(cmdasana.allMyTasks())
|
||||||
urwid.connect_signal(task_list, 'complete', cmdasana.completeTask)
|
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()
|
loop.run()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
11
ui.py
11
ui.py
@@ -5,6 +5,10 @@ from event import Event
|
|||||||
EDIT = 'edit'
|
EDIT = 'edit'
|
||||||
LIST = 'list'
|
LIST = 'list'
|
||||||
|
|
||||||
|
palette = [
|
||||||
|
('selected', 'standout', ''),
|
||||||
|
]
|
||||||
|
|
||||||
class TaskList(urwid.ListBox):
|
class TaskList(urwid.ListBox):
|
||||||
def __init__(self, tasks):
|
def __init__(self, tasks):
|
||||||
self.tasks = tasks
|
self.tasks = tasks
|
||||||
@@ -13,10 +17,11 @@ class TaskList(urwid.ListBox):
|
|||||||
[TaskEdit(task) for task in tasks]
|
[TaskEdit(task) for task in tasks]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
body = urwid.SimpleFocusListWalker([])
|
||||||
for task_widget,_ in task_widgets.contents:
|
for task_widget,_ in task_widgets.contents:
|
||||||
urwid.connect_signal(task_widget, 'complete', self.completeTask)
|
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)
|
super(TaskList, self).__init__(body)
|
||||||
|
|
||||||
def completeTask(self, task_id):
|
def completeTask(self, task_id):
|
||||||
@@ -49,10 +54,12 @@ class TaskEdit(urwid.Edit):
|
|||||||
if self.mode == EDIT:
|
if self.mode == EDIT:
|
||||||
key = super(TaskEdit, self).keypress(size, key)
|
key = super(TaskEdit, self).keypress(size, key)
|
||||||
|
|
||||||
if key == 'esc':
|
if key in ('esc', 'up', 'down'):
|
||||||
self.mode = LIST
|
self.mode = LIST
|
||||||
self.set_caption(self.edit_text)
|
self.set_caption(self.edit_text)
|
||||||
self.set_edit_text('')
|
self.set_edit_text('')
|
||||||
|
if key != 'esc':
|
||||||
|
return key
|
||||||
else:
|
else:
|
||||||
return key
|
return key
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user