Skip to content
Snippets Groups Projects
tsgqc.m 145 KiB
Newer Older
        selection = ...
          questdlg(['Quit ' get(hMainFig, 'Name') '?'],...
          ['Quit ' get(hMainFig, 'Name') '?'],...
          'Yes', 'No', 'Yes');
        if strcmp(selection, 'No')
          return;
        else
          quitProgram(DEFAULT_PATH_FILE, hMainFig, hMapFig);
        end
      % catch error during close windows
      % --------------------------------
    catch
      % display message to console and quit program
      % -------------------------------------------
      fprintf('abnormal program termination during close user request\n');
      quitProgram(DEFAULT_PATH_FILE, hMainFig);
  function quitProgram(DEFAULT_PATH_FILE, varargin)
    
    % close all windows
    % -----------------
    for ii=1:size(varargin,2)
      delete(varargin{ii});
    end
    
    % reset userdata property of root Matalab object (0) for next use
    % ---------------------------------------------------------------
    set(0, 'userdata', []);
    
    % reset Matlab search path to default
    % addpath isn't mandatory and failed with compiled applications
    % --------------------------------------------------------------
    if (~isdeployed)
      rmpath( [DEFAULT_PATH_FILE filesep 'tsg_util'] );
      rmpath( [DEFAULT_PATH_FILE filesep 'tsg_data'] );
      rmpath( [DEFAULT_PATH_FILE filesep 'tsg_io'] );
      rmpath( [DEFAULT_PATH_FILE filesep 'tsg_map'] );
    end
    
    % Refresh file system caches
    % --------------------------
    rehash;
    
    % clear base workspace just before quit, this is the only method
    % to clear NetCDF variables assign to base workspace with assignin
    % ----------------------------------------------------------------
    evalin('base','clear all');
    
  end % end of quitProgram