Make project list searchable
Change-Id: Icc85aa2dc96db0879ff0518fa150f02dc66d6459
This commit is contained in:
parent
1f25c9b450
commit
28856ae03a
@ -91,7 +91,7 @@ class ProjectRow(urwid.Button):
|
|||||||
self.topic_key = None
|
self.topic_key = None
|
||||||
self.indent = ''
|
self.indent = ''
|
||||||
self.project_name = project.name
|
self.project_name = project.name
|
||||||
self.name = urwid.Text('')
|
self.name = mywid.SearchableText('')
|
||||||
self._setName(project.name, self.indent)
|
self._setName(project.name, self.indent)
|
||||||
self.name.set_wrap_mode('clip')
|
self.name.set_wrap_mode('clip')
|
||||||
self.unreviewed_changes = urwid.Text(u'', align=urwid.RIGHT)
|
self.unreviewed_changes = urwid.Text(u'', align=urwid.RIGHT)
|
||||||
@ -105,6 +105,9 @@ class ProjectRow(urwid.Button):
|
|||||||
self._w = urwid.AttrMap(self.row_style, None, focus_map=self.project_focus_map)
|
self._w = urwid.AttrMap(self.row_style, None, focus_map=self.project_focus_map)
|
||||||
self.update(project)
|
self.update(project)
|
||||||
|
|
||||||
|
def search(self, search, attribute):
|
||||||
|
return self.name.search(search, attribute)
|
||||||
|
|
||||||
def update(self, project):
|
def update(self, project):
|
||||||
cache = self.app.project_cache.get(project)
|
cache = self.app.project_cache.get(project)
|
||||||
if project.subscribed:
|
if project.subscribed:
|
||||||
@ -198,7 +201,7 @@ class ProjectListHeader(urwid.WidgetWrap):
|
|||||||
super(ProjectListHeader, self).__init__(urwid.Columns(cols))
|
super(ProjectListHeader, self).__init__(urwid.Columns(cols))
|
||||||
|
|
||||||
@mouse_scroll_decorator.ScrollByWheel
|
@mouse_scroll_decorator.ScrollByWheel
|
||||||
class ProjectListView(urwid.WidgetWrap):
|
class ProjectListView(urwid.WidgetWrap, mywid.Searchable):
|
||||||
def getCommands(self):
|
def getCommands(self):
|
||||||
return [
|
return [
|
||||||
(keymap.TOGGLE_LIST_SUBSCRIBED,
|
(keymap.TOGGLE_LIST_SUBSCRIBED,
|
||||||
@ -223,6 +226,8 @@ class ProjectListView(urwid.WidgetWrap):
|
|||||||
"Remove selected project from topic"),
|
"Remove selected project from topic"),
|
||||||
(keymap.RENAME_PROJECT_TOPIC,
|
(keymap.RENAME_PROJECT_TOPIC,
|
||||||
"Rename selected project topic"),
|
"Rename selected project topic"),
|
||||||
|
(keymap.INTERACTIVE_SEARCH,
|
||||||
|
"Interactive search"),
|
||||||
]
|
]
|
||||||
|
|
||||||
def help(self):
|
def help(self):
|
||||||
@ -233,6 +238,7 @@ class ProjectListView(urwid.WidgetWrap):
|
|||||||
def __init__(self, app):
|
def __init__(self, app):
|
||||||
super(ProjectListView, self).__init__(urwid.Pile([]))
|
super(ProjectListView, self).__init__(urwid.Pile([]))
|
||||||
self.log = logging.getLogger('gertty.view.project_list')
|
self.log = logging.getLogger('gertty.view.project_list')
|
||||||
|
self.searchInit()
|
||||||
self.app = app
|
self.app = app
|
||||||
self.unreviewed = True
|
self.unreviewed = True
|
||||||
self.subscribed = True
|
self.subscribed = True
|
||||||
@ -532,6 +538,9 @@ class ProjectListView(urwid.WidgetWrap):
|
|||||||
self.refresh()
|
self.refresh()
|
||||||
|
|
||||||
def keypress(self, size, key):
|
def keypress(self, size, key):
|
||||||
|
if self.searchKeypress(size, key):
|
||||||
|
return None
|
||||||
|
|
||||||
if not self.app.input_buffer:
|
if not self.app.input_buffer:
|
||||||
key = super(ProjectListView, self).keypress(size, key)
|
key = super(ProjectListView, self).keypress(size, key)
|
||||||
keys = self.app.input_buffer + [key]
|
keys = self.app.input_buffer + [key]
|
||||||
@ -582,4 +591,7 @@ class ProjectListView(urwid.WidgetWrap):
|
|||||||
self.app.status.update()
|
self.app.status.update()
|
||||||
self.refresh()
|
self.refresh()
|
||||||
return True
|
return True
|
||||||
|
if keymap.INTERACTIVE_SEARCH in commands:
|
||||||
|
self.searchStart()
|
||||||
|
return True
|
||||||
return False
|
return False
|
||||||
|
Loading…
x
Reference in New Issue
Block a user