              if widget_dict["config"] is not None:
                  clone.configure(**widget_dict["config"])
              if widget_dict["tooltip"] is not None:
                  Tooltip(clone, **widget_dict["tooltip"])
              clone.pack(**widget_dict["pack_info"])
              old_children.append(widget_dict["id"])
              new_children.append(clone)
              if widget_dict.get("children", None) is not None:
 
</s> remove         action_option = option.get("action_option", None)
 </s> add         action_option = None
        if option.get("action_option", None) is not None:
            self.expand_action_option(option, options)
            action_option = option["action_option"] </s> remove         logger.debug("Built control: '%s'", self.title)
 </s> add         logger.debug("Built control: '%s'", self.option.name) </s> remove             if sysbrowser is not None:
                self.filebrowser = FileBrowser(self.tk_var, self.frame, sysbrowser)
            ctl = self.control(self.frame,
                               textvariable=self.tk_var,
                               font=get_config().default_font)
            rc_menu = ContextMenu(ctl)
 </s> add             if self.option.sysbrowser is not None:
                self.filebrowser = FileBrowser(self.option.tk_var,
                                               self.frame,
                                               self.option.sysbrowser)
            ctl = self.option.control(self.frame,
                                      textvariable=self.option.tk_var,
                                      font=get_config().default_font)
            rc_menu = get_contextmenu(ctl) </s> remove         info = options.get("helptext", None)
        if info is not None:
            del options["helptext"]
        ControlPanel(self, options,
                     label_width=16, option_columns=3, columns=1, header_text=info)
 </s> add         cp_opts = [val["cpanel_option"] for key, val in options.items() if key != "helptext"]
        ControlPanel(self,
                     cp_opts,
                     label_width=16,
                     option_columns=3,
                     columns=1,
                     header_text=options.get("helptext", None)) </s> remove         if self.helptext is not None:
            get_tooltip(lbl, text=self.helptext, wraplength=600)
        logger.debug("Built control label: '%s'", self.title)
 </s> add         if self.option.helptext is not None:
            get_tooltip(lbl, text=self.option.helptext, wraplength=600)
        logger.debug("Built control label: (widget: '%s', title: '%s'",
                     self.option.name, self.option.title)
            rc_menu = widget_dict["rc_menu"]
            if rc_menu is not None:
                # Re-initialize for new widget and bind
                rc_menu.__init__(widget=clone)
                rc_menu.cm_bind()
              if widget_dict["config"] is not None:
                  clone.configure(**widget_dict["config"])
              if widget_dict["tooltip"] is not None:
                  Tooltip(clone, **widget_dict["tooltip"])
            rc_menu = widget_dict["rc_menu"]
            if rc_menu is not None:
                # Re-initialize for new widget and bind
                rc_menu.__init__(widget=clone)
                rc_menu.cm_bind()
              clone.pack(**widget_dict["pack_info"])
              old_children.append(widget_dict["id"])
              new_children.append(clone)
              if widget_dict.get("children", None) is not None:
keep keep keep add 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