                  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 """
          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> remove         """ Add Actio Buttons """
 </s> add         """ Add Action Buttons """ </s> remove     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,
 </s> add         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), </s> remove         """ Add Actio Buttons """
 </s> add         """ Add Action Buttons """ </s> remove         logger.debug("Added action buttons: '%s'", self.title)
 </s> add  </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)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
                  wraplength=200)
          Tooltip(tboxto,
                  text=helptxt,
                  wraplength=200)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
        actionbtns[self.command] = btnact

        logger.debug("Added action buttons: '%s'", self.title)
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
 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