From 0f462c546c0c0ed3871f7a6a81525ff9e8f9f20e Mon Sep 17 00:00:00 2001
From: Jacques Grelet <Jacques.grelet@ird.fr>
Date: Mon, 14 Jan 2019 13:35:14 +0100
Subject: [PATCH] fix #2 undo menu enable when automatic QC is apply first
 improve redo usage and menu setting correct a bug inside QC_SelectCallback
 function : tsg.qc_history_pointer was use to enable redo menu instead off 
 tsg.qc_redo_possible

---
 tsg_util/updateTsgStructWithUndoLevels.m |  1 +
 tsgqc.m                                  | 23 ++++++++++++++++-------
 2 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/tsg_util/updateTsgStructWithUndoLevels.m b/tsg_util/updateTsgStructWithUndoLevels.m
index 2aee46f..c1345ac 100644
--- a/tsg_util/updateTsgStructWithUndoLevels.m
+++ b/tsg_util/updateTsgStructWithUndoLevels.m
@@ -46,6 +46,7 @@ if isfield(tsg,'qc_history_size')
             (1+tsg.qc_history_pointer-new_qc_history_size):tsg.qc_history_pointer);
           tsg.qc_history_pointer = size(tsg.qc_history_state,2);
           tsg.qc_redo_possible = 0;
+          set(findobj('tag','UIMENU_REDO'),'enable','off');
           
         end
         
diff --git a/tsgqc.m b/tsgqc.m
index 0a1adf4..419a5a8 100644
--- a/tsgqc.m
+++ b/tsgqc.m
@@ -54,7 +54,7 @@ global DEFAULT_PATH_FILE
 % -------------------------------------------------------------------
 VERSION      = 1.50;  % -> 1.44
 CHAR_VERSION = '1.50RC2';
-DATE_VERSION = '01/11/2019';
+DATE_VERSION = '01/14/2019';
 
 % netcdf file version, see DATA FORMAT TSG document:
 % CORTSG_format_gosud.doc
@@ -2564,6 +2564,12 @@ end
       plot_map( hMainFig, hPlotAxes);
     end
     
+    % enable Undo menu if QC flags applied
+    % ------------------------------------
+    if (tsg.qc_history_pointer > 0)
+      set(findobj('tag','UIMENU_UNDO'),'enable','on');
+    end
+    
   end
 
 
@@ -2740,7 +2746,7 @@ end
           
           % enable Redo menu if QC flags applied
           % ------------------------------------
-          if (tsg.qc_history_pointer > 0)
+          if (tsg.qc_redo_possible > 0)
             set(findobj('tag','UIMENU_REDO'),'enable','on');
           end
           
@@ -2868,7 +2874,7 @@ end
         
         tsg.qc_history_state(:,tsg.qc_history_pointer) = tsg.([PARA{1} '_QC']);
         tsg.qc_redo_possible = 0;
-        
+        set(findobj('tag','UIMENU_REDO'),'enable','off');    
         
         % Modify the QC
         % --------------
@@ -4573,6 +4579,7 @@ end
       % Allow redo
       % ----------
       tsg.qc_redo_possible = tsg.qc_redo_possible + 1;
+      set(findobj('tag','UIMENU_REDO'),'enable','on');
       
       % Save the modifications
       % ----------------------
@@ -4612,7 +4619,7 @@ end
 % -----------------------------------------------------------------------
   function RedoMenuCallback(src, evnt)
     
-    if (tsg.qc_redo_possible >0)
+    if (tsg.qc_redo_possible > 0)
       
       % Get the parameter (SSPS, SSJT or SSTP)
       % --------------------------------------
@@ -4626,7 +4633,10 @@ end
       % Reduce number of possible redo
       % ------------------------------
       tsg.qc_redo_possible = tsg.qc_redo_possible-1;
-      
+      if tsg.qc_redo_possible == 0
+        set(findobj('tag','UIMENU_REDO'),'enable','off');
+      end
+          
       % Save the modifications
       % ----------------------
       setappdata( hMainFig, 'tsg_data', tsg);
@@ -4652,8 +4662,7 @@ end
       
     else
       
-      msgbox('Redo not possible', 'modal');
-      
+      msgbox('Redo not possible', 'modal');   
     end
     
     
-- 
GitLab