      # Frame, control type and varable
      def control_frame(self, parent):
          """ Frame to hold control and it's label """
          logger.debug("Build control frame")
          frame = ttk.Frame(parent, name="fr_{}".format(self.title.lower()))
          frame.pack(fill=tk.X)
          logger.debug("Built control frame")
          return frame
  
      def format_helptext(self, helptext):
 
</s> remove         self.control = self.set_control(dtype, choices, is_radio)
        self.tk_var = self.set_tk_var(dtype, selected_value, blank_nones)

        self.build_control(choices,
                           dtype,
                           rounding,
                           min_max,
                           sysbrowser,
                           option_columns,
                           control_width)
 </s> add         self.set_tk_var(blank_nones)
        self.build_control() </s> remove     def format_helptext(self, helptext):
        """ Format the help text for tooltips """
        if helptext is None:
            return helptext
        logger.debug("Format control help: '%s'", self.title)
        if helptext.startswith("R|"):
            helptext = helptext[2:].replace("\nL|", "\n - ").replace("\n", "\n\n")
        else:
            helptext = helptext.replace("\n\t", "\n - ").replace("%%", "%")
        helptext = ". ".join(i.capitalize() for i in helptext.split(". "))
        helptext = self.title + " - " + helptext
        logger.debug("Formatted control help: (title: '%s', help: '%s'", self.title, helptext)
        return helptext

    def set_control(self, dtype, choices, is_radio):
        """ Set the correct control type based on the datatype or for this option """
        if choices and is_radio:
            control = ttk.Radiobutton
        elif choices:
            control = ttk.Combobox
        elif dtype == bool:
            control = ttk.Checkbutton
        elif dtype in (int, float):
            control = ttk.Scale
        else:
            control = ttk.Entry
        logger.debug("Setting control '%s' to %s", self.title, control)
        return control

    def set_tk_var(self, dtype, selected_value, blank_nones):
 </s> add     def set_tk_var(self, blank_nones): </s> remove         self.build_one_control(choices,
                               dtype,
                               rounding,
                               min_max,
                               sysbrowser,
                               option_columns,
                               control_width)
 </s> add         self.build_one_control() </s> remove     def build_control(self, choices, dtype, rounding, min_max, sysbrowser, option_columns,
                      control_width):
 </s> add     def build_control(self): </s> remove         logger.debug("Add control checkframe: '%s'", self.title)
 </s> add         logger.debug("Add control checkframe: '%s'", self.option.name)
        frame = ttk.Frame(parent, name="fr_{}".format(self.option.name))
      # Frame, control type and varable
      def control_frame(self, parent):
          """ Frame to hold control and it's label """
          logger.debug("Build control frame")
        frame = ttk.Frame(parent, name="fr_{}".format(self.option.name))
          frame.pack(fill=tk.X)
          logger.debug("Built control frame")
          return frame
  
      def format_helptext(self, helptext):
keep keep keep keep 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