[chronojump] DB: 2.19 encoderExercise with type (encoderGI). SQL, GUI, code. encoderExercises are separated by mo



commit b438f4873c8cd6fc4bce7e96d38df017f2502675
Author: Xavier de Blas <xaviblas gmail com>
Date:   Mon Apr 19 16:50:37 2021 +0200

    DB: 2.19 encoderExercise with type (encoderGI). SQL, GUI, code. encoderExercises are separated by mode.

 glade/app1.glade           | 1005 ++++++++++++++++++++++++++++++++++----------
 src/encoder.cs             |   10 +-
 src/gui/app1/chronojump.cs |   14 +-
 src/gui/app1/encoder.cs    |  279 ++++++------
 src/gui/app1/icons.cs      |    6 +
 src/gui/networks.cs        |   10 +-
 src/json/compujump.cs      |    9 +-
 src/sqlite/encoder.cs      |   60 ++-
 src/sqlite/main.cs         |   27 +-
 src/sqlite/preferences.cs  |    2 +-
 10 files changed, 1033 insertions(+), 389 deletions(-)
---
diff --git a/glade/app1.glade b/glade/app1.glade
index a8f7a73f..40cec88f 100644
--- a/glade/app1.glade
+++ b/glade/app1.glade
@@ -25077,6 +25077,21 @@ Concentric</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
@@ -31244,18 +31259,6 @@ Concentric</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">6</property>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_video_encoder_tests_will_be_filmed">
-                                                            <property name="can_focus">False</property>
-                                                            <property name="label" translatable="yes">Tests 
will be filmed</property>
-                                                            </widget>
-                                                            <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="pack_type">end</property>
-                                                            <property name="position">0</property>
-                                                            </packing>
-                                                            </child>
-                                                            <child>
                                                             <widget class="GtkHBox" 
id="hbox_video_encoder_capturing">
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">4</property>
@@ -31292,6 +31295,18 @@ Concentric</property>
                                                             </packing>
                                                             </child>
                                                             <child>
+                                                            <widget class="GtkLabel" 
id="label_video_encoder_tests_will_be_filmed">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" translatable="yes">Tests 
will be filmed</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="pack_type">end</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
                                                             <widget class="GtkHBox" 
id="hbox_video_encoder_no_capturing">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
@@ -32777,24 +32792,136 @@ then click this button.</property>
                                                             <property name="border_width">4</property>
                                                             <property name="shadow_type">none</property>
                                                             <child>
-                                                            <widget class="GtkTable" id="table1">
+                                                            <widget class="GtkVBox" id="vbox8">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="n_rows">3</property>
+                                                            <property name="spacing">16</property>
+                                                            <child>
+                                                            <widget class="GtkTable" id="table21">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="n_rows">2</property>
                                                             <property name="n_columns">2</property>
                                                             <property name="column_spacing">20</property>
                                                             <property name="row_spacing">16</property>
                                                             <child>
-                                                            <widget class="GtkVBox" id="vbox8">
+                                                            <widget class="GtkHBox" 
id="hbox_encoder_exercise_encoder">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="spacing">16</property>
-                                                            <property name="homogeneous">True</property>
+                                                            <property name="spacing">8</property>
+                                                            <child>
+                                                            <widget class="GtkButton" 
id="button_encoder_select">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="can_default">True</property>
+                                                            <property name="receives_default">True</property>
+                                                            <property name="relief">half</property>
+                                                            <property name="use_underline">True</property>
+                                                            <property name="xalign">0</property>
+                                                            <signal name="clicked" 
handler="on_button_encoder_select_clicked" swapped="no"/>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox36">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">6</property>
+                                                            <child>
+                                                            <widget class="GtkImage" 
id="image_encoder_configuration">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_button_encoder_select">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">Configure gravitatory encoder</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox121">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">4</property>
+                                                            <child>
+                                                            <widget class="GtkImage" 
id="image_encoder_selected_type">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="tooltip" 
translatable="yes">Extra mass</property>
+                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_encoder_selected">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">1</property>
+                                                            <property name="right_attach">2</property>
+                                                            <property name="x_options">GTK_FILL</property>
+                                                            <property name="y_options">GTK_FILL</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_encoder_exercise_encoder">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="xalign">0</property>
+                                                            <property name="label" 
translatable="yes">Encoder</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="x_options">GTK_FILL</property>
+                                                            </packing>
+                                                            </child>
                                                             <child>
                                                             <widget class="GtkHBox" id="hbox86">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="spacing">20</property>
+                                                            <property name="spacing">30</property>
+                                                            <child>
+                                                            <widget class="GtkHBox" 
id="hbox_encoder_exercise_select">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">25</property>
                                                             <child>
                                                             <widget class="GtkHBox" 
id="hbox_combo_encoder_exercise_capture">
                                                             <property name="visible">True</property>
@@ -32810,7 +32937,7 @@ then click this button.</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox229">
+                                                            <widget class="GtkHBox" id="hbox332">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">8</property>
@@ -32888,38 +33015,36 @@ then click this button.</property>
                                                             </child>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
                                                             <property name="position">1</property>
                                                             </packing>
                                                             </child>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">True</property>
-                                                            <property name="fill">True</property>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
                                                             <property name="position">0</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox123">
-                                                            <property name="visible">True</property>
+                                                            <widget class="GtkHBox" 
id="hbox_encoder_exercise_actions">
                                                             <property name="can_focus">False</property>
-                                                            <property name="spacing">8</property>
+                                                            <property name="spacing">20</property>
                                                             <child>
-                                                            <widget class="GtkRadioButton" 
id="radio_encoder_eccon_concentric">
+                                                            <widget class="GtkButton" 
id="button_encoder_exercise_actions_cancel">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">True</property>
-                                                            <property 
name="receives_default">False</property>
-                                                            <property name="active">True</property>
-                                                            <property name="draw_indicator">False</property>
-                                                            <signal name="toggled" 
handler="on_radio_encoder_eccon_toggled" swapped="no"/>
+                                                            <property name="receives_default">True</property>
+                                                            <signal name="clicked" 
handler="on_button_encoder_exercise_actions_cancel_clicked" swapped="no"/>
+                                                            <accelerator key="Escape" signal="clicked"/>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox127">
+                                                            <widget class="GtkHBox" id="hbox229">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">4</property>
                                                             <child>
-                                                            <widget class="GtkImage" 
id="image_encoder_eccon_concentric">
+                                                            <widget class="GtkImage" 
id="image_button_encoder_exercise_actions_cancel">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property 
name="stock">gtk-missing-image</property>
@@ -32931,10 +33056,10 @@ then click this button.</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" id="label66">
+                                                            <widget class="GtkLabel" id="label632">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="label" 
translatable="yes">Concentric</property>
+                                                            <property name="label" 
translatable="yes">Cancel</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">True</property>
@@ -32952,20 +33077,22 @@ then click this button.</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkRadioButton" 
id="radio_encoder_eccon_eccentric_concentric">
+                                                            <widget class="GtkHBox" id="hbox511">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <child>
+                                                            <widget class="GtkButton" 
id="button_encoder_exercise_actions_edit_do">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">True</property>
-                                                            <property 
name="receives_default">False</property>
-                                                            <property name="draw_indicator">False</property>
-                                                            <property 
name="group">radio_encoder_eccon_concentric</property>
-                                                            <signal name="toggled" 
handler="on_radio_encoder_eccon_toggled" swapped="no"/>
+                                                            <property name="receives_default">True</property>
+                                                            <signal name="clicked" 
handler="on_button_encoder_exercise_actions_edit_do_clicked" swapped="no"/>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox130">
+                                                            <widget class="GtkHBox" id="hbox512">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">4</property>
                                                             <child>
-                                                            <widget class="GtkImage" 
id="image_encoder_eccon_eccentric_concentric">
+                                                            <widget class="GtkImage" 
id="image_button_encoder_exercise_actions_edit_do">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property 
name="stock">gtk-missing-image</property>
@@ -32977,10 +33104,10 @@ then click this button.</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" id="label78">
+                                                            <widget class="GtkLabel" id="label633">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="label" 
translatable="yes">Eccentric-Concentric</property>
+                                                            <property name="label" 
translatable="yes">Save</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">True</property>
@@ -32992,38 +33119,24 @@ then click this button.</property>
                                                             </child>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="position">1</property>
-                                                            </packing>
-                                                            </child>
-                                                            </widget>
-                                                            <packing>
                                                             <property name="expand">True</property>
                                                             <property name="fill">True</property>
-                                                            <property name="position">1</property>
+                                                            <property name="position">0</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox190">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">False</property>
-                                                            <property name="spacing">8</property>
-                                                            <child>
-                                                            <widget class="GtkRadioButton" 
id="radio_encoder_laterality_both">
+                                                            <widget class="GtkButton" 
id="button_encoder_exercise_actions_add_do">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">True</property>
-                                                            <property 
name="receives_default">False</property>
-                                                            <property name="active">True</property>
-                                                            <property name="draw_indicator">False</property>
-                                                            <signal name="toggled" 
handler="on_radio_encoder_laterality_toggled" swapped="no"/>
+                                                            <property name="receives_default">True</property>
+                                                            <signal name="clicked" 
handler="on_button_encoder_exercise_actions_add_do_clicked" swapped="no"/>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox208">
+                                                            <widget class="GtkHBox" id="hbox513">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">4</property>
                                                             <child>
-                                                            <widget class="GtkImage" 
id="image_encoder_laterality_both">
+                                                            <widget class="GtkImage" 
id="image_button_encoder_exercise_actions_add_do">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property 
name="stock">gtk-missing-image</property>
@@ -33035,10 +33148,10 @@ then click this button.</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" id="label81">
+                                                            <widget class="GtkLabel" id="label634">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="label" 
translatable="yes">Both</property>
+                                                            <property name="label" 
translatable="yes">Add</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">True</property>
@@ -33050,38 +33163,255 @@ then click this button.</property>
                                                             </child>
                                                             </widget>
                                                             <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
                                                             <property name="expand">False</property>
                                                             <property name="fill">False</property>
-                                                            <property name="position">0</property>
+                                                            <property name="position">1</property>
                                                             </packing>
                                                             </child>
-                                                            <child>
-                                                            <widget class="GtkRadioButton" 
id="radio_encoder_laterality_l">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">True</property>
-                                                            <property 
name="receives_default">False</property>
-                                                            <property name="draw_indicator">False</property>
-                                                            <property 
name="group">radio_encoder_laterality_both</property>
-                                                            <signal name="toggled" 
handler="on_radio_encoder_laterality_toggled" swapped="no"/>
-                                                            <child>
-                                                            <widget class="GtkHBox" id="hbox211">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">False</property>
-                                                            <property name="spacing">4</property>
-                                                            <child>
-                                                            <widget class="GtkImage" 
id="image_encoder_laterality_l">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">False</property>
-                                                            <property 
name="stock">gtk-missing-image</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">True</property>
                                                             <property name="fill">True</property>
-                                                            <property name="position">0</property>
+                                                            <property name="position">1</property>
                                                             </packing>
                                                             </child>
-                                                            <child>
-                                                            <widget class="GtkLabel" id="label88">
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">1</property>
+                                                            <property name="right_attach">2</property>
+                                                            <property name="top_attach">1</property>
+                                                            <property name="bottom_attach">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label627">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="xalign">0</property>
+                                                            <property name="label" 
translatable="yes">Exercise</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="top_attach">1</property>
+                                                            <property name="bottom_attach">2</property>
+                                                            <property name="x_options">GTK_FILL</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkNotebook" 
id="notebook_encoder_exercise">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="show_tabs">False</property>
+                                                            <property name="show_border">False</property>
+                                                            <child>
+                                                            <widget class="GtkTable" id="table1">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="n_rows">2</property>
+                                                            <property name="n_columns">2</property>
+                                                            <property name="column_spacing">20</property>
+                                                            <property name="row_spacing">16</property>
+                                                            <child>
+                                                            <widget class="GtkVBox" id="vbox18">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">16</property>
+                                                            <property name="homogeneous">True</property>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox123">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">8</property>
+                                                            <child>
+                                                            <widget class="GtkRadioButton" 
id="radio_encoder_eccon_concentric">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <property name="active">True</property>
+                                                            <property name="draw_indicator">False</property>
+                                                            <signal name="toggled" 
handler="on_radio_encoder_eccon_toggled" swapped="no"/>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox127">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">4</property>
+                                                            <child>
+                                                            <widget class="GtkImage" 
id="image_encoder_eccon_concentric">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label66">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">Concentric</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkRadioButton" 
id="radio_encoder_eccon_eccentric_concentric">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <property name="draw_indicator">False</property>
+                                                            <property 
name="group">radio_encoder_eccon_concentric</property>
+                                                            <signal name="toggled" 
handler="on_radio_encoder_eccon_toggled" swapped="no"/>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox130">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">4</property>
+                                                            <child>
+                                                            <widget class="GtkImage" 
id="image_encoder_eccon_eccentric_concentric">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label78">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">Eccentric-Concentric</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox190">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">8</property>
+                                                            <child>
+                                                            <widget class="GtkRadioButton" 
id="radio_encoder_laterality_both">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <property name="active">True</property>
+                                                            <property name="draw_indicator">False</property>
+                                                            <signal name="toggled" 
handler="on_radio_encoder_laterality_toggled" swapped="no"/>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox208">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">4</property>
+                                                            <child>
+                                                            <widget class="GtkImage" 
id="image_encoder_laterality_both">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label81">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">Both</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkRadioButton" 
id="radio_encoder_laterality_l">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <property name="draw_indicator">False</property>
+                                                            <property 
name="group">radio_encoder_laterality_both</property>
+                                                            <signal name="toggled" 
handler="on_radio_encoder_laterality_toggled" swapped="no"/>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox211">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">4</property>
+                                                            <child>
+                                                            <widget class="GtkImage" 
id="image_encoder_laterality_l">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label88">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="label" 
translatable="yes">Left</property>
@@ -33151,21 +33481,19 @@ then click this button.</property>
                                                             <packing>
                                                             <property name="expand">True</property>
                                                             <property name="fill">True</property>
-                                                            <property name="position">2</property>
+                                                            <property name="position">1</property>
                                                             </packing>
                                                             </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="left_attach">1</property>
                                                             <property name="right_attach">2</property>
-                                                            <property name="top_attach">1</property>
-                                                            <property name="bottom_attach">2</property>
                                                             <property name="x_options">GTK_FILL</property>
                                                             <property name="y_options">GTK_FILL</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkVBox" id="vbox18">
+                                                            <widget class="GtkVBox" id="vbox43">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <child>
@@ -33605,7 +33933,7 @@ then click this button.</property>
                                                             <child>
                                                             <widget class="GtkSpinButton" 
id="spin_encoder_im_weights_n">
                                                             <property name="can_focus">True</property>
-                                                            <property name="invisible_char">●</property>
+                                                            <property name="invisible_char">•</property>
                                                             <property 
name="primary_icon_activatable">False</property>
                                                             <property 
name="secondary_icon_activatable">False</property>
                                                             <property 
name="primary_icon_sensitive">True</property>
@@ -33690,27 +34018,230 @@ then click this button.</property>
                                                             <packing>
                                                             <property name="expand">False</property>
                                                             <property name="fill">False</property>
-                                                            <property name="position">2</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox157">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">8</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label182">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="tooltip" 
translatable="yes">Inertia moment</property>
+                                                            <property name="label" 
translatable="yes">Inertia M.</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_encoder_im_total">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="tooltip" 
translatable="yes">Kg*cm^2</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="pack_type">end</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">1</property>
+                                                            <property name="right_attach">2</property>
+                                                            <property name="top_attach">1</property>
+                                                            <property name="bottom_attach">2</property>
+                                                            <property name="x_options">GTK_FILL</property>
+                                                            <property name="y_options">GTK_FILL</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkVBox" id="vbox74">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_encoder_exercise_mass">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="xalign">0</property>
+                                                            <property name="label" 
translatable="yes">Mass</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_encoder_exercise_inertia">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="xalign">0</property>
+                                                            <property name="label" 
translatable="yes">Inertia M.</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="top_attach">1</property>
+                                                            <property name="bottom_attach">2</property>
+                                                            <property name="x_options">GTK_FILL</property>
+                                                            <property name="y_options">GTK_FILL</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkVBox" id="vbox256">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">16</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label58">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="xalign">0</property>
+                                                            <property name="label" 
translatable="yes">Phase</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label61">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="xalign">0</property>
+                                                            <property name="label" 
translatable="yes">Laterality</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="x_options">GTK_FILL</property>
+                                                            <property name="y_options">GTK_FILL</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label64">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">encoder options</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="tab_fill">False</property>
+                                                            <property name="type">tab</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkAlignment" id="alignment75">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="left_padding">20</property>
+                                                            <child>
+                                                            <widget class="GtkTable" id="table22">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="n_rows">3</property>
+                                                            <property name="n_columns">2</property>
+                                                            <property name="column_spacing">20</property>
+                                                            <property name="row_spacing">16</property>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox506">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">20</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label57">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">Name</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkEntry" 
id="entry_encoder_exercise_name">
+                                                            <property name="width_request">250</property>
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">•</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
                                                             </packing>
                                                             </child>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">True</property>
-                                                            <property name="position">0</property>
+                                                            <property name="x_options">GTK_FILL</property>
+                                                            <property name="y_options"/>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox157">
+                                                            <widget class="GtkHBox" id="hbox507">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="spacing">8</property>
+                                                            <property name="spacing">12</property>
                                                             <child>
-                                                            <widget class="GtkLabel" id="label182">
+                                                            <widget class="GtkLabel" id="label625">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="tooltip" 
translatable="yes">Inertia moment</property>
-                                                            <property name="label" 
translatable="yes">Inertia M.</property>
+                                                            <property name="label" 
translatable="yes">Type:</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
@@ -33719,124 +34250,125 @@ then click this button.</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_encoder_im_total">
+                                                            <widget class="GtkRadioButton" 
id="radio_encoder_exercise_gravitatory">
+                                                            <property name="label" 
translatable="yes">Gravitatory</property>
                                                             <property name="visible">True</property>
-                                                            <property name="can_focus">False</property>
-                                                            <property name="tooltip" 
translatable="yes">Kg*cm^2</property>
-                                                            </widget>
-                                                            <packing>
-                                                            <property name="expand">True</property>
-                                                            <property name="fill">True</property>
-                                                            <property name="position">1</property>
-                                                            </packing>
-                                                            </child>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <property name="active">True</property>
+                                                            <property name="draw_indicator">True</property>
+                                                            <signal name="toggled" 
handler="on_radio_encoder_exercise_radios_toggled" swapped="no"/>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
-                                                            <property name="fill">True</property>
-                                                            <property name="pack_type">end</property>
+                                                            <property name="fill">False</property>
                                                             <property name="position">1</property>
                                                             </packing>
                                                             </child>
+                                                            <child>
+                                                            <widget class="GtkRadioButton" 
id="radio_encoder_exercise_inertial">
+                                                            <property name="label" 
translatable="yes">Inertial</property>
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <property name="draw_indicator">True</property>
+                                                            <property 
name="group">radio_encoder_exercise_gravitatory</property>
+                                                            <signal name="toggled" 
handler="on_radio_encoder_exercise_radios_toggled" swapped="no"/>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">True</property>
+                                                            <property name="expand">False</property>
                                                             <property name="fill">False</property>
-                                                            <property name="position">1</property>
+                                                            <property name="position">2</property>
                                                             </packing>
                                                             </child>
+                                                            <child>
+                                                            <widget class="GtkRadioButton" 
id="radio_encoder_exercise_all">
+                                                            <property name="label" 
translatable="yes">Both</property>
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <property name="draw_indicator">True</property>
+                                                            <property 
name="group">radio_encoder_exercise_gravitatory</property>
+                                                            <signal name="toggled" 
handler="on_radio_encoder_exercise_radios_toggled" swapped="no"/>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="position">1</property>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">3</property>
                                                             </packing>
                                                             </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="left_attach">1</property>
                                                             <property name="right_attach">2</property>
-                                                            <property name="top_attach">2</property>
-                                                            <property name="bottom_attach">3</property>
                                                             <property name="x_options">GTK_FILL</property>
-                                                            <property name="y_options">GTK_FILL</property>
+                                                            <property name="y_options"/>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkVBox" id="vbox43">
+                                                            <widget class="GtkHBox" id="hbox509">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
+                                                            <property name="spacing">16</property>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_encoder_exercise_mass">
+                                                            <widget class="GtkLabel" id="label626">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="xalign">0</property>
-                                                            <property name="label" 
translatable="yes">Mass</property>
+                                                            <property name="label" 
translatable="yes">Displaced body weight</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">True</property>
-                                                            <property name="fill">True</property>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
                                                             <property name="position">0</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_encoder_exercise_inertia">
+                                                            <widget class="GtkSpinButton" 
id="spin_encoder_exercise_displaced_body_weight">
                                                             <property name="visible">True</property>
-                                                            <property name="can_focus">False</property>
-                                                            <property name="xalign">0</property>
-                                                            <property name="label" 
translatable="yes">Inertia M.</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">•</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="numeric">True</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">True</property>
-                                                            <property name="fill">True</property>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
                                                             <property name="position">1</property>
                                                             </packing>
                                                             </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label628">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">%</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="top_attach">2</property>
-                                                            <property name="bottom_attach">3</property>
-                                                            <property name="x_options">GTK_FILL</property>
-                                                            <property name="y_options">GTK_FILL</property>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">2</property>
                                                             </packing>
                                                             </child>
-                                                            <child>
-                                                            <widget class="GtkLabel" 
id="label_encoder_exercise_encoder">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">False</property>
-                                                            <property name="xalign">0</property>
-                                                            <property name="label" 
translatable="yes">Encoder</property>
                                                             </widget>
                                                             <packing>
+                                                            <property name="top_attach">1</property>
+                                                            <property name="bottom_attach">2</property>
                                                             <property name="x_options">GTK_FILL</property>
-                                                            <property name="y_options">GTK_FILL</property>
+                                                            <property name="y_options"/>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkHBox" 
id="hbox_encoder_exercise_encoder">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">False</property>
-                                                            <property name="spacing">8</property>
-                                                            <child>
-                                                            <widget class="GtkButton" 
id="button_encoder_select">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">True</property>
-                                                            <property name="can_default">True</property>
-                                                            <property name="receives_default">True</property>
-                                                            <property name="relief">half</property>
-                                                            <property name="use_underline">True</property>
-                                                            <property name="xalign">0</property>
-                                                            <signal name="clicked" 
handler="on_button_encoder_select_clicked" swapped="no"/>
-                                                            <child>
-                                                            <widget class="GtkHBox" id="hbox36">
+                                                            <widget class="GtkHBox" 
id="hbox_encoder_exercise_speed_1rm">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="spacing">6</property>
+                                                            <property name="spacing">16</property>
                                                             <child>
-                                                            <widget class="GtkImage" 
id="image_encoder_configuration">
+                                                            <widget class="GtkLabel" id="label629">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            <property name="label" translatable="yes">Speed 
at 1RM</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
@@ -33845,55 +34377,61 @@ then click this button.</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_button_encoder_select">
+                                                            <widget class="GtkSpinButton" 
id="spin_encoder_exercise_speed_1rm">
                                                             <property name="visible">True</property>
-                                                            <property name="can_focus">False</property>
-                                                            <property name="label" 
translatable="yes">Configure gravitatory encoder</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">•</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            <property name="adjustment">0 0 
9.9900000000000002 0.01 10 0</property>
+                                                            <property name="digits">3</property>
+                                                            <property name="numeric">True</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">True</property>
-                                                            <property name="fill">True</property>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
                                                             <property name="position">1</property>
                                                             </packing>
                                                             </child>
                                                             </widget>
-                                                            </child>
-                                                            </widget>
                                                             <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="position">0</property>
+                                                            <property name="left_attach">1</property>
+                                                            <property name="right_attach">2</property>
+                                                            <property name="top_attach">1</property>
+                                                            <property name="bottom_attach">2</property>
+                                                            <property name="x_options">GTK_FILL</property>
+                                                            <property name="y_options"/>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox121">
+                                                            <widget class="GtkHBox" id="hbox508">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="spacing">4</property>
+                                                            <property name="spacing">20</property>
                                                             <child>
-                                                            <widget class="GtkImage" 
id="image_encoder_selected_type">
+                                                            <widget class="GtkLabel" id="label630">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="tooltip" 
translatable="yes">Extra mass</property>
-                                                            <property 
name="stock">gtk-missing-image</property>
+                                                            <property name="label" 
translatable="yes">Resistance</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">True</property>
-                                                            <property name="fill">True</property>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
                                                             <property name="position">0</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_encoder_selected">
+                                                            <widget class="GtkEntry" 
id="entry_encoder_exercise_resistance">
                                                             <property name="visible">True</property>
-                                                            <property name="can_focus">False</property>
-                                                            </widget>
-                                                            <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">True</property>
-                                                            <property name="position">1</property>
-                                                            </packing>
-                                                            </child>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">•</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
@@ -33903,62 +34441,80 @@ then click this button.</property>
                                                             </child>
                                                             </widget>
                                                             <packing>
-                                                            <property name="left_attach">1</property>
-                                                            <property name="right_attach">2</property>
+                                                            <property name="top_attach">2</property>
+                                                            <property name="bottom_attach">3</property>
                                                             <property name="x_options">GTK_FILL</property>
-                                                            <property name="y_options">GTK_FILL</property>
+                                                            <property name="y_options"/>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkVBox" id="vbox74">
+                                                            <widget class="GtkHBox" id="hbox510">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="spacing">16</property>
+                                                            <property name="spacing">20</property>
                                                             <child>
-                                                            <widget class="GtkLabel" id="label57">
+                                                            <widget class="GtkLabel" id="label631">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="xalign">0</property>
-                                                            <property name="label" 
translatable="yes">Exercise</property>
+                                                            <property name="label" 
translatable="yes">Description</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">True</property>
-                                                            <property name="fill">True</property>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
                                                             <property name="position">0</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" id="label58">
+                                                            <widget class="GtkEntry" 
id="entry_encoder_exercise_description">
                                                             <property name="visible">True</property>
-                                                            <property name="can_focus">False</property>
-                                                            <property name="xalign">0</property>
-                                                            <property name="label" 
translatable="yes">Phase</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="invisible_char">•</property>
+                                                            <property 
name="invisible_char_set">True</property>
+                                                            <property 
name="primary_icon_activatable">False</property>
+                                                            <property 
name="secondary_icon_activatable">False</property>
+                                                            <property 
name="primary_icon_sensitive">True</property>
+                                                            <property 
name="secondary_icon_sensitive">True</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">1</property>
+                                                            <property name="right_attach">2</property>
+                                                            <property name="top_attach">2</property>
+                                                            <property name="bottom_attach">3</property>
+                                                            <property name="x_options">GTK_FILL</property>
+                                                            <property name="y_options"/>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            </child>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">True</property>
-                                                            <property name="fill">True</property>
                                                             <property name="position">1</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" id="label61">
+                                                            <widget class="GtkLabel" id="label624">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="xalign">0</property>
-                                                            <property name="label" 
translatable="yes">Laterality</property>
+                                                            <property name="label">exercise add 
edit</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">True</property>
-                                                            <property name="fill">True</property>
-                                                            <property name="position">2</property>
+                                                            <property name="position">1</property>
+                                                            <property name="tab_fill">False</property>
+                                                            <property name="type">tab</property>
                                                             </packing>
                                                             </child>
                                                             </widget>
                                                             <packing>
-                                                            <property name="top_attach">1</property>
-                                                            <property name="bottom_attach">2</property>
-                                                            <property name="x_options">GTK_FILL</property>
-                                                            <property name="y_options">GTK_FILL</property>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
                                                             </packing>
                                                             </child>
                                                             </widget>
@@ -33984,7 +34540,7 @@ then click this button.</property>
                                                             </widget>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox242">
+                                                            <widget class="GtkHBox" 
id="hbox_encoder_exercise_close_and">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">30</property>
@@ -39748,6 +40304,21 @@ then click this button.</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
diff --git a/src/encoder.cs b/src/encoder.cs
index 7bf21bbd..e65c67ce 100644
--- a/src/encoder.cs
+++ b/src/encoder.cs
@@ -1219,6 +1219,7 @@ public class EncoderExercise
        public string ressistance;
        public string description;
        public double speed1RM;
+       private Constants.EncoderGI type;
 
        public EncoderExercise() {
        }
@@ -1228,7 +1229,7 @@ public class EncoderExercise
        }
 
        public EncoderExercise(int uniqueID, string name, int percentBodyWeight, 
-                       string ressistance, string description, double speed1RM)
+                       string ressistance, string description, double speed1RM, Constants.EncoderGI type)
        {
                this.uniqueID = uniqueID;
                this.name = name;
@@ -1236,6 +1237,7 @@ public class EncoderExercise
                this.ressistance = ressistance;
                this.description = description;
                this.speed1RM = speed1RM;
+               this.type = type;
        }
 
        /*
@@ -1257,7 +1259,7 @@ public class EncoderExercise
        public override string ToString()
        {
                return uniqueID.ToString() + ": " + name + " (" + percentBodyWeight.ToString() + "%) " +
-                       ressistance + "," + description + "," + speed1RM.ToString();
+                       ressistance + "," + description + "," + speed1RM.ToString() + "," + type.ToString();
        }
 
        public int UniqueID
@@ -1284,6 +1286,10 @@ public class EncoderExercise
        {
                get { return speed1RM; }
        }
+       public Constants.EncoderGI Type
+       {
+               get { return type; }
+       }
 
        ~EncoderExercise() {}
 }
diff --git a/src/gui/app1/chronojump.cs b/src/gui/app1/chronojump.cs
index a1768c9c..9d84c139 100644
--- a/src/gui/app1/chronojump.cs
+++ b/src/gui/app1/chronojump.cs
@@ -3123,7 +3123,10 @@ public partial class ChronoJumpWindow
                hbox_change_modes_jumps.Visible = false;
                hbox_change_modes_runs.Visible = false;
                button_contacts_bells.Sensitive = false;
-               radio_mode_contacts_capture.Active = true;
+
+               radio_mode_contacts_capture.Active = true; //it is safe to change to capture, because analyze 
has different graphs depending on mode
+               radio_mode_encoder_capture_small.Active = true; //it is safe to change to capture, to ensure 
all widgets are ok on analyze (everything seems ok, but just to have same behaviour than in contacts)
+
                radio_mode_contacts_jumps_profile.Active = true;
                hbox_radio_mode_contacts_analyze_buttons.Visible = false;
                radio_mode_contacts_jumps_rj_fatigue.Visible = false;
@@ -3283,6 +3286,15 @@ public partial class ChronoJumpWindow
                        
                        blankEncoderInterface();
 
+                       //combos should show encoder exercises of current type (encoderGI)
+                       createEncoderComboExerciseAndAnalyze();
+
+                       /*
+                          only needed if change from grav analyze to inertial analyze (or viceversa) 
directly.
+                          But it is disabled because on change mode chronojump goes to capture.
+                       //updateEncoderAnalyzeExercisesPre();
+                       */
+
                        bool changed = false;
                        if(m == Constants.Menuitem_modes.POWERGRAVITATORY)
                        {
diff --git a/src/gui/app1/encoder.cs b/src/gui/app1/encoder.cs
index c3322780..b9e7d42f 100644
--- a/src/gui/app1/encoder.cs
+++ b/src/gui/app1/encoder.cs
@@ -130,6 +130,23 @@ public partial class ChronoJumpWindow
        [Widget] Gtk.RadioButton radio_encoder_laterality_l;
        [Widget] Gtk.Box hbox_encoder_capture_curves_save_all_none;
 
+       //exercise edit/add
+       [Widget] Gtk.HBox hbox_encoder_exercise_close_and;
+       [Widget] Gtk.HBox hbox_encoder_exercise_select;
+       [Widget] Gtk.HBox hbox_encoder_exercise_actions;
+       [Widget] Gtk.Button button_encoder_exercise_actions_edit_do;
+       [Widget] Gtk.Button button_encoder_exercise_actions_add_do;
+       [Widget] Gtk.Notebook notebook_encoder_exercise;
+       [Widget] Gtk.Entry entry_encoder_exercise_name;
+       [Widget] Gtk.RadioButton radio_encoder_exercise_gravitatory;
+       [Widget] Gtk.RadioButton radio_encoder_exercise_inertial;
+       [Widget] Gtk.RadioButton radio_encoder_exercise_all;
+       [Widget] Gtk.SpinButton spin_encoder_exercise_displaced_body_weight;
+       [Widget] Gtk.SpinButton spin_encoder_exercise_speed_1rm;
+       [Widget] Gtk.HBox hbox_encoder_exercise_speed_1rm;
+       [Widget] Gtk.Entry entry_encoder_exercise_resistance;
+       [Widget] Gtk.Entry entry_encoder_exercise_description;
+
        /*
        //used on guiTests
        [Widget] Gtk.Button button_encoder_capture_curves_all;
@@ -2666,7 +2683,7 @@ public partial class ChronoJumpWindow
        private void updateEncoderAnalyzeExercises(bool dbconOpened, int personID, int sessionID, string 
selectedPreviously)
        {
                LogB.Information("updateEncoderAnalyzeExercises()");
-               List<int> listFound = SqliteEncoder.SelectAnalyzeExercisesInCurves (dbconOpened, personID, 
sessionID, currentEncoderGI);
+               List<int> listFound = SqliteEncoder.SelectAnalyzeExercisesInCurves (dbconOpened, personID, 
sessionID, getEncoderGIByMenuitemMode());
                foreach(int i in listFound)
                        LogB.Information(i.ToString());
 
@@ -3021,7 +3038,7 @@ public partial class ChronoJumpWindow
                                {
                                        EncoderSQL eSQL = (EncoderSQL) data[0];
                                        EncoderExercise exTemp = (EncoderExercise) 
SqliteEncoder.SelectEncoderExercises(
-                                               false , eSQL.exerciseID, false)[0];
+                                               false , eSQL.exerciseID, false, 
Constants.EncoderGI.GRAVITATORY)[0];
 
                                        if(exTemp.speed1RM == 0) {
                                                new DialogMessage(Constants.MessageTypes.WARNING,
@@ -3400,7 +3417,7 @@ public partial class ChronoJumpWindow
                                if(my1RMName == "1RM Any exercise") {
                                        //get speed1RM (from exercise of curve on SQL, not from combo)
                                        EncoderExercise exTemp = (EncoderExercise) 
SqliteEncoder.SelectEncoderExercises(
-                                               false , exID, false)[0];
+                                               false , exID, false, Constants.EncoderGI.GRAVITATORY)[0];
                                
                                        sendAnalysis = "1RMAnyExercise";
                                        analysisVariables = Util.ConvertToPoint(exTemp.speed1RM) + ";" +
@@ -3434,8 +3451,8 @@ public partial class ChronoJumpWindow
                        TextWriter writer = File.CreateText(dataFileName);
                        
writer.WriteLine("status,seriesName,exerciseName,massBody,massExtra,dateTime,fullURL,eccon,percentBodyWeight,"
 + 
                                        "econfName, econfd, econfD, econfAnglePush, econfAngleWeight, 
econfInertia, econfGearedDown, laterality");
-               
-                       ArrayList eeArray = SqliteEncoder.SelectEncoderExercises(false, -1, false);
+
+                       ArrayList eeArray = SqliteEncoder.SelectEncoderExercises(false, -1, false, 
getEncoderGIByMenuitemMode());
                        EncoderExercise ex = new EncoderExercise();
                                                
                        LogB.Information("AT ANALYZE");
@@ -3530,7 +3547,8 @@ public partial class ChronoJumpWindow
                                if(my1RMName == "1RM Any exercise") {
                                        //get speed1RM (from combo)
                                        EncoderExercise ex = (EncoderExercise) 
SqliteEncoder.SelectEncoderExercises(
-                                                       false, 
getExerciseIDFromEncoderCombo(exerciseCombos.CAPTURE), false)[0];
+                                                       false, 
getExerciseIDFromEncoderCombo(exerciseCombos.CAPTURE),
+                                                       false, Constants.EncoderGI.GRAVITATORY)[0];
 
                                        sendAnalysis = "1RMAnyExercise";
                                        analysisVariables = Util.ConvertToPoint(ex.speed1RM) + ";" + 
@@ -4407,11 +4425,20 @@ public partial class ChronoJumpWindow
                button_combo_encoder_exercise_capture_right.Sensitive = ! isLast;
        }
 
+       private Constants.EncoderGI getEncoderGIByMenuitemMode()
+       {
+               Constants.EncoderGI encoderGI = Constants.EncoderGI.GRAVITATORY;
+               if(current_menuitem_mode == Constants.Menuitem_modes.POWERINERTIAL)
+                       encoderGI = Constants.EncoderGI.INERTIAL;
+
+               return encoderGI;
+       }
 
        //this is called also when an exercise is deleted to update the combo and the string []
+       //and on change mode POWERGRAVITORY <-> POWERINERTIAL, because forceSensorExercises can have 
different type (encoderGI)
        protected void createEncoderComboExerciseAndAnalyze()
        {
-               ArrayList encoderExercises = SqliteEncoder.SelectEncoderExercises(false, -1, false);
+               ArrayList encoderExercises = SqliteEncoder.SelectEncoderExercises(false, -1, false, 
getEncoderGIByMenuitemMode());
                if(encoderExercises.Count == 0)
                {
                        encoderExercisesTranslationAndBodyPWeight = new String [0];
@@ -5054,6 +5081,24 @@ public partial class ChronoJumpWindow
                return (getExerciseIDFromEncoderCombo(exerciseCombos.CAPTURE) != -1);
        }
 
+       private void prepare_encoder_exercise_add_edit (bool adding)
+       {
+               hbox_encoder_exercise_close_and.Sensitive = false;
+               hbox_encoder_exercise_encoder.Sensitive = false;
+               hbox_encoder_exercise_select.Sensitive = false;
+               hbox_encoder_exercise_actions.Visible = true;
+               button_encoder_exercise_actions_edit_do.Visible = ! adding;
+               button_encoder_exercise_actions_add_do.Visible = adding;
+               notebook_encoder_exercise.Page = 1;
+
+               if(current_menuitem_mode == Constants.Menuitem_modes.POWERGRAVITATORY) {
+                       radio_encoder_exercise_gravitatory.Sensitive = true;
+                       radio_encoder_exercise_inertial.Sensitive = false;
+               } else { // (current_menuitem_mode == Constants.Menuitem_modes.POWERINERTIAL)
+                       radio_encoder_exercise_gravitatory.Sensitive = false;
+                       radio_encoder_exercise_inertial.Sensitive = true;
+               }
+       }
 
        //info is now info and edit (all values can be changed), and detete (there's delete button)
        void on_button_encoder_exercise_edit_clicked (object o, EventArgs args) 
@@ -5065,140 +5110,85 @@ public partial class ChronoJumpWindow
                }
 
                EncoderExercise ex = (EncoderExercise) SqliteEncoder.SelectEncoderExercises(
-                               false, getExerciseIDFromEncoderCombo(exerciseCombos.CAPTURE), false)[0];
-
-               ArrayList bigArray = new ArrayList();
-
-               ArrayList a1 = new ArrayList();
-               ArrayList a2 = new ArrayList();
-               ArrayList a3 = new ArrayList();
-               ArrayList a4 = new ArrayList();
-               ArrayList a5 = new ArrayList();
-
-               string exerciseName = ex.name;
-               //0 is the widgget to show; 1 is the editable; 2 id default value
+                               false, getExerciseIDFromEncoderCombo(exerciseCombos.CAPTURE),
+                               false, getEncoderGIByMenuitemMode())[0];
 
-               a1.Add(Constants.GenericWindowShow.ENTRY); a1.Add(true); a1.Add(exerciseName);
-               bigArray.Add(a1);
+               prepare_encoder_exercise_add_edit (false);
 
-               a2.Add(Constants.GenericWindowShow.SPININT); a2.Add(true); a2.Add("");
-               bigArray.Add(a2);
-               
-               a3.Add(Constants.GenericWindowShow.ENTRY2); a3.Add(true); a3.Add(ex.ressistance);
-               bigArray.Add(a3);
-               
-               a4.Add(Constants.GenericWindowShow.ENTRY3); a4.Add(true); a4.Add(ex.description);
-               bigArray.Add(a4);
-               
-               a5.Add(Constants.GenericWindowShow.HBOXSPINDOUBLE2); a5.Add(true); a5.Add("");
-               bigArray.Add(a5);
-               
-               
-               genericWin = GenericWindow.Show(Catalog.GetString("Edit exercise"),
-                               false, Catalog.GetString("Encoder exercise name:"), bigArray);
+               entry_encoder_exercise_name.Text = ex.name;
+               spin_encoder_exercise_displaced_body_weight.Value = ex.percentBodyWeight;
+               spin_encoder_exercise_speed_1rm.Value = ex.speed1RM;
+               entry_encoder_exercise_resistance.Text = ex.ressistance;
+               entry_encoder_exercise_description.Text = ex.description;
 
-               genericWin.uniqueID = ex.UniqueID;
-               genericWin.LabelSpinInt = Catalog.GetString("Displaced body weight") + " (%)";
-               
-               //genericWin.SetSpinRange(ex.percentBodyWeight, ex.percentBodyWeight); //done this because 
IsEditable does not affect the cursors
-               genericWin.SetSpinRange(0, 100);
-               genericWin.SetSpinValue(ex.percentBodyWeight);
-               
-               genericWin.LabelEntry2 = Catalog.GetString("Resistance");
-               genericWin.LabelEntry3 = Catalog.GetString("Description");
-               genericWin.LabelSpinDouble2 = Catalog.GetString("Speed at 1RM");
-               genericWin.SetSpinDouble2Value(ex.speed1RM);
-               genericWin.SetSpinDouble2Increments(0.001,0.1);
-               /*
-                * Now this is in encoder configuration
-               genericWin.LabelSpinInt2 = Catalog.GetString("Body angle") + " (º)";
-               genericWin.SetSpin2Range(ex.bodyAngle,ex.bodyAngle); //done this because IsEditable does not 
affect the cursors
-               genericWin.LabelSpinInt3 = Catalog.GetString("Weight angle") + " (º)";
-               genericWin.SetSpin3Range(ex.weightAngle,ex.weightAngle); //done this because IsEditable does 
not affect the cursors
-               */
-               genericWin.ShowButtonCancel(false);
-               genericWin.HideOnAccept = false;
-
-               //genericWin.nameUntranslated = ex.name;
-               genericWin.uniqueID = ex.uniqueID;
-               
-               genericWin.Button_accept.Clicked -= new 
EventHandler(on_button_encoder_exercise_edit_accepted);
-               genericWin.Button_accept.Clicked += new 
EventHandler(on_button_encoder_exercise_edit_accepted);
-               genericWin.ShowNow();
+               hbox_encoder_exercise_speed_1rm.Sensitive = true;
+               if(ex.Type == Constants.EncoderGI.GRAVITATORY)
+                       radio_encoder_exercise_gravitatory.Active = true;
+               else if(ex.Type == Constants.EncoderGI.INERTIAL)
+               {
+                       radio_encoder_exercise_inertial.Active = true;
+                       hbox_encoder_exercise_speed_1rm.Sensitive = false;
+               }
+               else
+                       radio_encoder_exercise_all.Active = true;
        }
 
        void on_button_encoder_exercise_add_clicked (object o, EventArgs args) 
        {
-               ArrayList bigArray = new ArrayList();
+               prepare_encoder_exercise_add_edit (true);
 
-               ArrayList a1 = new ArrayList();
-               ArrayList a2 = new ArrayList();
-               ArrayList a3 = new ArrayList();
-               ArrayList a4 = new ArrayList();
-               ArrayList a5 = new ArrayList();
+               entry_encoder_exercise_name.Text = "";
+               spin_encoder_exercise_displaced_body_weight.Value = 0;
+               spin_encoder_exercise_speed_1rm.Value = 0;
+               entry_encoder_exercise_resistance.Text = "";
+               entry_encoder_exercise_description.Text = "";
 
-               //0 is the widgget to show; 1 is the editable; 2 id default value
-               a1.Add(Constants.GenericWindowShow.ENTRY); a1.Add(true); a1.Add("");
-               bigArray.Add(a1);
+               hbox_encoder_exercise_speed_1rm.Sensitive = true;
+               if(current_menuitem_mode == Constants.Menuitem_modes.POWERGRAVITATORY)
+                       radio_encoder_exercise_gravitatory.Active = true;
+               else if(current_menuitem_mode == Constants.Menuitem_modes.POWERINERTIAL)
+               {
+                       radio_encoder_exercise_inertial.Active = true;
+                       hbox_encoder_exercise_speed_1rm.Sensitive = false;
+               }
+               else //this could not happen
+                       radio_encoder_exercise_all.Active = true;
+       }
 
-               a2.Add(Constants.GenericWindowShow.SPININT); a2.Add(true); a2.Add("");
-               bigArray.Add(a2);
-               
-               a3.Add(Constants.GenericWindowShow.ENTRY2); a3.Add(true); a3.Add("");
-               bigArray.Add(a3);
-               
-               a4.Add(Constants.GenericWindowShow.ENTRY3); a4.Add(true); a4.Add("");
-               bigArray.Add(a4);
-               
-               a5.Add(Constants.GenericWindowShow.HBOXSPINDOUBLE2); a5.Add(true); a5.Add("");
-               bigArray.Add(a5);
-               
-               
-               genericWin = GenericWindow.Show(Catalog.GetString("Exercise"), false,   //don't show now
-                               Catalog.GetString("Write the name of the exercise:"), bigArray);
-               genericWin.LabelSpinInt = Catalog.GetString("Displaced body weight") + " (%)";
-               genericWin.SetSpinRange(0, 100);
-               genericWin.LabelEntry2 = Catalog.GetString("Resistance");
-               genericWin.LabelEntry3 = Catalog.GetString("Description");
-               genericWin.LabelSpinDouble2 = Catalog.GetString("Speed at 1RM");
-               genericWin.SetSpinDouble2Increments(0.001,0.1);
-               /*
-                * Now this is in encoder configuration
-               genericWin.LabelSpinInt2 = Catalog.GetString("Body angle") + " (º)";
-               genericWin.SetSpin2Range(0,90);
-               genericWin.SetSpin2Value(90);
-               genericWin.LabelSpinInt3 = Catalog.GetString("Weight angle") + " (º)";
-               genericWin.SetSpin3Range(0,90);
-               genericWin.SetSpin3Value(90);
-               */
-               genericWin.SetButtonAcceptLabel(Catalog.GetString("Add"));
-               genericWin.HideOnAccept = false;
+       private void on_radio_encoder_exercise_radios_toggled (object o, EventArgs args)
+       {
+               hbox_encoder_exercise_speed_1rm.Sensitive =
+                       (radio_encoder_exercise_gravitatory.Active || radio_encoder_exercise_all.Active);
+       }
 
-               genericWin.Button_accept.Clicked -= new EventHandler(on_button_encoder_exercise_add_accepted);
-               genericWin.Button_accept.Clicked += new EventHandler(on_button_encoder_exercise_add_accepted);
-               genericWin.ShowNow();
+       private void on_button_encoder_exercise_actions_cancel_clicked (object o, EventArgs args)
+       {
+               restore_encoder_exercise_sensitivity ();
        }
-       
-       void on_button_encoder_exercise_edit_accepted (object o, EventArgs args)
+       private void on_button_encoder_exercise_actions_edit_do_clicked (object o, EventArgs args)
        {
                if(encoder_exercise_do_add_or_edit(false))
-               {
-                       genericWin.Button_accept.Clicked -= new 
EventHandler(on_button_encoder_exercise_edit_accepted);
-                       genericWin.HideAndNull();
-               }
+                       restore_encoder_exercise_sensitivity ();
        }
-       void on_button_encoder_exercise_add_accepted (object o, EventArgs args)
+       private void on_button_encoder_exercise_actions_add_do_clicked (object o, EventArgs args)
        {
                if(encoder_exercise_do_add_or_edit(true))
-               {
-                       genericWin.Button_accept.Clicked -= new 
EventHandler(on_button_encoder_exercise_add_accepted);
-                       genericWin.HideAndNull();
-               }
+                       restore_encoder_exercise_sensitivity ();
        }
-                       
+
+       private void restore_encoder_exercise_sensitivity ()
+       {
+               hbox_encoder_exercise_close_and.Sensitive = true;
+               hbox_encoder_exercise_encoder.Sensitive = true;
+               hbox_encoder_exercise_select.Sensitive = true;
+               hbox_encoder_exercise_actions.Visible = false;
+               notebook_encoder_exercise.Page = 0;
+       }
+
+
        bool encoder_exercise_do_add_or_edit (bool adding)
        {
-               string name = Util.RemoveTildeAndColonAndDot(genericWin.EntrySelected);
+               string name = Util.RemoveTildeAndColonAndDot(entry_encoder_exercise_name.Text);
                name = Util.RemoveChar(name, '"');
 
                if(adding)
@@ -5208,12 +5198,12 @@ public partial class ChronoJumpWindow
 
                if(name == "")
                {
-                       genericWin.SetLabelError(Catalog.GetString("Error: Missing name of exercise."));
+                       new DialogMessage(Constants.MessageTypes.WARNING, Catalog.GetString("Error: Missing 
name of exercise."));
                        return false;
                }
                else if (adding && Sqlite.Exists(false, Constants.EncoderExerciseTable, name))
                {
-                       genericWin.SetLabelError(string.Format(Catalog.GetString(
+                       new DialogMessage(Constants.MessageTypes.WARNING, string.Format(Catalog.GetString(
                                                        "Error: An exercise named '{0}' already exists."), 
name));
                        return false;
                }
@@ -5221,26 +5211,43 @@ public partial class ChronoJumpWindow
                {
                        //if we edit, check that this name does not exists (on other exercise, on current 
editing exercise is obviously fine)
                        int getIdOfThis = Sqlite.ExistsAndGetUniqueID(false, Constants.EncoderExerciseTable, 
name); //if not exists will be -1
-                       if(getIdOfThis != -1 && getIdOfThis != genericWin.uniqueID)
+                       /*
+                          LogB.Information("getIdOfThis " + getIdOfThis.ToString());
+                          LogB.Information("if from combo " + 
getExerciseIDFromEncoderCombo(exerciseCombos.CAPTURE).ToString());
+                          */
+
+                       if(getIdOfThis != -1 && getIdOfThis != 
getExerciseIDFromEncoderCombo(exerciseCombos.CAPTURE))
                        {
-                               genericWin.SetLabelError(string.Format(Catalog.GetString(
+                               new DialogMessage(Constants.MessageTypes.WARNING, 
string.Format(Catalog.GetString(
                                                                "Error: An exercise named '{0}' already 
exists."), name));
 
                                return false;
                        }
                }
 
+               Constants.EncoderGI type = Constants.EncoderGI.ALL;
+               if(radio_encoder_exercise_gravitatory.Active)
+                       type = Constants.EncoderGI.GRAVITATORY;
+               else if(radio_encoder_exercise_inertial.Active)
+                       type = Constants.EncoderGI.INERTIAL;
+
                if(adding)
-                       SqliteEncoder.InsertExercise(false, -1, name, genericWin.SpinIntSelected,
-                                       genericWin.Entry2Selected, genericWin.Entry3Selected,
-                                       Util.ConvertToPoint(genericWin.SpinDouble2Selected)
-                                       );
+                       SqliteEncoder.InsertExercise(false, -1,
+                                       name,
+                                       Convert.ToInt32(spin_encoder_exercise_displaced_body_weight.Value),
+                                       entry_encoder_exercise_resistance.Text,
+                                       entry_encoder_exercise_description.Text,
+                                       Util.ConvertToPoint(spin_encoder_exercise_speed_1rm.Value),
+                                       type);
                else {
-                       EncoderExercise ex = new EncoderExercise(genericWin.uniqueID,
-                                       genericWin.EntrySelected,
-                                       genericWin.SpinIntSelected,
-                                       genericWin.Entry2Selected, genericWin.Entry3Selected,
-                                       genericWin.SpinDouble2Selected);
+                       EncoderExercise ex = new EncoderExercise(
+                                       getExerciseIDFromEncoderCombo(exerciseCombos.CAPTURE),
+                                       name,
+                                       Convert.ToInt32(spin_encoder_exercise_displaced_body_weight.Value),
+                                       entry_encoder_exercise_resistance.Text,
+                                       entry_encoder_exercise_description.Text,
+                                       spin_encoder_exercise_speed_1rm.Value,
+                                       type);
                        SqliteEncoder.UpdateExercise(false, ex);
                }
 
@@ -5251,7 +5258,7 @@ public partial class ChronoJumpWindow
 
        private void updateEncoderExercisesGui(string name)
        {
-               ArrayList encoderExercises = SqliteEncoder.SelectEncoderExercises(false,-1, false);
+               ArrayList encoderExercises = SqliteEncoder.SelectEncoderExercises(false,-1, false, 
getEncoderGIByMenuitemMode());
                encoderExercisesTranslationAndBodyPWeight = new String [encoderExercises.Count];
                string [] exerciseNamesToCombo = new String [encoderExercises.Count];
                int i =0;
@@ -5284,7 +5291,7 @@ public partial class ChronoJumpWindow
                }
 
                EncoderExercise ex = (EncoderExercise) SqliteEncoder.SelectEncoderExercises(
-                               false, getExerciseIDFromEncoderCombo(exerciseCombos.CAPTURE), false)[0];
+                               false, getExerciseIDFromEncoderCombo(exerciseCombos.CAPTURE), false, 
getEncoderGIByMenuitemMode())[0];
 
                ArrayList array = SqliteEncoder.SelectEncoderSetsOfAnExercise(false, ex.UniqueID); 
//dbconOpened, exerciseID
 
diff --git a/src/gui/app1/icons.cs b/src/gui/app1/icons.cs
index 3238f3ce..68bd02a7 100644
--- a/src/gui/app1/icons.cs
+++ b/src/gui/app1/icons.cs
@@ -137,6 +137,9 @@ public partial class ChronoJumpWindow
        [Widget] Gtk.Image image_recalculate;
        [Widget] Gtk.Image image_encoder_configuration;
        [Widget] Gtk.Image image_encoder_exercise;
+       [Widget] Gtk.Image image_button_encoder_exercise_actions_cancel;
+       [Widget] Gtk.Image image_button_encoder_exercise_actions_edit_do;
+       [Widget] Gtk.Image image_button_encoder_exercise_actions_add_do;
        [Widget] Gtk.Image image_encoder_exercise_settings;
        [Widget] Gtk.Image image_encoder_exercise_close;
        [Widget] Gtk.Image image_encoder_capture_open;
@@ -733,6 +736,7 @@ public partial class ChronoJumpWindow
 
                pixbuf = new Pixbuf (null, Util.GetImagePath(false) + "image_cancel.png");
                image_sprint_export_cancel.Pixbuf = pixbuf;
+               image_button_encoder_exercise_actions_cancel.Pixbuf = pixbuf;
                image_encoder_analyze_cancel.Pixbuf = pixbuf;
                image_force_sensor_export_cancel.Pixbuf = pixbuf;
                image_run_encoder_export_cancel.Pixbuf = pixbuf;
@@ -814,6 +818,8 @@ public partial class ChronoJumpWindow
                pixbuf = new Pixbuf (null, Util.GetImagePath(false) + "save.png");
                image_jumps_rj_fatigue_image_save.Pixbuf = pixbuf;
                image_sprint_analyze_table_save_1.Pixbuf = pixbuf;
+               image_button_encoder_exercise_actions_edit_do.Pixbuf = pixbuf;
+               image_button_encoder_exercise_actions_add_do.Pixbuf = pixbuf;
                image_encoder_capture_curves_save.Pixbuf = pixbuf;
                image_encoder_analyze_table_save_1.Pixbuf = pixbuf;
                image_encoder_capture_image_save_1.Pixbuf = pixbuf;
diff --git a/src/gui/networks.cs b/src/gui/networks.cs
index ee9328fd..df206e0a 100644
--- a/src/gui/networks.cs
+++ b/src/gui/networks.cs
@@ -941,8 +941,12 @@ public partial class ChronoJumpWindow
                if(configChronojump.CompujumpStationMode == Constants.Menuitem_modes.POWERGRAVITATORY ||
                                configChronojump.CompujumpStationMode == 
Constants.Menuitem_modes.POWERINERTIAL)
                {
-                       ArrayList encoderExercisesOnLocal = SqliteEncoder.SelectEncoderExercises(false, -1, 
false);
-                       List<EncoderExercise> exRemote_list = 
json.GetStationExercises(configChronojump.CompujumpStationID);
+                       Constants.EncoderGI type = Constants.EncoderGI.GRAVITATORY;
+                       if(configChronojump.CompujumpStationMode == Constants.Menuitem_modes.POWERINERTIAL)
+                               type = Constants.EncoderGI.INERTIAL;
+
+                       ArrayList encoderExercisesOnLocal = SqliteEncoder.SelectEncoderExercises(false, -1, 
false, type);
+                       List<EncoderExercise> exRemote_list = 
json.GetStationExercises(configChronojump.CompujumpStationID, type);
 
                        foreach(EncoderExercise exRemote in exRemote_list)
                        {
@@ -958,7 +962,7 @@ public partial class ChronoJumpWindow
                                {
                                        SqliteEncoder.InsertExercise(
                                                        false, exRemote.uniqueID, exRemote.name, 
exRemote.percentBodyWeight,
-                                                       "", "", ""); //ressitance, description, speed1RM
+                                                       "", "", "", type); //ressitance, description, 
speed1RM, type (encoderGI)
                                        updateEncoderExercisesGui(exRemote.name);
                                }
                        }
diff --git a/src/json/compujump.cs b/src/json/compujump.cs
index 60aab9ff..0bda3bc7 100644
--- a/src/json/compujump.cs
+++ b/src/json/compujump.cs
@@ -344,7 +344,8 @@ public class JsonCompujump : Json
                return stations;
        }
 
-       public List<EncoderExercise> GetStationExercises(int stationId)
+       //stationType can be GRAVITATORY or INERTIAL
+       public List<EncoderExercise> GetStationExercises(int stationId, Constants.EncoderGI stationType)
        {
                List<EncoderExercise> ex_list = new List<EncoderExercise>();
 
@@ -389,12 +390,12 @@ public class JsonCompujump : Json
                else if(responseFromServer == "[]")
                        LogB.Information(" Empty2 "); //when rfid is not on server
                else {
-                       ex_list = stationExercisesDeserialize(responseFromServer);
+                       ex_list = stationExercisesDeserialize(responseFromServer, stationType);
                }
 
                return ex_list;
        }
-       private List<EncoderExercise> stationExercisesDeserialize(string str)
+       private List<EncoderExercise> stationExercisesDeserialize(string str, Constants.EncoderGI stationType)
        {
                List<EncoderExercise> ex_list = new List<EncoderExercise>();
 
@@ -408,7 +409,7 @@ public class JsonCompujump : Json
                        int percentBodyMassDisplaced = jsonSE ["percentBodyMassDisplaced"];
 
                        ex_list.Add(new EncoderExercise(id, name, percentBodyMassDisplaced,
-                                       "", "", 0)); //ressitance, description, speed1RM
+                                       "", "", 0, stationType)); //resistance, description, speed1RM, 
stationType
                }
                return ex_list;
        }
diff --git a/src/sqlite/encoder.cs b/src/sqlite/encoder.cs
index 7ac07b67..6e92e4a8 100644
--- a/src/sqlite/encoder.cs
+++ b/src/sqlite/encoder.cs
@@ -721,14 +721,16 @@ class SqliteEncoder : Sqlite
                        "description TEXT, " +
                        "future1 TEXT, " +      //speed1RM: speed in m/s at 1RM with decimal point separator 
'.' ; 0 means undefined
                        "future2 TEXT, " +      //bodyAngle (unused)
-                       "future3 TEXT )";       //weightAngle (unused)
+                       "future3 TEXT, " +      //weightAngle (unused)
+                       "type TEXT DEFAULT \"ALL\")";   //ALL, GRAVITATORY, INERTIAL (enum 
constants.EncoderGI)
                dbcmd.ExecuteNonQuery();
        }
 
        //if uniqueID == -1, NULL will be used (correlative uniqueID)
        //uniqueID != -1 when an exercise is downloaded from server on compujump and need to have the same 
uniqueID as server
        public static void InsertExercise(bool dbconOpened, int uniqueID, string name, int percentBodyWeight,
-                       string ressistance, string description, string speed1RM)         //speed1RM decimal 
point = '.'
+                       string ressistance, string description, string speed1RM,        //speed1RM decimal 
point = '.'
+                       Constants.EncoderGI encoderGI)                                  //type
        {
                if(! dbconOpened)
                        Sqlite.Open();
@@ -738,9 +740,9 @@ class SqliteEncoder : Sqlite
                        uniqueIDStr = uniqueID.ToString();
 
                dbcmd.CommandText = "INSERT INTO " + Constants.EncoderExerciseTable +  
-                               " (uniqueID, name, percentBodyWeight, ressistance, description, future1, 
future2, future3)" +
+                               " (uniqueID, name, percentBodyWeight, ressistance, description, future1, 
future2, future3, type)" +
                                " VALUES (" + uniqueIDStr + ", \"" + name + "\", " + percentBodyWeight + ", 
\"" +
-                               ressistance + "\", \"" + description + "\", \"" + speed1RM + "\", '', '')";
+                               ressistance + "\", \"" + description + "\", \"" + speed1RM + "\", '', '', \"" 
+ encoderGI.ToString() + "\")";
                LogB.SQL(dbcmd.CommandText.ToString());
                dbcmd.ExecuteNonQuery();
 
@@ -755,13 +757,14 @@ class SqliteEncoder : Sqlite
        {
                string [] iniEncoderExercises = {
                        //name:percentBodyWeight:ressistance:description:speed1RM:pullAngle:weightAngle
-                       "Bench press:0:weight bar::0.185::", //González-Badillo, J. 2010. Movement velocity 
as a measure of loading intensity in resistance training
-                       "Squat:100:weight bar::0.31::" //González-Badillo, JJ.2000b 
http://foro.chronojump.org/showthread.php?tid=1288&page=3 
+                       "Bench press:0:weight bar::0.185:::GRAVITATORY", //González-Badillo, J. 2010. 
Movement velocity as a measure of loading intensity in resistance training
+                       "Squat:100:weight bar::0.31:::GRAVITATORY" //González-Badillo, JJ.2000b 
http://foro.chronojump.org/showthread.php?tid=1288&page=3
                };
                
                foreach(string line in iniEncoderExercises) {
                        string [] parts = line.Split(new char[] {':'});
-                       InsertExercise(true, -1, parts[0], Convert.ToInt32(parts[1]), parts[2], parts[3], 
parts[4]);
+                       InsertExercise(true, -1, parts[0], Convert.ToInt32(parts[1]), parts[2], parts[3], 
parts[4],
+                                       (Constants.EncoderGI) Enum.Parse(typeof(Constants.EncoderGI), 
parts[7]));
                }
 
                addEncoderFreeExercise();
@@ -773,25 +776,26 @@ class SqliteEncoder : Sqlite
        {
                bool exists = Sqlite.Exists (true, Constants.EncoderExerciseTable, "Free");
                if(! exists)
-                       InsertExercise(true, -1, "Free", 0, "", "", "");
+                       InsertExercise(true, -1, "Free", 0, "", "", "", Constants.EncoderGI.ALL);
        }
        protected internal static void addEncoderJumpExercise()
        {
                bool exists = Sqlite.Exists (true, Constants.EncoderExerciseTable, "Jump");
                if(! exists)
-                       InsertExercise(true, -1, "Jump", 100, "", "", "");
+                       InsertExercise(true, -1, "Jump", 100, "", "", "", Constants.EncoderGI.GRAVITATORY);
        }
        protected internal static void addEncoderInclinedExercises()
        {
                string [] iniEncoderExercises = {
-                       //name:percentBodyWeight:ressistance:description:speed1RM:bodyAngle:weightAngle
-                       "Inclined plane:0:machine::::",
-                       "Inclined plane BW:100:machine::::",
+                       //name:percentBodyWeight:ressistance:description:speed1RM:bodyAngle:weightAngle:type
+                       "Inclined plane:0:machine:::::GRAVITATORY",
+                       "Inclined plane BW:100:machine:::::GRAVITATORY",
                };
                
                foreach(string line in iniEncoderExercises) {
                        string [] parts = line.Split(new char[] {':'});
-                       InsertExercise(true, -1, parts[0], Convert.ToInt32(parts[1]), parts[2], parts[3], 
parts[4]);
+                       InsertExercise(true, -1, parts[0], Convert.ToInt32(parts[1]), parts[2], parts[3], 
parts[4],
+                                       (Constants.EncoderGI) Enum.Parse(typeof(Constants.EncoderGI), 
parts[7]));
                }
        }
 
@@ -806,6 +810,7 @@ class SqliteEncoder : Sqlite
                                ", ressistance = \"" + ex.Ressistance +
                                "\", description = \"" + ex.Description +
                                "\", future1 = \"" + Util.ConvertToPoint(ex.Speed1RM) +
+                               "\", type = \"" + ex.Type +
                                "\" WHERE uniqueID = " + ex.UniqueID;
 
                LogB.SQL(dbcmd.CommandText.ToString());
@@ -815,7 +820,7 @@ class SqliteEncoder : Sqlite
                        Sqlite.Close();
        }
        public static void UpdateExerciseByName_old_do_not_use(bool dbconOpened, string nameOld, string name, 
int percentBodyWeight,
-                       string ressistance, string description, string speed1RM)
+                       string ressistance, string description, string speed1RM, Constants.EncoderGI type)
        {
                if(! dbconOpened)
                        Sqlite.Open();
@@ -826,6 +831,7 @@ class SqliteEncoder : Sqlite
                                ", ressistance = \"" + ressistance +
                                "\", description = \"" + description +
                                "\", future1 = \"" + speed1RM +
+                               "\", type = \"" + type.ToString() +
                                "\" WHERE name = \"" + nameOld + "\"" ;
 
                LogB.SQL(dbcmd.CommandText.ToString());
@@ -837,19 +843,32 @@ class SqliteEncoder : Sqlite
        
        //if uniqueID != -1, returns an especific EncoderExercise that can be read like this    
        //EncoderExercise ex = (EncoderExercise) SqliteEncoder.SelectEncoderExercises(eSQL.exerciseID)[0];
-       public static ArrayList SelectEncoderExercises(bool dbconOpened, int uniqueID, bool onlyNames) 
+       //if encoderGI == GRAVITATORY, return GRAVITATORY and ALL
+       //if encoderGI == INERTIAL, return INERTIAL and ALL
+       //if encoderGI == ALL, return everything
+       public static ArrayList SelectEncoderExercises(bool dbconOpened, int uniqueID, bool onlyNames, 
Constants.EncoderGI encoderGI)
        {
                if(! dbconOpened)
                        Sqlite.Open();
 
+               string encoderGIconnector = " WHERE ";
+
                string uniqueIDStr = "";
-               if(uniqueID != -1)
+               if(uniqueID != -1) {
                        uniqueIDStr = " WHERE " + Constants.EncoderExerciseTable + ".uniqueID = " + uniqueID;
+                       encoderGIconnector = " AND ";
+               }
+
+               string encoderGIstr = "";
+               if(encoderGI == Constants.EncoderGI.GRAVITATORY)
+                       encoderGIstr = encoderGIconnector + " type != \"INERTIAL\"";
+               else if(encoderGI == Constants.EncoderGI.INERTIAL)
+                       encoderGIstr = encoderGIconnector + " type != \"GRAVITATORY\"";
        
                if(onlyNames)
-                       dbcmd.CommandText = "SELECT name FROM " + Constants.EncoderExerciseTable + 
uniqueIDStr;
+                       dbcmd.CommandText = "SELECT name FROM " + Constants.EncoderExerciseTable + 
uniqueIDStr + encoderGIstr;
                else
-                       dbcmd.CommandText = "SELECT * FROM " + Constants.EncoderExerciseTable + uniqueIDStr;
+                       dbcmd.CommandText = "SELECT * FROM " + Constants.EncoderExerciseTable + uniqueIDStr + 
encoderGIstr;
                
                LogB.SQL(dbcmd.CommandText.ToString());
                dbcmd.ExecuteNonQuery();
@@ -875,9 +894,10 @@ class SqliteEncoder : Sqlite
                                                Convert.ToInt32(reader[0].ToString()),  //uniqueID
                                                reader[1].ToString(),                   //name
                                                Convert.ToInt32(reader[2].ToString()),  //percentBodyWeight
-                                               reader[3].ToString(),                   //ressistance
+                                               reader[3].ToString(),                   //resistance
                                                reader[4].ToString(),                   //description
-                                               speed1RM
+                                               speed1RM,
+                                               (Constants.EncoderGI) Enum.Parse(typeof(Constants.EncoderGI), 
reader[8].ToString())
                                                );
                                array.Add(ex);
                        }
diff --git a/src/sqlite/main.cs b/src/sqlite/main.cs
index e87aedf5..f54e2a7e 100644
--- a/src/sqlite/main.cs
+++ b/src/sqlite/main.cs
@@ -129,7 +129,7 @@ class Sqlite
        /*
         * Important, change this if there's any update to database
         */
-       static string lastChronojumpDatabaseVersion = "2.18";
+       static string lastChronojumpDatabaseVersion = "2.19";
 
        public Sqlite()
        {
@@ -1389,7 +1389,8 @@ class Sqlite
                        if(currentVersion == "0.90") {
                                Sqlite.Open();
                                
-                               SqliteEncoder.UpdateExerciseByName_old_do_not_use(true, "Squat", "Squat", 
100, "weight bar", "", "");
+                               SqliteEncoder.UpdateExerciseByName_old_do_not_use(true, "Squat", "Squat", 
100, "weight bar", "", "",
+                                               Constants.EncoderGI.ALL);
                                LogB.SQL("Encoder Squat 75% -> 100%");
                                
                                SqlitePreferences.Update ("databaseVersion", "0.91", true); 
@@ -1411,8 +1412,10 @@ class Sqlite
                        if(currentVersion == "0.92") {
                                Sqlite.Open();
                                
-                               SqliteEncoder.UpdateExerciseByName_old_do_not_use(true, "Bench press", "Bench 
press", 0, "weight bar", "","0.185");
-                               SqliteEncoder.UpdateExerciseByName_old_do_not_use(true, "Squat", "Squat", 
100, "weight bar", "","0.31");
+                               SqliteEncoder.UpdateExerciseByName_old_do_not_use(true, "Bench press", "Bench 
press", 0, "weight bar", "","0.185",
+                                               Constants.EncoderGI.ALL);
+                               SqliteEncoder.UpdateExerciseByName_old_do_not_use(true, "Squat", "Squat", 
100, "weight bar", "","0.31",
+                                               Constants.EncoderGI.ALL);
                                LogB.SQL("Added speed1RM on encoder exercise");
                                
                                SqlitePreferences.Update ("databaseVersion", "0.93", true); 
@@ -2200,7 +2203,7 @@ class Sqlite
 
                                //1 exercise
                                ArrayList encoderExercises =
-                                       SqliteEncoder.SelectEncoderExercises(true, -1, true);
+                                       SqliteEncoder.SelectEncoderExercises(true, -1, true, 
Constants.EncoderGI.ALL);
 
                                if(encoderExercises.Count > 0) {
                                        EncoderExercise ex = (EncoderExercise) encoderExercises[0];
@@ -2966,6 +2969,19 @@ class Sqlite
 
                                currentVersion = updateVersion("2.18");
                        }
+                       if(currentVersion == "2.18")
+                       {
+                               LogB.SQL("Doing alter table encoderExercise ADD COLUMN type TEXT ...");
+                               try {
+                                       executeSQL("ALTER TABLE " + Constants.EncoderExerciseTable + " ADD 
COLUMN type TEXT DEFAULT \"ALL\";");
+                               } catch {
+                                       LogB.SQL("Catched at Doing alter table encoderExercise ADD COLUMN 
type TEXT ...");
+
+                               }
+                               LogB.SQL("Done!");
+
+                               currentVersion = updateVersion("2.19");
+                       }
 
 
 
@@ -3188,6 +3204,7 @@ class Sqlite
 //just testing: 1.79 - 1.80 Converted DB to 1.80 Created table ForceSensorElasticBandGlue and moved 
stiffnessString records there
 
 
+               //2.18 - 2.19 Converted DB to 2.19 Doing alter table encoderExercise ADD COLUMN type TEXT ...
                //2.17 - 2.18 Converted DB to 2.18 Person77 ALTER TABLE added field: linkServerImage (for 
networks)
                //2.16 - 2.17 Converted DB to 2.17 Created table lastJumpRjTypeParams
                //2.15 - 2.16 Converted DB to 2.16 Created table lastJumpSimpleTypeParams
diff --git a/src/sqlite/preferences.cs b/src/sqlite/preferences.cs
index 0a7496db..fc22aa99 100644
--- a/src/sqlite/preferences.cs
+++ b/src/sqlite/preferences.cs
@@ -247,7 +247,7 @@ class SqlitePreferences : Sqlite
                                Insert ("encoder1RMMethod", Constants.Encoder1RMMethod.WEIGHTED2.ToString(), 
dbcmdTr);
 
                                ArrayList encoderExercises =
-                                       SqliteEncoder.SelectEncoderExercises(true, -1, true);
+                                       SqliteEncoder.SelectEncoderExercises(true, -1, true, 
Constants.EncoderGI.ALL);
 
                                if(encoderExercises.Count > 0) {
                                        EncoderExercise ex = (EncoderExercise) encoderExercises[0];


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