[chronojump] Several fixes on encSelReps and genericWin delegates



commit dfb51ceec6ac62c290fe74134b7f675233dad45d
Author: Xavier de Blas <xaviblas gmail com>
Date:   Fri Jul 29 14:28:24 2016 +0200

    Several fixes on encSelReps and genericWin delegates

 src/gui/encoder.cs                  |    4 +++-
 src/gui/encoderSelectRepetitions.cs |   32 ++++++++++++++++++++++++++++----
 2 files changed, 31 insertions(+), 5 deletions(-)
---
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index 5c5ac2b..f2dec05 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -1062,6 +1062,7 @@ public partial class ChronoJumpWindow
                        if(encSelReps == null || encSelReps.Type != 
EncoderSelectRepetitions.Types.INDIVIDUAL_CURRENT_SESSION)
                                encSelReps = new EncoderSelectRepetitionsIndividualCurrentSession();
 
+                       encSelReps.FakeButtonDeleteCurve.Clicked -= new EventHandler(on_delete_encoder_curve);
                        encSelReps.FakeButtonDeleteCurve.Clicked += new EventHandler(on_delete_encoder_curve);
                }
                else if(radio_encoder_analyze_individual_all_sessions.Active)
@@ -1088,7 +1089,7 @@ public partial class ChronoJumpWindow
                        
        void on_delete_encoder_curve (object o, EventArgs args)
        {
-               encSelReps.FakeButtonDeleteCurve.Clicked -= new EventHandler(on_delete_encoder_curve);
+               LogB.Information("at on_delete_encoder_curve");
                delete_encoder_curve(false, encSelReps.DeleteCurveID);
        }       
        void delete_encoder_curve(bool dbconOpened, int uniqueID) 
@@ -1216,6 +1217,7 @@ public partial class ChronoJumpWindow
        
        protected void on_encoder_load_signal_accepted (object o, EventArgs args)
        {
+               LogB.Information("on load signal accepted");
                genericWin.Button_accept.Clicked -= new EventHandler(on_encoder_load_signal_accepted);
 
                int uniqueID = genericWin.TreeviewSelectedRowID();
diff --git a/src/gui/encoderSelectRepetitions.cs b/src/gui/encoderSelectRepetitions.cs
index 0790a8a..eae751a 100644
--- a/src/gui/encoderSelectRepetitions.cs
+++ b/src/gui/encoderSelectRepetitions.cs
@@ -110,7 +110,7 @@ public class EncoderSelectRepetitions
        {
                //if user destroyed window (on_delete_event), recreate it again
                if(genericWinESR.GenericWindowBoxIsNull() || ! createdGenericWinIsOfThisType())
-                       createGenericWindow();
+                       Do();
 
                activateCallbacks();
                genericWinESR.ShowNow();
@@ -132,6 +132,11 @@ public class EncoderSelectRepetitions
                genericWinESR.Button_accept.Clicked -= new EventHandler(on_show_repetitions_done);
                genericWinESR.Button_accept.Clicked += new EventHandler(on_show_repetitions_done);
        }
+       //as genericWin is called by many parts of the software, ensure no undesirable methods are called 
from a previous genericWindow
+       protected virtual void removeCallbacks() {
+               //manage selected, unselected curves
+               genericWinESR.Button_accept.Clicked -= new EventHandler(on_show_repetitions_done);
+       }
        
        protected virtual void on_show_repetitions_done (object o, EventArgs args) {
        }
@@ -309,10 +314,19 @@ public class EncoderSelectRepetitionsIndividualCurrentSession : EncoderSelectRep
                genericWinESR.Button_row_delete.Clicked -= new 
EventHandler(on_show_repetitions_row_delete_pre);
                genericWinESR.Button_row_delete.Clicked += new 
EventHandler(on_show_repetitions_row_delete_pre);
        }
+       protected override void removeCallbacks() {
+               genericWinESR.Button_accept.Clicked -= new EventHandler(on_show_repetitions_done);
+               genericWinESR.Button_row_edit.Clicked -= new EventHandler(on_show_repetitions_row_edit);
+               genericWinESR.Button_row_edit_apply.Clicked -= new 
EventHandler(on_show_repetitions_row_edit_apply);
+               genericWinESR.Button_row_delete.Clicked -= new 
EventHandler(on_show_repetitions_row_delete_pre);
+       }
        
        
        protected override void on_show_repetitions_done (object o, EventArgs args)
        {
+               //genericWinESR.Button_accept.Clicked -= new EventHandler(on_show_repetitions_done);
+               removeCallbacks();
+
                //get selected/deselected rows
                checkboxes = genericWinESR.GetColumn(1, false);
 
@@ -374,9 +388,11 @@ public class EncoderSelectRepetitionsIndividualCurrentSession : EncoderSelectRep
        
        // --------------- delete curves start ---------------
        
-       protected void on_show_repetitions_row_delete_pre (object o, EventArgs args) {
+       ConfirmWindow confirmWin;
+       protected void on_show_repetitions_row_delete_pre (object o, EventArgs args) 
+       {
                if(askDeletion) {
-                       ConfirmWindow confirmWin = ConfirmWindow.Show(Catalog.GetString(
+                       confirmWin = ConfirmWindow.Show(Catalog.GetString(
                                                "Are you sure you want to delete this repetition?"), "", "");
                        confirmWin.Button_accept.Clicked -= new EventHandler(on_show_repetitions_row_delete);
                        confirmWin.Button_accept.Clicked += new EventHandler(on_show_repetitions_row_delete);
@@ -384,7 +400,9 @@ public class EncoderSelectRepetitionsIndividualCurrentSession : EncoderSelectRep
                        on_show_repetitions_row_delete (o, args);
        }
        
-       protected void on_show_repetitions_row_delete (object o, EventArgs args) {
+       protected void on_show_repetitions_row_delete (object o, EventArgs args) 
+       {
+               confirmWin.Button_accept.Clicked -= new EventHandler(on_show_repetitions_row_delete);
                LogB.Information("row delete at show curves");
 
                int uniqueID = genericWinESR.TreeviewSelectedUniqueID;
@@ -547,6 +565,9 @@ public class EncoderSelectRepetitionsIndividualAllSessions : EncoderSelectRepeti
        
        protected override void on_show_repetitions_done (object o, EventArgs args) 
        {
+               //genericWinESR.Button_accept.Clicked -= new EventHandler(on_show_repetitions_done);
+               removeCallbacks();
+
                updateEncoderCompareInterAndReps();
                updateEncoderInterSessionDateOnXWeights();
        
@@ -690,6 +711,9 @@ public class EncoderSelectRepetitionsGroupalCurrentSession : EncoderSelectRepeti
                
        protected override void on_show_repetitions_done (object o, EventArgs args) 
        {
+               //genericWinESR.Button_accept.Clicked -= new EventHandler(on_show_repetitions_done);
+               removeCallbacks();
+
                updateEncoderCompareInterAndReps();
        
                FakeButtonDone.Click();         


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]