diff --git a/cmdasana.py b/cmdasana.py index bf91608..cfc9bf5 100755 --- a/cmdasana.py +++ b/cmdasana.py @@ -171,6 +171,9 @@ class CmdAsana: urwid.connect_signal(project_list, 'loadproject', self.showProject) self.replaceBody(project_list) + def loadProjectSearch(self): +#callback somehow? + def showDetails(self, task_id): self.state['view'] = 'details' self.state['id'] = task_id diff --git a/ui.py b/ui.py index 376171d..e75961b 100644 --- a/ui.py +++ b/ui.py @@ -60,18 +60,35 @@ class ProjectIcon(urwid.SelectableIcon): else: return super(ProjectIcon, self).keypress(size, key) +class ProjectSearch(urwid.Edit): + def __init__(self): + super(ProjectSearch, self).__init__('Search: ') + class ProjectList(urwid.ListBox): def __init__(self, projects): self.projects = projects + self.project_search = ProjectSearch() + urwid.connet_signal(self.project_search, 'change', self.search) + body = urwid.SimpleFocusListWalker( - [ProjectIcon({'name': 'My Tasks', 'id': None}, + [ + self.project_search, + ProjectIcon({'name': 'My Tasks', 'id': None}, self.loadProject), - None] + None + ] ) super(ProjectList, self).__init__(body) self.loadPage() + def search(self): + urwid.emit_signal(self, 'search', self.project_search.get_edit_text()) + + def loadSearch(self, projects): + self.body = [self.project_search] + \ + [ProjectIcon(p, self.loadProject) for p in projects] + def loadPage(self, opt=None): self.body.pop() for i in range(50):