console: make g/G shortcuts work in more contexts

This commit is contained in:
Aldo Cortesi 2015-04-17 13:30:49 +12:00
parent d20069fcd2
commit ff654730e8
3 changed files with 15 additions and 2 deletions

View File

@ -47,6 +47,10 @@ class EventListBox(urwid.ListBox):
if key == "C":
self.master.clear_events()
key = None
elif key == "G":
self.set_focus(0)
elif key == "g":
self.set_focus(len(self.master.eventlist)-1)
return urwid.ListBox.keypress(self, size, key)

View File

@ -294,6 +294,7 @@ class GridWalker(urwid.ListWalker):
def set_focus(self, focus):
self.stop_edit()
self.focus = focus
self._modified()
def get_next(self, pos):
if pos+1 >= len(self.lst):
@ -414,6 +415,10 @@ class GridEditor(urwid.WidgetWrap):
res.append(i[0])
self.callback(self.data_out(res), *self.cb_args, **self.cb_kwargs)
signals.pop_view_state.send(self)
elif key == "G":
self.walker.set_focus(0)
elif key == "g":
self.walker.set_focus(len(self.walker.lst)-1)
elif key in ["h", "left"]:
self.walker.left()
elif key in ["l", "right"]:
@ -459,10 +464,10 @@ class GridEditor(urwid.WidgetWrap):
("a", "add row after cursor"),
("d", "delete row"),
("e", "spawn external editor on current field"),
("q", "return to flow view"),
("q", "save changes and exit editor"),
("r", "read value from file"),
("R", "read unescaped value from file"),
("esc", "return to flow view/exit field edit mode"),
("esc", "save changes and exit editor"),
("tab", "next field"),
("enter", "edit field"),
]

View File

@ -103,4 +103,8 @@ class HelpView(urwid.ListBox):
return None
elif key == "?":
key = None
elif key == "G":
self.set_focus(0)
elif key == "g":
self.set_focus(len(self.body.contents))
return urwid.ListBox.keypress(self, size, key)