aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@corte.si>2016-07-28 11:18:20 +1200
committerGitHub <noreply@github.com>2016-07-28 11:18:20 +1200
commit3636ed7d41a53819e38996022c16326a53e47a9e (patch)
tree1794e02e45aa7746ef7e584386e9c3e372a223e3
parent75ab006ca99d5cfaf2497e97bb8745464d643903 (diff)
parentd6e4ef4cedb6e45e9890f44cc152cd8e90aedb01 (diff)
downloadmitmproxy-3636ed7d41a53819e38996022c16326a53e47a9e.tar.gz
mitmproxy-3636ed7d41a53819e38996022c16326a53e47a9e.tar.bz2
mitmproxy-3636ed7d41a53819e38996022c16326a53e47a9e.zip
Merge pull request #1446 from cortesi/state
console: add replace_view_state, fix statusbar issues
-rw-r--r--mitmproxy/console/master.py18
-rw-r--r--mitmproxy/console/signals.py1
2 files changed, 18 insertions, 1 deletions
diff --git a/mitmproxy/console/master.py b/mitmproxy/console/master.py
index 03ec8b63..9a9addc5 100644
--- a/mitmproxy/console/master.py
+++ b/mitmproxy/console/master.py
@@ -258,6 +258,7 @@ class ConsoleMaster(flow.FlowMaster):
signals.call_in.connect(self.sig_call_in)
signals.pop_view_state.connect(self.sig_pop_view_state)
+ signals.replace_view_state.connect(self.sig_replace_view_state)
signals.push_view_state.connect(self.sig_push_view_state)
signals.sig_add_log.connect(self.sig_add_log)
self.addons.add(options, *builtins.default_addons())
@@ -296,7 +297,19 @@ class ConsoleMaster(flow.FlowMaster):
return callback(*args)
self.loop.set_alarm_in(seconds, cb)
+ def sig_replace_view_state(self, sender):
+ """
+ A view has been pushed onto the stack, and is intended to replace
+ the current view rather tha creating a new stack entry.
+ """
+ if len(self.view_stack) > 1:
+ del self.view_stack[1]
+
def sig_pop_view_state(self, sender):
+ """
+ Pop the top view off the view stack. If no more views will be left
+ after this, prompt for exit.
+ """
if len(self.view_stack) > 1:
self.view_stack.pop()
self.loop.widget = self.view_stack[-1]
@@ -312,6 +325,9 @@ class ConsoleMaster(flow.FlowMaster):
)
def sig_push_view_state(self, sender, window):
+ """
+ Push a new view onto the view stack.
+ """
self.view_stack.append(window)
self.loop.widget = window
self.loop.draw_screen()
@@ -352,8 +368,8 @@ class ConsoleMaster(flow.FlowMaster):
def toggle_eventlog(self):
self.options.eventlog = not self.options.eventlog
- signals.pop_view_state.send(self)
self.view_flowlist()
+ signals.replace_view_state.send(self)
def _readflows(self, path):
"""
diff --git a/mitmproxy/console/signals.py b/mitmproxy/console/signals.py
index 97507834..93eb399f 100644
--- a/mitmproxy/console/signals.py
+++ b/mitmproxy/console/signals.py
@@ -43,3 +43,4 @@ flowlist_change = blinker.Signal()
# Pop and push view state onto a stack
pop_view_state = blinker.Signal()
push_view_state = blinker.Signal()
+replace_view_state = blinker.Signal()