                      if i == 999:
                          raise
                      continue
                  break
  
          self.previewtrain[name][1] = ImageTk.PhotoImage(displayimg)
  
  
  class ReadOnlyText(tk.Text):  # pylint: disable=too-many-ancestors
      """ A read only text widget that redirects a standard tk.Text widget's insert and delete
      attributes.
 
</s> remove class ReadOnlyText(tk.Text):  # pylint: disable=too-many-ancestors
    """ A read only text widget that redirects a standard tk.Text widget's insert and delete
    attributes.
    Source: https://stackoverflow.com/questions/3842155
 </s> add class Config():
    """ The centralized configuration class for holding items that should be made available to all
    parts of the GUI.

    This class should be initialized on GUI startup through :func:`initialize_config`. Any further
    access to this class should be through :func:`get_config`.

    Parameters
    ----------
    root: :class:`tkinter.Tk`
        The root Tkinter object
    cli_opts: :class:`lib.gui.options.CliOpts`
        The command line options object
    statusbar: :class:`lib.gui.custom_widgets.StatusBar`
        The GUI Status bar
    session: :class:`lib.gui.stats.Session`
        The current training Session </s> remove     def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.redirector = WidgetRedirector(self)
        self.insert = self.redirector.register("insert", lambda *args, **kw: "break")
        self.delete = self.redirector.register("delete", lambda *args, **kw: "break")


class ConsoleOut(ttk.Frame):  # pylint: disable=too-many-ancestors
    """ The Console out section of the GUI """

    def __init__(self, parent, debug):
        logger.debug("Initializing %s: (parent: %s, debug: %s)",
                     self.__class__.__name__, parent, debug)
        ttk.Frame.__init__(self, parent)
        self.pack(side=tk.TOP, anchor=tk.W, padx=10, pady=(2, 0),
                  fill=tk.BOTH, expand=True)
        self.console = ReadOnlyText(self)
        rc_menu = ContextMenu(self.console)
        rc_menu.cm_bind()
        self.console_clear = get_config().tk_vars['consoleclear']
        self.set_console_clear_var_trace()
        self.debug = debug
        self.build_console()
        self.add_tags()
 </s> add     def __init__(self, root, cli_opts, statusbar, session):
        logger.debug("Initializing %s: (root %s, cli_opts: %s, statusbar: %s, session: %s)",
                     self.__class__.__name__, root, cli_opts, statusbar, session)
        self._constants = dict(
            root=root,
            scaling_factor=self._get_scaling(root),
            default_font=tk.font.nametofont("TkDefaultFont").configure()["family"])
        self._gui_objects = dict(
            cli_opts=cli_opts,
            tk_vars=self._set_tk_vars(),
            project=Project(self, FileHandler),
            tasks=Tasks(self, FileHandler),
            status_bar=statusbar,
            command_notebook=None)  # set in command.py
        self._user_config = UserConfig(None)
        self.session = session
        self._default_font = tk.font.nametofont("TkDefaultFont").configure()["family"] </s> remove     """ A container object that autofills columns """
 </s> add     """ A container object that auto-fills columns """ </s> remove             pass
 </s> add             pass  # pylint: disable=unnecessary-pass </s> remove def adjust_wraplength(event):
    """ dynamically adjust the wraplength of a label on event """
    label = event.widget
    label.configure(wraplength=event.width - 1)


 </s> add 
        self._previewtrain[name][1] = ImageTk.PhotoImage(displayimg)
                      if i == 999:
                          raise
                      continue
                  break
        self._previewtrain[name][1] = ImageTk.PhotoImage(displayimg)
        self._previewtrain[name][1] = ImageTk.PhotoImage(displayimg)
  
  
  class ReadOnlyText(tk.Text):  # pylint: disable=too-many-ancestors
      """ A read only text widget that redirects a standard tk.Text widget's insert and delete
      attributes.
keep keep keep keep 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/utils.py