aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console/kveditor.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-02-08 16:55:11 +1300
committerAldo Cortesi <aldo@nullcube.com>2012-02-08 16:55:11 +1300
commit2b6bedac0ef5a79972dbb3042cc81b6dccd87fdc (patch)
tree6e45047871c8e1f4a93e2aefb6b163db3c12809e /libmproxy/console/kveditor.py
parent8b5e0812333db79e10abef91a690932bce15511f (diff)
downloadmitmproxy-2b6bedac0ef5a79972dbb3042cc81b6dccd87fdc.tar.gz
mitmproxy-2b6bedac0ef5a79972dbb3042cc81b6dccd87fdc.tar.bz2
mitmproxy-2b6bedac0ef5a79972dbb3042cc81b6dccd87fdc.zip
Add and delete for KV editor.
Diffstat (limited to 'libmproxy/console/kveditor.py')
-rw-r--r--libmproxy/console/kveditor.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/libmproxy/console/kveditor.py b/libmproxy/console/kveditor.py
index dae303e9..9b725590 100644
--- a/libmproxy/console/kveditor.py
+++ b/libmproxy/console/kveditor.py
@@ -76,6 +76,18 @@ class KVWalker(urwid.ListWalker):
self.focus_col = 0
self.editing = False
+ def delete_focus(self):
+ if self.lst:
+ del self.lst[self.focus]
+ self.focus = min(len(self.lst)-1, self.focus)
+ self._modified()
+
+ def add(self):
+ self.focus = min(self.focus +1, len(self.lst))
+ self.lst.insert(self.focus, ("", ""))
+ self.focus_col = 0
+ self.start_edit()
+
def start_edit(self):
self.editing = KVItem(self.focus_col, True, self.maxk, *self.lst[self.focus])
self._modified()
@@ -95,6 +107,7 @@ class KVWalker(urwid.ListWalker):
self._modified()
def tab_next(self):
+ self.stop_edit()
if self.focus_col == 0:
self.focus_col = 1
elif self.focus != len(self.lst)-1:
@@ -105,8 +118,10 @@ class KVWalker(urwid.ListWalker):
def get_focus(self):
if self.editing:
return self.editing, self.focus
- else:
+ elif self.lst:
return KVItem(self.focus_col, False, self.maxk, *self.lst[self.focus]), self.focus
+ else:
+ return None, None
def set_focus(self, focus):
self.stop_edit()
@@ -145,6 +160,9 @@ class KVEditor(common.WWrap):
if self.walker.editing:
if key in ["esc", "enter"]:
self.walker.stop_edit()
+ elif key == "tab":
+ self.walker.tab_next()
+ self.walker.start_edit()
else:
self.w.keypress(size, key)
return None
@@ -159,6 +177,10 @@ class KVEditor(common.WWrap):
self.walker.right()
elif key == "tab":
self.walker.tab_next()
+ elif key == "a":
+ self.walker.add()
+ elif key == "d":
+ self.walker.delete_focus()
elif key in ["enter", "e"]:
self.walker.start_edit()
else: