          """ Return dict of tools command tab titles with their IDs """
          return {self.command_notebook.tools_notebook.tab(tab_id, "text").lower(): tab_id
                  for tab_id in range(0, self.command_notebook.tools_notebook.index("end"))}
  
      def set_cursor_busy(self):
          """ Set the root cursor to busy """
          logger.trace("Setting cursor to busy")
          self.root.config(cursor="watch")
  
      def set_cursor_default(self):
          """ Set the root cursor to default """
 
</s> remove     def set_cursor_default(self):
        """ Set the root cursor to default """
 </s> add     def set_cursor_default(self, widget=None):
        """ Set the root or widget cursor to default """ </s> remove         self.root.config(cursor="watch")
 </s> add         widget = self.root if widget is None else widget
        widget.config(cursor="watch")
        widget.update_idletasks() </s> remove         self.root.config(cursor="")
 </s> add         widget = self.root if widget is None else widget
        widget.config(cursor="")
        widget.update_idletasks() </s> remove 
 </s> add from threading import Event, Thread
from queue import Queue
    def set_cursor_busy(self, widget=None):
        """ Set the root or widget cursor to busy """
          """ Return dict of tools command tab titles with their IDs """
          return {self.command_notebook.tools_notebook.tab(tab_id, "text").lower(): tab_id
                  for tab_id in range(0, self.command_notebook.tools_notebook.index("end"))}
  
    def set_cursor_busy(self, widget=None):
        """ Set the root or widget cursor to busy """
    def set_cursor_busy(self, widget=None):
        """ Set the root or widget cursor to busy """
          logger.trace("Setting cursor to busy")
          self.root.config(cursor="watch")
  
      def set_cursor_default(self):
          """ Set the root cursor to default """
keep keep keep keep replace replace keep keep keep keep keep
 Add LongRunningTask class to GUI Utils 
lib/gui/utils.py