Make ConnectionList key bindings work even if there are no entries.

This commit is contained in:
Aldo Cortesi 2011-08-02 15:35:54 +12:00
parent f3742f29da
commit a1456742a8
1 changed files with 23 additions and 12 deletions

View File

@ -167,11 +167,6 @@ class ConnectionItem(WWrap):
if key == "a": if key == "a":
self.flow.accept_intercept() self.flow.accept_intercept()
self.master.sync_list_view() self.master.sync_list_view()
elif key == "A":
self.master.accept_all()
self.master.sync_list_view()
elif key == "C":
self.master.clear_connections()
elif key == "d": elif key == "d":
self.flow.kill(self.master) self.flow.kill(self.master)
self.state.delete_flow(self.flow) self.state.delete_flow(self.flow)
@ -195,9 +190,6 @@ class ConnectionItem(WWrap):
self.flow.kill(self.master) self.flow.kill(self.master)
elif key == "v": elif key == "v":
self.master.toggle_eventlog() self.master.toggle_eventlog()
elif key == "tab":
if self.master.eventlog:
pass
elif key == "enter": elif key == "enter":
if self.flow.request: if self.flow.request:
self.master.view_flow(self.flow) self.master.view_flow(self.flow)
@ -206,8 +198,6 @@ class ConnectionItem(WWrap):
"Script: ", self.state.last_script, "Script: ", self.state.last_script,
self.master.run_script, self.flow self.master.run_script, self.flow
) )
elif key == " ":
key = "page down"
return key return key
@ -238,6 +228,27 @@ class ConnectionListView(urwid.ListWalker):
return f, i return f, i
class ConnectionListBox(urwid.ListBox):
def __init__(self, master):
self.master = master
urwid.ListBox.__init__(self, master.conn_list_view)
def keypress(self, size, key):
if key == "A":
self.master.accept_all()
self.master.sync_list_view()
key = None
elif key == "C":
self.master.clear_connections()
key = None
elif key == "v":
self.master.toggle_eventlog()
key = None
elif key == " ":
key = "page down"
return urwid.ListBox.keypress(self, size, key)
class ConnectionViewHeader(WWrap): class ConnectionViewHeader(WWrap):
def __init__(self, master, f): def __init__(self, master, f):
self.master, self.flow = master, f self.master, self.flow = master, f
@ -869,7 +880,7 @@ class BodyPile(urwid.Pile):
urwid.Pile.__init__( urwid.Pile.__init__(
self, self,
[ [
urwid.ListBox(master.conn_list_view), ConnectionListBox(master),
urwid.Frame(urwid.ListBox(master.eventlist), header = self.inactive_header) urwid.Frame(urwid.ListBox(master.eventlist), header = self.inactive_header)
] ]
) )
@ -1264,7 +1275,7 @@ class ConsoleMaster(flow.FlowMaster):
if self.eventlog: if self.eventlog:
self.body = BodyPile(self) self.body = BodyPile(self)
else: else:
self.body = urwid.ListBox(self.conn_list_view) self.body = ConnectionListBox(self)
self.statusbar = StatusBar(self, self.footer_text_default) self.statusbar = StatusBar(self, self.footer_text_default)
self.header = None self.header = None
self.viewstate = VIEW_CONNLIST self.viewstate = VIEW_CONNLIST