[chronojump] Returning from encoderConfigurationWin Mantains eccon, anchorage, extraWeightN



commit 5e468c7c10525a30d99e56a8a8f13718b151d7f0
Author: Xavier de Blas <xaviblas gmail com>
Date:   Sun Jan 8 12:39:02 2017 +0100

    Returning from encoderConfigurationWin Mantains eccon, anchorage, extraWeightN

 chronojump.csproj               |    2 +-
 src/gui/encoder.cs              |   14 +++++++-----
 src/gui/encoderConfiguration.cs |   40 +++++++++++++++++++++++++++++++++++---
 3 files changed, 45 insertions(+), 11 deletions(-)
---
diff --git a/chronojump.csproj b/chronojump.csproj
index 3216ca4..275bc98 100644
--- a/chronojump.csproj
+++ b/chronojump.csproj
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="4.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -1000,7 +1001,6 @@
     <Compile Include="src\gui\encoderOverview.cs" />
     <Compile Include="src\threshold.cs" />
     <Compile Include="src\gui\dialogThreshold.cs" />
-    <Compile Include="src\sqlite\encoderConfiguration.cs" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="src\" />
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index 6ac88e6..ffc30c7 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -428,8 +428,9 @@ public partial class ChronoJumpWindow
        void on_button_encoder_select_clicked (object o, EventArgs args)
        {
                encoder_configuration_win = EncoderConfigurationWindow.View(
-                               currentEncoderGI,
-                               SqliteEncoderConfiguration.SelectActive(currentEncoderGI));
+                               currentEncoderGI, SqliteEncoderConfiguration.SelectActive(currentEncoderGI),
+                               UtilGtk.ComboGetActive(combo_encoder_anchorage), (int) 
spin_encoder_im_weights_n.Value); //used on inertial
+
                encoder_configuration_win.Button_accept.Clicked += new 
EventHandler(on_encoder_configuration_win_accepted);
 
                //unregister eventHandler first, then register. This avoids to have registered twice
@@ -449,6 +450,7 @@ public partial class ChronoJumpWindow
                encoder_configuration_win.Button_accept.Clicked -= new 
EventHandler(on_encoder_configuration_win_accepted);
                
                EncoderConfiguration eConfNew = encoder_configuration_win.GetAcceptedValues();
+
                if(encoderConfigurationCurrent == eConfNew)
                        return;
                        
@@ -464,15 +466,15 @@ public partial class ChronoJumpWindow
                if(encoderConfigurationCurrent.has_inertia) {
                        if(combo_encoder_anchorage_should_update) {
                                UtilGtk.ComboUpdate(combo_encoder_anchorage, 
encoderConfigurationCurrent.list_d);
-                               combo_encoder_anchorage.Active = 0;
+                               combo_encoder_anchorage.Active = UtilGtk.ComboMakeActive(
+                                               combo_encoder_anchorage,
+                                               encoderConfigurationCurrent.d.ToString()
+                                               );
                        }
 
                        encoderConfigurationCurrent.extraWeightN = (int) spin_encoder_im_weights_n.Value; 
                        encoderConfigurationCurrent.inertiaTotal = 
UtilEncoder.CalculeInertiaTotal(encoderConfigurationCurrent);
                        label_encoder_im_total.Text = encoderConfigurationCurrent.inertiaTotal.ToString();
-
-                       //if inertial, select ecc-con
-                       combo_encoder_eccon.Active = 1;
                }
 
                label_encoder_selected.Text = encoderConfigurationCurrent.code;
diff --git a/src/gui/encoderConfiguration.cs b/src/gui/encoderConfiguration.cs
index 5a3ee8b..2486040 100644
--- a/src/gui/encoderConfiguration.cs
+++ b/src/gui/encoderConfiguration.cs
@@ -116,6 +116,14 @@ public class EncoderConfigurationWindow
 
        Constants.EncoderGI encoderGI;
 
+       /*
+        * this params are used on inertial
+        * and must be retrieved when this window is closed
+        */
+       string main_gui_anchorage_str;
+       int main_gui_extraWeightN;
+
+
        EncoderConfigurationWindow () {
                Glade.XML gladeXML;
                gladeXML = Glade.XML.FromAssembly (Util.GetGladePath() + "encoder_configuration.glade", 
"encoder_configuration", "chronojump");
@@ -138,7 +146,9 @@ public class EncoderConfigurationWindow
                UtilGtk.IconWindow(encoder_configuration);
        }
 
-       static public EncoderConfigurationWindow View (Constants.EncoderGI encoderGI, 
EncoderConfigurationSQLObject econfSO)
+       static public EncoderConfigurationWindow View (
+                       Constants.EncoderGI encoderGI, EncoderConfigurationSQLObject econfSO,
+                       string anchorage_str, int extraWeightN)
        {
                if (EncoderConfigurationWindowBox == null) {
                        EncoderConfigurationWindowBox = new EncoderConfigurationWindow ();
@@ -146,6 +156,8 @@ public class EncoderConfigurationWindow
 
                EncoderConfigurationWindowBox.encoderGI = encoderGI;
                EncoderConfigurationWindowBox.updateGUIFromEncoderConfiguration(econfSO.encoderConfiguration);
+               EncoderConfigurationWindowBox.main_gui_anchorage_str = anchorage_str;
+               EncoderConfigurationWindowBox.main_gui_extraWeightN = extraWeightN;
 
                EncoderConfigurationWindowBox.createAndFillTreeView(
                                SqliteEncoderConfiguration.Select(false, encoderGI, ""), //all
@@ -391,7 +403,7 @@ public class EncoderConfigurationWindow
         * because that is stored in gui/encoder as
         * encoderConfigurationCurrent
         */
-       public EncoderConfiguration GetAcceptedValues() 
+       public EncoderConfiguration GetAcceptedValues()
        {
                EncoderConfiguration ec = (EncoderConfiguration) list[listCurrent];
                
@@ -403,9 +415,27 @@ public class EncoderConfigurationWindow
                ec.inertiaMachine = -1;
                
                if(ec.has_d) {
-                       if(ec.has_inertia) {
+                       if(ec.has_inertia)
+                       {
                                ec.list_d = get_list_d();
-                               ec.d = ec.list_d[0]; //selected value is the first
+
+                               bool found = false;
+                               if(Util.IsNumber(main_gui_anchorage_str, true))
+                               {
+                                       LogB.Information("main_gui_anchorage = " + main_gui_anchorage_str);
+                                       double guiAnchorage = Convert.ToDouble(main_gui_anchorage_str);
+                                       foreach(double d in ec.list_d) {
+                                               LogB.Information("d = " + d.ToString());
+                                               if(d == guiAnchorage) {
+                                                       ec.d = guiAnchorage;
+                                                       found = true;
+                                                       break;
+                                               }
+                                       }
+                               }
+
+                               if(! found)
+                                       ec.d = ec.list_d[0]; //selected value is the first //TODO: change 
this and use the value in main gui
                        }
                        else
                                ec.d = (double) spin_d.Value; 
@@ -423,6 +453,7 @@ public class EncoderConfigurationWindow
                if(ec.has_inertia) {
                        ec.inertiaMachine = (int) spin_inertia_machine.Value; 
                        ec.inertiaTotal = (int) spin_inertia_machine.Value; 
+                       ec.extraWeightN = main_gui_extraWeightN;
                        ec.extraWeightGrams = (int) spin_inertia_mass.Value;
                        ec.extraWeightLength = (double) spin_inertia_length.Value;
                }
@@ -677,6 +708,7 @@ public class EncoderConfigurationWindow
                }
        }
 
+       //TODO: select another row (and "active" it)
        //TODO: cannot delete if only there's the only on this encoderGI
        void on_button_delete_clicked (object o, EventArgs args)
        {


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