aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@corte.si>2017-03-19 14:13:54 +1300
committerAldo Cortesi <aldo@corte.si>2017-03-19 14:13:54 +1300
commit8d68196fd04e6e7239c49141603d9385a017d808 (patch)
treea765ceb665d07abc2f8fa903b388e8998c404442
parent1b6bc874b5b3f7d352e9b181c774ea044957a6e6 (diff)
downloadmitmproxy-8d68196fd04e6e7239c49141603d9385a017d808.tar.gz
mitmproxy-8d68196fd04e6e7239c49141603d9385a017d808.tar.bz2
mitmproxy-8d68196fd04e6e7239c49141603d9385a017d808.zip
console: use overlay chooser to pick flow view mode
More consistent, and fixes status prompt overflow issue.
-rw-r--r--mitmproxy/tools/console/flowview.py28
1 files changed, 13 insertions, 15 deletions
diff --git a/mitmproxy/tools/console/flowview.py b/mitmproxy/tools/console/flowview.py
index 90cca1c5..ba41c947 100644
--- a/mitmproxy/tools/console/flowview.py
+++ b/mitmproxy/tools/console/flowview.py
@@ -15,6 +15,7 @@ from mitmproxy.net.http import status_codes
from mitmproxy.tools.console import common
from mitmproxy.tools.console import flowdetailview
from mitmproxy.tools.console import grideditor
+from mitmproxy.tools.console import overlay
from mitmproxy.tools.console import searchable
from mitmproxy.tools.console import signals
from mitmproxy.tools.console import tabs
@@ -237,11 +238,10 @@ class FlowView(tabs.Tabs):
return description, text_objects
def viewmode_get(self):
- override = self.view.settings[self.flow].get(
+ return self.view.settings[self.flow].get(
(self.tab_offset, "prettyview"),
- None
+ self.master.options.default_contentview
)
- return self.master.options.default_contentview if override is None else override
def conn_text(self, conn):
if conn:
@@ -483,11 +483,8 @@ class FlowView(tabs.Tabs):
return self._view_nextprev_flow(self.view.index(flow) - 1, flow)
def change_this_display_mode(self, t):
- view = contentviews.get_by_shortcut(t)
- if view:
- self.view.settings[self.flow][(self.tab_offset, "prettyview")] = view.name
- else:
- self.view.settings[self.flow][(self.tab_offset, "prettyview")] = None
+ view = contentviews.get(t)
+ self.view.settings[self.flow][(self.tab_offset, "prettyview")] = view.name.lower()
signals.flow_change.send(self, flow=self.flow)
def keypress(self, size, key):
@@ -607,13 +604,14 @@ class FlowView(tabs.Tabs):
signals.flow_change.send(self, flow = self.flow)
signals.status_message.send(message="Loading all body data...")
elif key == "m":
- p = list(contentviews.view_prompts)
- p.insert(0, ("Clear", "C"))
- signals.status_prompt_onekey.send(
- self,
- prompt = "Display mode",
- keys = p,
- callback = self.change_this_display_mode
+ opts = [i.name.lower() for i in contentviews.views]
+ self.master.overlay(
+ overlay.Chooser(
+ "display mode",
+ opts,
+ self.viewmode_get(),
+ self.change_this_display_mode
+ )
)
elif key == "E":
if self.tab_offset == TAB_REQ: