                       self.title, type(var), val)
          return var
  
      # Build the full control
      def build_control(self, choices, dtype, rounding, min_max, sysbrowser, option_columns,
                        control_width):
          """ Build the correct control type for the option passed through """
          logger.debug("Build config option control")
          if self.control not in (ttk.Checkbutton, ttk.Radiobutton):
              self.build_control_label()
          self.build_one_control(choices,
 
</s> remove         if self.control not in (ttk.Checkbutton, ttk.Radiobutton):
 </s> add         if self.option.control not in (ttk.Checkbutton, ttk.Radiobutton): </s> remove         self.build_one_control(choices,
                               dtype,
                               rounding,
                               min_max,
                               sysbrowser,
                               option_columns,
                               control_width)
 </s> add         self.build_one_control() </s> remove         logger.debug("Setting tk variable: (title: '%s', dtype: %s, selected_value: %s, "
                     "blank_nones: %s)",
                     self.title, dtype, selected_value, blank_nones)
        if dtype == bool:
            var = tk.BooleanVar
        elif dtype == int:
            var = tk.IntVar
        elif dtype == float:
            var = tk.DoubleVar
        else:
            var = tk.StringVar
        var = var(self.frame)
        val = self.default if selected_value is None else selected_value
        val = "" if val is None and blank_nones else val
        var.set(val)
        logger.debug("Set tk variable: (title: '%s', type: %s, value: '%s')",
                     self.title, type(var), val)
        return var
 </s> add         val = "" if self.option.value is None and blank_nones else self.option.value
        self.option.tk_var.set(val)
        logger.debug("Set tk variable: (option: '%s', variable: %s, value: '%s')",
                     self.option.name, self.option.tk_var, val) </s> remove     def build_one_control(self, choices, dtype, rounding, min_max,
                          sysbrowser, option_columns, control_width):
 </s> add     def build_one_control(self): </s> remove         logger.debug("Build control: (title: '%s', control: %s, choices: %s, dtype: %s, "
                     "rounding: %s, sysbrowser: %s, min_max: %s: option_columns: %s, "
                     "control_width: %s)", self.title, self.control, choices, dtype, rounding,
                     sysbrowser, min_max, option_columns, control_width)
        if self.control == ttk.Scale:
            ctl = self.slider_control(dtype, rounding, min_max)
        elif self.control == ttk.Radiobutton:
            ctl = self.radio_control(choices, option_columns)
        elif self.control == ttk.Checkbutton:
 </s> add         logger.debug("Build control: '%s')", self.option.name)
        if self.option.control == ttk.Scale:
            ctl = self.slider_control()
        elif self.option.control == ttk.Radiobutton:
            ctl = self.radio_control()
        elif self.option.control == ttk.Checkbutton:
    def build_control(self):
                       self.title, type(var), val)
          return var
  
      # Build the full control
    def build_control(self):
    def build_control(self):
          """ Build the correct control type for the option passed through """
          logger.debug("Build config option control")
          if self.control not in (ttk.Checkbutton, ttk.Radiobutton):
              self.build_control_label()
          self.build_one_control(choices,
keep keep keep keep replace replace keep keep keep keep keep
 GUI Fixups

- GUI Bugfix: Startup options - fix min/max thresholds
- GUI Bugfix: Make console read-only
- GUI Bugfix: Rightclick menu for recreated widgets
- Enhancement: Create ControlPanelOptions Class + migrate options 
lib/gui/control_helper.py