              if widget_dict.get("parent", None) is not None:
                  parent = new_children[old_children.index(widget_dict["parent"])]
                  logger.trace("old parent: '%s', new_parent: '%s'", widget_dict["parent"], parent)
              else:
                  # Get the next subframe if this doesn't have a logged parent
                  parent = self.subframe
              clone = widget_dict["class"](parent, name=widget_dict["name"])
              if widget_dict["config"] is not None:
                  clone.configure(**widget_dict["config"])
              if widget_dict["tooltip"] is not None:
 
</s> remove             handletype = self.contexts[command][action]
 </s> add             handletype = self._contexts[command][action] </s> remove     def set_context_handletype(self, command, action, variable):
        """ Choose the correct file browser action based on context """
        if self.contexts[command].get(variable, None) is not None:
            handletype = self.contexts[command][variable][action]
 </s> add     def _set_context_handletype(self, command, action, variable):
        """ Sets the correct handle type  based on context.

        Parameters
        ----------
        command: str
            The command that is being executed. Used to look up the context actions
        action: str
            The action that is being performed. Used to look up the correct file dialog
        variable: :class:`tkinter.StringVar`
            The variable associated with this file dialog
        """
        if self._contexts[command].get(variable, None) is not None:
            handletype = self._contexts[command][variable][action] </s> remove                 self.filebrowser = FileBrowser(self.option.tk_var,
 </s> add                 self.filebrowser = FileBrowser(self.option.name,
                                               self.option.tk_var, </s> remove         fullpath = FileHandler("filename", "state").retfile
        if not fullpath:
            return
 </s> add         if fullpath is None:
            fullpath = FileHandler("filename", "state").retfile
            if not fullpath:
                return </s> remove         logger.debug("Displaying preview: %s", self.previewcache["filenames"])
        self.previewoutput = (show_image, ImageTk.PhotoImage(show_image))

    def get_newest_filenames(self, imagefiles):
        """ Return image filenames that have been modified since the last check """
        if self.previewcache["modified"] is None:
            retval = imagefiles
 </s> add         logger.debug("Displaying preview: %s", self._previewcache["filenames"])
        self._previewoutput = (show_image, ImageTk.PhotoImage(show_image))

    def _get_newest_filenames(self, image_files):
        """ Return image filenames that have been modified since the last check.

        Parameters
        ----------
        image_files: list
            The list of image files to check the modification date for

        Returns
        -------
        list:
            A list of images that have been modified since the last check
        """
        if self._previewcache["modified"] is None:
            retval = image_files
                # Get the next sub-frame if this doesn't have a logged parent
              if widget_dict.get("parent", None) is not None:
                  parent = new_children[old_children.index(widget_dict["parent"])]
                  logger.trace("old parent: '%s', new_parent: '%s'", widget_dict["parent"], parent)
              else:
                # Get the next sub-frame if this doesn't have a logged parent
                  parent = self.subframe
              clone = widget_dict["class"](parent, name=widget_dict["name"])
              if widget_dict["config"] is not None:
                  clone.configure(**widget_dict["config"])
              if widget_dict["tooltip"] is not None:
keep keep keep keep 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/control_helper.py