commit 96e14974119da71b8682b1ff8c889cd5ad982f89 Author: Damian Johnson atagar@torproject.org Date: Mon Jan 4 09:35:34 2016 -0800
Tidy up config panel's draw() method
Last bit of the config panel! Just revising bits to be a bit more concise. --- nyx/config_panel.py | 47 +++++++++++++++++++---------------------------- nyx/util/tor_config.py | 2 -- 2 files changed, 19 insertions(+), 30 deletions(-)
diff --git a/nyx/config_panel.py b/nyx/config_panel.py index eb51ba3..8f71861 100644 --- a/nyx/config_panel.py +++ b/nyx/config_panel.py @@ -278,15 +278,9 @@ class ConfigPanel(panel.Panel): if selection is not None: self._draw_selection_details(selection, width)
- if is_scrollbar_visible: - self.addch(DETAILS_HEIGHT - 1, 1, curses.ACS_TTEE) - if self.is_title_visible(): hidden_msg = "press 'a' to hide most options" if self._show_all else "press 'a' to show all options" - title_label = 'Tor Configuration (%s):' % hidden_msg - self.addstr(0, 0, title_label, curses.A_STANDOUT) - - # draws left-hand scroll bar if content's longer than the height + self.addstr(0, 0, 'Tor Configuration (%s):' % hidden_msg, curses.A_STANDOUT)
scroll_offset = 1
@@ -294,35 +288,32 @@ class ConfigPanel(panel.Panel): scroll_offset = 3 self.add_scroll_bar(scroll_location, scroll_location + height - DETAILS_HEIGHT, len(contents), DETAILS_HEIGHT)
- value_width = VALUE_WIDTH - description_width = max(0, width - scroll_offset - NAME_WIDTH - value_width - 2) + if selection is not None: + self.addch(DETAILS_HEIGHT - 1, 1, curses.ACS_TTEE) + + # Description column can grow up to eighty characters. After that any extra + # space goes to the value.
- # if the description column is overly long then use its space for the - # value instead + description_width = max(0, width - scroll_offset - NAME_WIDTH - VALUE_WIDTH - 2)
if description_width > 80: - value_width += description_width - 80 + value_width = VALUE_WIDTH + (description_width - 80) description_width = 80 + else: + value_width = VALUE_WIDTH
- for line_number in range(scroll_location, len(contents)): - entry = contents[line_number] - draw_line = line_number + DETAILS_HEIGHT - scroll_location - - line_format = [curses.A_BOLD if entry.is_set() else curses.A_NORMAL] - line_format += [CONFIG['attr.config.category_color'].get(entry.manual.category, 'white')] - - if entry == selection: - line_format += [curses.A_STANDOUT] + for i, entry in enumerate(contents[scroll_location:]): + attr = nyx.util.ui_tools.get_color(CONFIG['attr.config.category_color'].get(entry.manual.category, 'white')) + attr |= curses.A_BOLD if entry.is_set() else curses.A_NORMAL + attr |= curses.A_STANDOUT if entry == selection else curses.A_NORMAL
- option_label = str_tools.crop(entry.name, NAME_WIDTH) - value_label = str_tools.crop(entry.value(), value_width) - summary_label = str_tools.crop(entry.manual.summary, description_width, None) - line_text_layout = '%%-%is %%-%is %%-%is' % (NAME_WIDTH, value_width, description_width) - line_text = line_text_layout % (option_label, value_label, summary_label) + option_label = str_tools.crop(entry.name, NAME_WIDTH).ljust(NAME_WIDTH + 1) + value_label = str_tools.crop(entry.value(), value_width).ljust(value_width + 1) + summary_label = str_tools.crop(entry.manual.summary, description_width).ljust(description_width)
- self.addstr(draw_line, scroll_offset, line_text, *line_format) + self.addstr(DETAILS_HEIGHT + i, scroll_offset, option_label + value_label + summary_label, attr)
- if draw_line >= height: + if DETAILS_HEIGHT + i >= height: break
def _get_config_options(self): diff --git a/nyx/util/tor_config.py b/nyx/util/tor_config.py index 56c6a7f..4749223 100644 --- a/nyx/util/tor_config.py +++ b/nyx/util/tor_config.py @@ -2,8 +2,6 @@ Helper functions for working with tor's configuration file. """
-import os -import time import threading
import stem.version
tor-commits@lists.torproject.org