diff options
author | Aldo Cortesi <aldo@corte.si> | 2016-07-28 11:18:20 +1200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-28 11:18:20 +1200 |
commit | 3636ed7d41a53819e38996022c16326a53e47a9e (patch) | |
tree | 1794e02e45aa7746ef7e584386e9c3e372a223e3 | |
parent | 75ab006ca99d5cfaf2497e97bb8745464d643903 (diff) | |
parent | d6e4ef4cedb6e45e9890f44cc152cd8e90aedb01 (diff) | |
download | mitmproxy-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.py | 18 | ||||
-rw-r--r-- | mitmproxy/console/signals.py | 1 |
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() |