aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console/window.py
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy/console/window.py')
-rw-r--r--libmproxy/console/window.py100
1 files changed, 15 insertions, 85 deletions
diff --git a/libmproxy/console/window.py b/libmproxy/console/window.py
index d686f61d..d64e83df 100644
--- a/libmproxy/console/window.py
+++ b/libmproxy/console/window.py
@@ -1,19 +1,26 @@
import urwid
-from . import common, grideditor, signals, contentview
+from . import signals
+
class Window(urwid.Frame):
- def __init__(self, master, body, header, footer):
- urwid.Frame.__init__(self, body, header=header, footer=footer)
+ def __init__(self, master, body, header, footer, helpctx):
+ urwid.Frame.__init__(
+ self,
+ urwid.AttrWrap(body, "background"),
+ header = urwid.AttrWrap(header, "background") if header else None,
+ footer = urwid.AttrWrap(footer, "background") if footer else None
+ )
self.master = master
+ self.helpctx = helpctx
signals.focus.connect(self.sig_focus)
def sig_focus(self, sender, section):
self.focus_position = section
def keypress(self, size, k):
- k = urwid.Frame.keypress(self, self.master.loop.screen_size, k)
+ k = super(self.__class__, self).keypress(size, k)
if k == "?":
- self.master.view_help()
+ self.master.view_help(self.helpctx)
elif k == "c":
if not self.master.client_playback:
signals.status_prompt_path.send(
@@ -31,30 +38,6 @@ class Window(urwid.Frame):
),
callback = self.master.stop_client_playback_prompt,
)
- elif k == "H":
- self.master.view_grideditor(
- grideditor.SetHeadersEditor(
- self.master,
- self.master.setheaders.get_specs(),
- self.master.setheaders.set
- )
- )
- elif k == "I":
- self.master.view_grideditor(
- grideditor.HostPatternEditor(
- self.master,
- [[x] for x in self.master.get_ignore_filter()],
- self.master.edit_ignore_filter
- )
- )
- elif k == "T":
- self.master.view_grideditor(
- grideditor.HostPatternEditor(
- self.master,
- [[x] for x in self.master.get_tcp_filter()],
- self.master.edit_tcp_filter
- )
- )
elif k == "i":
signals.status_prompt.send(
self,
@@ -62,40 +45,12 @@ class Window(urwid.Frame):
text = self.master.state.intercept_txt,
callback = self.master.set_intercept
)
+ elif k == "o":
+ self.master.view_options()
elif k == "Q":
raise urwid.ExitMainLoop
elif k == "q":
- signals.status_prompt_onekey.send(
- self,
- prompt = "Quit",
- keys = (
- ("yes", "y"),
- ("no", "n"),
- ),
- callback = self.master.quit,
- )
- elif k == "M":
- signals.status_prompt_onekey.send(
- prompt = "Global default display mode",
- keys = contentview.view_prompts,
- callback = self.master.change_default_display_mode
- )
- elif k == "R":
- self.master.view_grideditor(
- grideditor.ReplaceEditor(
- self.master,
- self.master.replacehooks.get_specs(),
- self.master.replacehooks.set
- )
- )
- elif k == "s":
- self.master.view_grideditor(
- grideditor.ScriptEditor(
- self.master,
- [[i.command] for i in self.master.scripts],
- self.master.edit_scripts
- )
- )
+ signals.pop_view_state.send(self)
elif k == "S":
if not self.master.server_playback:
signals.status_prompt_path.send(
@@ -113,30 +68,5 @@ class Window(urwid.Frame):
),
callback = self.master.stop_server_playback_prompt,
)
- elif k == "o":
- signals.status_prompt_onekey.send(
- prompt = "Options",
- keys = (
- ("anticache", "a"),
- ("anticomp", "c"),
- ("showhost", "h"),
- ("killextra", "k"),
- ("norefresh", "n"),
- ("no-upstream-certs", "u"),
- ),
- callback = self.master._change_options
- )
- elif k == "t":
- signals.status_prompt.send(
- prompt = "Sticky cookie filter",
- text = self.master.stickycookie_txt,
- callback = self.master.set_stickycookie
- )
- elif k == "u":
- signals.status_prompt.send(
- prompt = "Sticky auth filter",
- text = self.master.stickyauth_txt,
- callback = self.master.set_stickyauth
- )
else:
return k