                  text="Output command line options to the console",
                  wraplength=200)
          logger.debug("Added action buttons: '%s'", self.title)
  
      def add_timeout(self, actframe):
          """ Add a timeout option for training """
          logger.debug("Adding timeout box for %s", self.command)
          tk_var = get_config().tk_vars["traintimeout"]
          min_max = (10, 600)
  
          frameto = ttk.Frame(actframe)
          frameto.pack(padx=5, pady=5, side=tk.RIGHT, fill=tk.X, expand=True)
          lblto = ttk.Label(frameto, text="Timeout:", anchor=tk.W)
          lblto.pack(side=tk.LEFT)
          sldto = ttk.Scale(frameto,
                            variable=tk_var,
                            from_=min_max[0],
                            to=min_max[1],
                            command=lambda val, var=tk_var, dt=int, rn=10, mm=min_max:
                            set_slider_rounding(val, var, dt, rn, mm))
          sldto.pack(padx=5, side=tk.LEFT, fill=tk.X, expand=True)
          tboxto = ttk.Entry(frameto, width=3, textvariable=tk_var, justify=tk.RIGHT)
          tboxto.pack(side=tk.RIGHT)
          helptxt = ("Training can take some time to save and shutdown. "
                     "Set the timeout in seconds before giving up and force quitting.")
          Tooltip(sldto,
                  text=helptxt,
                  wraplength=200)
          Tooltip(tboxto,
                  text=helptxt,
                  wraplength=200)
          logger.debug("Added timeout box for %s", self.command)
  
      def add_util_buttons(self):
          """ Add the section utility buttons """
 
</s> remove         logger.debug("Added action buttons: '%s'", self.title)
 </s> add  </s> remove         logger.debug("Added timeout box for %s", self.command)

    def add_util_buttons(self):
        """ Add the section utility buttons """
        logger.debug("Add util buttons")
        utlframe = ttk.Frame(self)
        utlframe.pack(side=tk.RIGHT)

        config = get_config()
        for utl in ("load", "save", "clear", "reset"):
            logger.debug("Adding button: '%s'", utl)
            img = get_images().icons[utl]
            action_cls = config if utl in (("save", "load")) else config.cli_opts
            action = getattr(action_cls, utl)
            btnutl = ttk.Button(utlframe,
                                image=img,
                                command=lambda cmd=action: cmd(self.command))
            btnutl.pack(padx=2, side=tk.LEFT)
            Tooltip(btnutl,
                    text=utl.capitalize() + " " + self.title + " config",
                    wraplength=200)
        logger.debug("Added util buttons")
 </s> add         actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title) </s> remove         actframe.pack(fill=tk.X, side=tk.LEFT)
        tk_vars = get_config().tk_vars
 </s> add         actframe.pack(fill=tk.X, side=tk.RIGHT) </s> remove         if self.command == "train":
            self.add_timeout(actframe)
 </s> add  </s> remove             timeout = self.config.tk_vars["traintimeout"].get()
 </s> add             timeout = self.config.user_config_dict.get("timeout", 120)
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
                  text="Output command line options to the console",
                  wraplength=200)
          logger.debug("Added action buttons: '%s'", self.title)
  
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
        btnact = ttk.Button(actframe,
                            image=get_images().icons["start"],
                            text=" {}".format(self.title),
                            compound=tk.LEFT,
                            width=14,
                            command=lambda: tk_vars["action"].set(var_value))
        btnact.pack(side=tk.LEFT, fill=tk.X, expand=True)
        Tooltip(btnact,
                text="Run the {} script".format(self.title),
                  wraplength=200)
          logger.debug("Added timeout box for %s", self.command)
  
      def add_util_buttons(self):
          """ Add the section utility buttons """
keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace keep keep keep keep keep
 GUI Updates (#940)

* lib.gui: Update icons
* tools.cli: Add video filetype flag to mask input
* lib.gui.popup_configure: Refresh GUI on config save
* lib.gui._config: Add Icon size and load last session options
* lib.gui.control_helper - Add control modification tracking
* lib.gui - Add Projects and Last Session
- Main root title handled by projects
- Add Hotkeys
- Create projects module
- split fsw and fst filetypes
- Add last_session saving

* lib.project
- Documentation
- Ask confirm on closing unsaved project
-Fixups

* Track model folder changes
- Shuffle some globals
- Activate System Verbosity for GUI

* lib.gui.utils - Documentation and clean up
- lib.gui.custom_widgets - Create and document

* Add GUI config option to disable auto loading model stats 
lib/gui/command.py