commit 6a30efb8f330305ca8c354c36483e9b5b1bfe77d Author: Damian Johnson atagar@torproject.org Date: Tue Sep 13 10:45:38 2016 -0700
Move quit and halt methods
Simply moving a couple of our methods used to terminate the application. --- nyx/__init__.py | 33 ++++++++++++++++++++++++++++++++- nyx/controller.py | 24 ++---------------------- 2 files changed, 34 insertions(+), 23 deletions(-)
diff --git a/nyx/__init__.py b/nyx/__init__.py index 2ca58fe..c5e24c1 100644 --- a/nyx/__init__.py +++ b/nyx/__init__.py @@ -24,12 +24,16 @@ Tor curses monitoring application. |- get_daemon_panels - provides daemon panels | |- is_paused - checks if the interface is paused - +- set_paused - sets paused state + |- set_paused - sets paused state + | + |- quit - quits our application + +- halt - stops daemon panels """
import distutils.spawn import os import sys +import threading
import stem.connection import stem.control @@ -228,6 +232,7 @@ class Interface(object): def __init__(self): self._page = 0 self._paused = False + self._quit = False
def get_page(self): """ @@ -325,4 +330,30 @@ class Interface(object): for panel_impl in self.get_page_panels(): panel_impl.redraw()
+ def quit(self): + """ + Quits our application. + """ + + self._quit = True + + def halt(self): + """ + Stops curses panels in our interface. + + :returns: **threading.Thread** terminating daemons + """ + + def halt_panels(): + for panel_impl in self.get_daemon_panels(): + panel_impl.stop() + + for panel_impl in self.get_daemon_panels(): + panel_impl.join() + + halt_thread = threading.Thread(target = halt_panels) + halt_thread.start() + return halt_thread + + import nyx.panel diff --git a/nyx/controller.py b/nyx/controller.py index a50f2d4..7358383 100644 --- a/nyx/controller.py +++ b/nyx/controller.py @@ -7,7 +7,6 @@ user input to the proper panels. """
import time -import threading
import nyx.curses import nyx.menu @@ -106,13 +105,13 @@ class Controller(Interface):
self._page_panels = [] self._header_panel = None - self.quit_signal = False self._force_redraw = False self._last_drawn = 0
NYX_CONTROLLER = self
self._header_panel = nyx.panel.header.HeaderPanel() + first_page_panels = []
if CONFIG['features.panels.show.graph']: first_page_panels.append(nyx.panel.graph.GraphPanel()) @@ -181,25 +180,6 @@ class Controller(Interface): if force: self._last_drawn = current_time
- def quit(self): - self.quit_signal = True - - def halt(self): - """ - Halts curses panels, providing back the thread doing so. - """ - - def halt_panels(): - for panel_impl in self.get_daemon_panels(): - panel_impl.stop() - - for panel_impl in self.get_daemon_panels(): - panel_impl.join() - - halt_thread = threading.Thread(target = halt_panels) - halt_thread.start() - return halt_thread -
def start_nyx(): """ @@ -230,7 +210,7 @@ def start_nyx():
override_key = None # uses this rather than waiting on user input
- while not interface.quit_signal: + while not interface._quit: display_panels = [interface.header_panel()] + interface.get_page_panels()
# sets panel visability
tor-commits@lists.torproject.org