[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [nyx/master] Event selection dialog takes care of previous selected event types
commit 7d14b821ccabf017dbe023aa25edccdf1d0323e4
Author: Sambuddha Basu <sambuddhabasu1@xxxxxxxxx>
Date: Mon May 9 01:06:19 2016 +0400
Event selection dialog takes care of previous selected event types
Tor runlevels are followed by the rest of the events in the event selection dialog
---
nyx/panel/log.py | 2 +-
nyx/popups.py | 18 ++++++++++--------
2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/nyx/panel/log.py b/nyx/panel/log.py
index f2183a7..b0789c3 100644
--- a/nyx/panel/log.py
+++ b/nyx/panel/log.py
@@ -147,7 +147,7 @@ class LogPanel(nyx.panel.DaemonPanel):
Prompts the user to select the events being listened for.
TODO: Replace show_event_selection_prompt() with this method.
"""
- event_types = nyx.popups.new_select_event_types()
+ event_types = nyx.popups.new_select_event_types(self._event_types)
if event_types and event_types != self._event_types:
self._event_types = nyx.log.listen_for_events(self._register_tor_event, event_types)
diff --git a/nyx/popups.py b/nyx/popups.py
index 559f006..87e65e3 100644
--- a/nyx/popups.py
+++ b/nyx/popups.py
@@ -25,6 +25,7 @@ import nyx
import nyx.arguments
import nyx.controller
import nyx.curses
+import nyx.log
import nyx.panel
from nyx.curses import RED, GREEN, YELLOW, CYAN, WHITE, NORMAL, BOLD, HIGHLIGHT
@@ -417,7 +418,7 @@ def select_event_types():
return None
-def new_select_event_types():
+def new_select_event_types(initial_selection):
"""
Presents a chart of event types Tor supports. The user can select a set of
events.
@@ -433,8 +434,9 @@ def new_select_event_types():
return
events = events.split()
+ events = nyx.log.TOR_RUNLEVELS + [event for event in events if event not in nyx.log.TOR_RUNLEVELS]
selection = 0
- selected_events = []
+ selected_events = initial_selection
def _render(subwindow):
subwindow.box()
@@ -444,7 +446,7 @@ def new_select_event_types():
for i, line in enumerate(tor_events):
for j, in_line in enumerate(line):
- x = subwindow.addstr(j * 30 + 1, i + 1, '[X]' if (i * 3 + j) in selected_events else '[ ]')
+ x = subwindow.addstr(j * 30 + 1, i + 1, '[X]' if in_line in selected_events else '[ ]')
x = subwindow.addstr(x, i + 1, in_line, HIGHLIGHT if selection == (i * 3 + j) else NORMAL)
x = 30
@@ -467,14 +469,14 @@ def new_select_event_types():
elif key.match('right'):
selection = min(len(events) + 1, selection + 1)
elif key.is_selection():
- if selection in selected_events:
- selected_events.remove(selection)
- elif selection == len(events):
- return set([events[i] for i in selected_events])
+ if selection == len(events):
+ return set(selected_events)
elif selection == (len(events) + 1):
return None
+ elif events[selection] in selected_events:
+ selected_events.remove(events[selection])
else:
- selected_events.append(selection)
+ selected_events.append(events[selection])
elif key.match('esc'):
return None
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits