Newer
Older

jacques.grelet_ird.fr
committed
function tsg_preferences(hTsgGUI, app_name, DEFAULT_PATH_FILE)
% tsg_preferences(S1,S2) returns structure tsg saved in S1.mat file
% and with S2 internal version number.
% If S1.mat dosn't exist, call tsg_initialisation to create it in
% prefdir directory
%
% Input
% -----
% hTsgGUI ............ Handle to the main user interface
% app_name ............ application name
%
% Output
% ------
% none
%
% $Id$
%
global VERSION
% init empty tsg structure
% ------------------------
tsg = [];
% Construct config file path
% --------------------------
config_file = [prefdir, filesep, app_name, '.mat'];
% Open config file
% ----------------

jacques.grelet_ird.fr
committed
config = fopen( config_file, 'r' );
%config = -1;
% test fopen return value
% -----------------------
if config == -1
% config file dosn't exist, call default tsg_initialisation
% ---------------------------------------------------------
tsg = tsg_initialisation;
% ccall new config private function
% ---------------------------------
new_config;
else
try

jacques.grelet_ird.fr
committed
% if file exist, load in workspace
% -----------------------------
load( config_file, 'root', 'tsg' );

jacques.grelet_ird.fr
committed
catch
warning('tsgqc_GUI:tsg_preferences', ...
'Can''t load preference file ''%s''', config_file);
quitProgram(hTsgGUI, DEFAULT_PATH_FILE);
end

jacques.grelet_ird.fr
committed
try
% set current preference autoload in submenu option/preference
% ------------------------------------------------------------
set(findobj('tag', 'TAG_UIMENU_OPTION_PREFERENCES', ...
'checked', root.preference.autoload));
catch

jacques.grelet_ird.fr
committed
warning('tsgqc_GUI:tsg_preferences', ...
['Preference file ''%s''\nis malformed\n' ...
'delete it.'], config_file);
quitProgram(hTsgGUI, DEFAULT_PATH_FILE);
end
% If there no field version or wrong version, initialize
% -------------------------------------------------------
if ~isfield( root, 'version') || ~strcmp(root.version, VERSION)
% call new config private function
% --------------------------------
new_config;
end
end
% Save structure tsg
% ------------------
setappdata( hTsgGUI, 'tsg_data', tsg);

jacques.grelet_ird.fr
committed
% save root in userdata property
% ------------------------------
set(0,'userdata', root);
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
% cas d'erreur si l'utilisation change de disque (cle USB -> disque dur
% par ex, self.path ne sera pas a jour et la lecture fichier genere une
% erreur
% if ~exist( root.path, 'dir' )
% root.path = [pwd filesep];
% end
% ----------------------------------------------------------------------
% private function new_config
% ----------------------------------------------------------------------
function new_config
% init root structure to default values
% -------------------------------------
root.preference.autoload = 'off';
root.version = VERSION;
% save root and tsg to prefdir mat file
% -------------------------------------
save(config_file, 'root', 'tsg');
% save root in root object for next use
% -------------------------------------
set(0, 'userdata', root);
end
end