[tor-commits] [nyx/master] Simplify 'is_default' attribute

atagar at torproject.org atagar at torproject.org
Mon Jan 4 17:43:05 UTC 2016


commit 853ad495e112693082ba27b1a13fe178c3aaa5ae
Author: Damian Johnson <atagar at torproject.org>
Date:   Wed Sep 30 16:54:29 2015 +0200

    Simplify 'is_default' attribute
    
    We have two notions of if a parameter matches the default:
    
      * if 'GETCONF' gives us anything
      * if 'GETINFO config-text' includes it
    
    ... yeah. That's silly.
---
 nyx/config_panel.py |   20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/nyx/config_panel.py b/nyx/config_panel.py
index 03a44fc..a4a7b90 100644
--- a/nyx/config_panel.py
+++ b/nyx/config_panel.py
@@ -58,13 +58,12 @@ class ConfigEntry():
   Configuration option in the panel.
   """
 
-  def __init__(self, option, type, is_default):
+  def __init__(self, option, entry_type):
     man_entry = tor_config.get_config_description(option)
 
     self.fields = {
       Field.OPTION: option,
-      Field.TYPE: type,
-      Field.IS_DEFAULT: is_default,
+      Field.TYPE: entry_type,
       Field.SUMMARY: tor_config.get_config_summary(option),
 
       Field.MAN_ENTRY: man_entry.index if man_entry else 99999,  # sorts non-man entries last
@@ -91,6 +90,9 @@ class ConfigEntry():
       field - enum for the field to be provided back
     """
 
+    if field == Field.IS_DEFAULT:
+      return not self.is_set()
+
     return self._get_value() if field == Field.VALUE else self.fields[field]
 
   def get_label(self, option_width, value_width, summary_width):
@@ -187,7 +189,6 @@ class ConfigPanel(panel.Panel):
     self.conf_contents = []
     self.conf_important_contents = []
 
-    custom_options = tor_config.get_custom_options()
     config_names = tor_controller().get_info('config/names', None)
 
     if config_names:
@@ -207,7 +208,7 @@ class ConfigPanel(panel.Panel):
         elif not CONFIG['features.config.state.showVirtualOptions'] and conf_type == 'Virtual':
           continue
 
-        self.conf_contents.append(ConfigEntry(conf_option, conf_type, conf_option not in custom_options))
+        self.conf_contents.append(ConfigEntry(conf_option, conf_type))
 
     # mirror listing with only the important configuration options
 
@@ -287,11 +288,6 @@ class ConfigPanel(panel.Panel):
 
               selection.label_cache = None
 
-              # resets the is_default flag
-
-              custom_options = tor_config.get_custom_options()
-              selection.fields[Field.IS_DEFAULT] = config_option not in custom_options
-
               self.redraw(True)
             except Exception as exc:
               nyx.popups.show_msg('%s (press any key)' % exc)
@@ -506,7 +502,7 @@ class ConfigPanel(panel.Panel):
         entry = self._get_config_options()[line_number]
         draw_line = line_number + detail_panel_height + 1 - scroll_location
 
-        line_format = [curses.A_NORMAL if entry.get(Field.IS_DEFAULT) else curses.A_BOLD]
+        line_format = [curses.A_BOLD if entry.is_set() else curses.A_NORMAL]
 
         if entry.get(Field.CATEGORY):
           line_format += [CONFIG['attr.config.category_color'].get(entry.get(Field.CATEGORY), 'white')]
@@ -549,7 +545,7 @@ class ConfigPanel(panel.Panel):
 
     if detail_panel_height >= 3:
       value_attr_label = ', '.join([
-        'default' if selection.get(Field.IS_DEFAULT) else 'custom',
+        'custom' if selection.is_set() else 'default',
         selection.get(Field.TYPE),
         'usage: %s' % (selection.get(Field.ARG_USAGE))
       ])





More information about the tor-commits mailing list