From a34eeb9a281fa4cd036d2ede096dbe44f78ab1d2 Mon Sep 17 00:00:00 2001 From: Jake Drahos Date: Thu, 11 Jun 2015 11:49:23 -0500 Subject: Fixed console rendering bug Clearing all flows now works properly --- libmproxy/console/__init__.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'libmproxy/console/__init__.py') diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py index 052ac7dd..cbcba52f 100644 --- a/libmproxy/console/__init__.py +++ b/libmproxy/console/__init__.py @@ -100,9 +100,12 @@ class ConsoleState(flow.State): return ret def clear(self): - self.focus = None super(ConsoleState, self).clear() - + if len(self.flows.views) == 0: + self.focus = None + else: + self.focus = 0 + self.set_focus(self.focus) class Options(object): attributes = [ -- cgit v1.2.3 From 486177edc7090539e063ec2a0dd70caffd8ec3cc Mon Sep 17 00:00:00 2001 From: Jake Drahos Date: Thu, 11 Jun 2015 16:15:24 -0500 Subject: Added functionality to write marked flows to file w (write) -> m (marked) --- libmproxy/console/__init__.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'libmproxy/console/__init__.py') diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py index cbcba52f..20580a28 100644 --- a/libmproxy/console/__init__.py +++ b/libmproxy/console/__init__.py @@ -594,6 +594,13 @@ class ConsoleMaster(flow.FlowMaster): def save_flows(self, path): return self._write_flows(path, self.state.view) + + def save_marked_flows(self, path): + marked_flows = [] + for f in self.state.view: + if f.marked: + marked_flows.append(f) + return self._write_flows(path, marked_flows) def load_flows_callback(self, path): if not path: -- cgit v1.2.3 From 2a6698bf5a2ebe576ae0bbcacdee69d6eed10be9 Mon Sep 17 00:00:00 2001 From: Jake Drahos Date: Thu, 11 Jun 2015 20:27:33 -0500 Subject: Moved marking from flow to console No longer taints the flow primitive --- libmproxy/console/__init__.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'libmproxy/console/__init__.py') diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py index 20580a28..3d20947b 100644 --- a/libmproxy/console/__init__.py +++ b/libmproxy/console/__init__.py @@ -48,6 +48,7 @@ class ConsoleState(flow.State): self.set_focus(0) elif self.follow_focus: self.set_focus(len(self.view) - 1) + self.set_flow_marked(f, False) return f def update_flow(self, f): @@ -100,12 +101,29 @@ class ConsoleState(flow.State): return ret def clear(self): + marked_flows = [] + for f in self.flows: + if self.flow_marked(f): + marked_flows.append(f) + super(ConsoleState, self).clear() + + for f in marked_flows: + self.add_flow(f) + self.set_flow_marked(f, True) + if len(self.flows.views) == 0: self.focus = None else: self.focus = 0 self.set_focus(self.focus) + + def flow_marked(self, flow): + return self.get_flow_setting(flow, "marked", False) + + def set_flow_marked(self, flow, marked): + self.add_flow_setting(flow, "marked", marked) + class Options(object): attributes = [ @@ -598,7 +616,7 @@ class ConsoleMaster(flow.FlowMaster): def save_marked_flows(self, path): marked_flows = [] for f in self.state.view: - if f.marked: + if self.state.flow_marked(f): marked_flows.append(f) return self._write_flows(path, marked_flows) -- cgit v1.2.3