From 8725d50d03cf21b37a78c1d2fa03ade055c8a821 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sat, 21 Mar 2015 11:19:20 +1300 Subject: Add blinker dependency, start using it to refactor console app Blinker lets us set up a central pub/sub mechanism to disentangle our object structure. --- libmproxy/console/signals.py | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 libmproxy/console/signals.py (limited to 'libmproxy/console/signals.py') diff --git a/libmproxy/console/signals.py b/libmproxy/console/signals.py new file mode 100644 index 00000000..a844ef8f --- /dev/null +++ b/libmproxy/console/signals.py @@ -0,0 +1,4 @@ + +import blinker + +status_message = blinker.Signal() -- cgit v1.2.3 From 381a56306777900153939b1b46f20e63322944c2 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sat, 21 Mar 2015 12:37:00 +1300 Subject: Status bar message expiry based on signals and Urwid main loop --- libmproxy/console/signals.py | 1 + 1 file changed, 1 insertion(+) (limited to 'libmproxy/console/signals.py') diff --git a/libmproxy/console/signals.py b/libmproxy/console/signals.py index a844ef8f..7b0ec937 100644 --- a/libmproxy/console/signals.py +++ b/libmproxy/console/signals.py @@ -2,3 +2,4 @@ import blinker status_message = blinker.Signal() +call_in = blinker.Signal() -- cgit v1.2.3 From 89383e9c138f68caf1cc394174250c133d21aa04 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 22 Mar 2015 13:32:24 +1300 Subject: Refactor status bar prompting to use signal system --- libmproxy/console/signals.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'libmproxy/console/signals.py') diff --git a/libmproxy/console/signals.py b/libmproxy/console/signals.py index 7b0ec937..8fb35cff 100644 --- a/libmproxy/console/signals.py +++ b/libmproxy/console/signals.py @@ -1,5 +1,19 @@ - import blinker +# Show a status message in the action bar status_message = blinker.Signal() + +# Prompt for input +status_prompt = blinker.Signal() + +# Prompt for a path +status_path_prompt = blinker.Signal() + +# Prompt for a single keystroke +status_prompt_onekey = blinker.Signal() + +# Call a callback in N seconds call_in = blinker.Signal() + +# Focus the body, footer or header of the main window +focus = blinker.Signal() -- cgit v1.2.3 From 572000aa039a789ba35d4ef14e0c096256d6997d Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 22 Mar 2015 13:59:34 +1300 Subject: Rationalise prompt calling conventions --- libmproxy/console/signals.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libmproxy/console/signals.py') diff --git a/libmproxy/console/signals.py b/libmproxy/console/signals.py index 8fb35cff..e8944afb 100644 --- a/libmproxy/console/signals.py +++ b/libmproxy/console/signals.py @@ -7,7 +7,7 @@ status_message = blinker.Signal() status_prompt = blinker.Signal() # Prompt for a path -status_path_prompt = blinker.Signal() +status_prompt_path = blinker.Signal() # Prompt for a single keystroke status_prompt_onekey = blinker.Signal() -- cgit v1.2.3 From c9a09754464e27a5f34295d8a1c0b435248c104c Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 22 Mar 2015 15:11:54 +1300 Subject: console: observe state objects for changes, fire event to update status bar. --- libmproxy/console/signals.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libmproxy/console/signals.py') diff --git a/libmproxy/console/signals.py b/libmproxy/console/signals.py index e8944afb..a62b2a4e 100644 --- a/libmproxy/console/signals.py +++ b/libmproxy/console/signals.py @@ -17,3 +17,6 @@ call_in = blinker.Signal() # Focus the body, footer or header of the main window focus = blinker.Signal() + +# Fired when settings change +update_settings = blinker.Signal() -- cgit v1.2.3 From aa9a38522f5fbfef556578b6018ad365ad5e844d Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 22 Mar 2015 15:58:32 +1300 Subject: Remove refresh_flow mechanism in favor of a signal-based implementation --- libmproxy/console/signals.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libmproxy/console/signals.py') diff --git a/libmproxy/console/signals.py b/libmproxy/console/signals.py index a62b2a4e..9afde6f4 100644 --- a/libmproxy/console/signals.py +++ b/libmproxy/console/signals.py @@ -20,3 +20,6 @@ focus = blinker.Signal() # Fired when settings change update_settings = blinker.Signal() + +# Fired when a flow changes +flow_change = blinker.Signal() -- cgit v1.2.3 From 08bb07653306ed0f84932391732391227ee07ba2 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 22 Mar 2015 17:18:53 +1300 Subject: console: signal-based view stack, unifying mechanisms for help, flow views, etc. --- libmproxy/console/signals.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'libmproxy/console/signals.py') diff --git a/libmproxy/console/signals.py b/libmproxy/console/signals.py index 9afde6f4..e4c11f5a 100644 --- a/libmproxy/console/signals.py +++ b/libmproxy/console/signals.py @@ -23,3 +23,8 @@ update_settings = blinker.Signal() # Fired when a flow changes flow_change = blinker.Signal() + + +# Pop and push view state onto a stack +pop_view_state = blinker.Signal() +push_view_state = blinker.Signal() -- cgit v1.2.3 From e76467e977c061d92f88500b23f11bbf3cc365bb Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Tue, 7 Apr 2015 15:59:38 +1200 Subject: Refactor flow list state management - Use signal mechanism for state synchronisation - Move "Copy to clipboard" shortcut to "P" --- libmproxy/console/signals.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'libmproxy/console/signals.py') diff --git a/libmproxy/console/signals.py b/libmproxy/console/signals.py index e4c11f5a..6d429b93 100644 --- a/libmproxy/console/signals.py +++ b/libmproxy/console/signals.py @@ -24,6 +24,8 @@ update_settings = blinker.Signal() # Fired when a flow changes flow_change = blinker.Signal() +# Fired when the flow list changes +flowlist_change = blinker.Signal() # Pop and push view state onto a stack pop_view_state = blinker.Signal() -- cgit v1.2.3 From 8e2e83a3c6d47e52a5398f851b2900dd042f3d6a Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Tue, 7 Apr 2015 16:13:42 +1200 Subject: console: add g/G shortcuts throughout g: go to end G: go to beginning --- libmproxy/console/signals.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libmproxy/console/signals.py') diff --git a/libmproxy/console/signals.py b/libmproxy/console/signals.py index 6d429b93..c1bcf201 100644 --- a/libmproxy/console/signals.py +++ b/libmproxy/console/signals.py @@ -24,7 +24,7 @@ update_settings = blinker.Signal() # Fired when a flow changes flow_change = blinker.Signal() -# Fired when the flow list changes +# Fired when the flow list or focus changes flowlist_change = blinker.Signal() # Pop and push view state onto a stack -- cgit v1.2.3 From 57a61ae8fd420744d616765d13ad93dec3b3aa52 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Tue, 2 Jun 2015 12:09:07 +1200 Subject: console: convert add_event to a signal. --- libmproxy/console/signals.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'libmproxy/console/signals.py') diff --git a/libmproxy/console/signals.py b/libmproxy/console/signals.py index c1bcf201..52f72d34 100644 --- a/libmproxy/console/signals.py +++ b/libmproxy/console/signals.py @@ -1,5 +1,14 @@ import blinker +# Show a status message in the action bar +sig_add_event = blinker.Signal() +def add_event(e, level): + sig_add_event.send( + None, + e=e, + level=level + ) + # Show a status message in the action bar status_message = blinker.Signal() -- cgit v1.2.3