[chronojump] Autosave curves on capture with options selectable on preferences
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Autosave curves on capture with options selectable on preferences
- Date: Thu, 17 Jul 2014 14:05:57 +0000 (UTC)
commit fdd02eead81214f1ab4934c5ca7a1c304011660a
Author: Xavier de Blas <xaviblas gmail com>
Date: Thu Jul 17 16:05:05 2014 +0200
Autosave curves on capture with options selectable on preferences
glade/chronojump.glade | 748 ++++++++++++++++++++++++++++++-------------
src/constants.cs | 2 +
src/gui/chronojump.cs | 21 ++-
src/gui/encoder.cs | 22 +-
src/gui/encoderTreeviews.cs | 16 +-
src/gui/preferences.cs | 22 ++-
src/sqlite/main.cs | 43 ++-
src/sqlite/preferences.cs | 1 +
8 files changed, 615 insertions(+), 260 deletions(-)
---
diff --git a/glade/chronojump.glade b/glade/chronojump.glade
index 948d2e1..3c137d1 100644
--- a/glade/chronojump.glade
+++ b/glade/chronojump.glade
@@ -6197,6 +6197,12 @@ Second Chronopic to platforms.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">True</property>
@@ -6810,6 +6816,12 @@ Second Chronopic to platforms.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
<child>
@@ -7557,6 +7569,12 @@ Second Chronopic to platforms.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="position">2</property>
@@ -8063,6 +8081,12 @@ Second Chronopic to platforms.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="position">4</property>
@@ -17352,6 +17376,12 @@ by you</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -17766,6 +17796,12 @@ by you</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -18608,6 +18644,18 @@ by you</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">True</property>
@@ -26151,6 +26199,42 @@ options</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -27955,6 +28039,12 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -28428,6 +28518,12 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -29428,88 +29524,155 @@ show elevation as:</property>
</packing>
</child>
<child>
- <widget class="GtkVBox" id="vbox123">
+ <widget class="GtkScrolledWindow" id="scrolledwindow2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">8</property>
- <property name="spacing">12</property>
- <child>
- <widget class="GtkVBox" id="vbox2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">4</property>
- <child>
- <widget class="GtkCheckButton" id="checkbutton_encoder_propulsive">
- <property name="label" translatable="yes">Propulsive</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip" translatable="yes">On concentric evaluate only propulsive
phase</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</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="label17">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="xpad">12</property>
- <property name="label" translatable="yes">On inertial machines this option is not
used.</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">False</property>
- <property name="position">0</property>
- </packing>
- </child>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
<child>
- <widget class="GtkFrame" id="frame1">
+ <widget class="GtkViewport" id="viewport2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.69999998807907104</property>
- <property name="shadow_type">out</property>
<child>
- <widget class="GtkAlignment" id="alignment1">
+ <widget class="GtkVBox" id="vbox123">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="left_padding">12</property>
+ <property name="border_width">8</property>
+ <property name="spacing">20</property>
<child>
- <widget class="GtkVBox" id="vbox4">
+ <widget class="GtkVBox" id="vbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="border_width">8</property>
- <property name="spacing">12</property>
+ <property name="spacing">8</property>
<child>
- <widget class="GtkHBox" id="hbox2">
+ <widget class="GtkCheckButton" id="checkbutton_encoder_propulsive">
+ <property name="label" translatable="yes">Propulsive</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip" translatable="yes">On concentric evaluate only
propulsive phase</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</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="label17">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="xpad">12</property>
+ <property name="label" translatable="yes">On inertial machines this option
is not used.</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">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkFrame" id="frame6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="label_yalign">0.69999998807907104</property>
+ <property name="shadow_type">out</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment6">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">20</property>
+ <property name="left_padding">12</property>
<child>
- <widget class="GtkHBox" id="hbox5">
+ <widget class="GtkVBox" id="vbox13">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">10</property>
+ <property name="border_width">8</property>
+ <property name="spacing">8</property>
<child>
- <widget class="GtkLabel" id="label8">
+ <widget class="GtkRadioButton"
id="radio_encoder_auto_save_curve_bestmeanpower">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Smooth</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <child>
+ <widget class="GtkHBox" id="hbox11">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">8</property>
+ <child>
+ <widget class="GtkLabel" id="label40">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Save the curve
with best mean power</property>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox12">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <widget class="GtkLabel" id="label37">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label">(</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="label39">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"
translatable="yes">default</property>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label41">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label">)</property>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </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>
@@ -29518,222 +29681,333 @@ show elevation as:</property>
</packing>
</child>
<child>
- <widget class="GtkSpinButton" id="spin_encoder_smooth_con">
+ <widget class="GtkHBox" id="hbox10">
<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>
- <property name="adjustment">0.69999999999999996 0 1 0.01
0.10000000000000001 0</property>
- <property name="climb_rate">1</property>
- <property name="digits">2</property>
- <property name="snap_to_ticks">True</property>
- <property name="numeric">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">8</property>
+ <child>
+ <widget class="GtkRadioButton"
id="radio_encoder_auto_save_curve_all">
+ <property name="label" translatable="yes">Save all</property>
+ <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">True</property>
+ <property
name="group">radio_encoder_auto_save_curve_bestmeanpower</property>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkRadioButton"
id="radio_encoder_auto_save_curve_none">
+ <property name="label" translatable="yes">Do not save</property>
+ <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">True</property>
+ <property
name="group">radio_encoder_auto_save_curve_bestmeanpower</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="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="position">0</property>
- </packing>
</child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label35">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Save curves automatically on
capture</property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkFrame" id="frame1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="label_yalign">0.69999998807907104</property>
+ <property name="shadow_type">out</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
<child>
- <widget class="GtkHBox" id="hbox3">
+ <widget class="GtkVBox" id="vbox4">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">10</property>
+ <property name="border_width">8</property>
+ <property name="spacing">12</property>
<child>
- <widget class="GtkLabel" id="label13">
+ <widget class="GtkHBox" id="hbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes">Recommended:</property>
+ <property name="spacing">20</property>
+ <child>
+ <widget class="GtkHBox" id="hbox5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">10</property>
+ <child>
+ <widget class="GtkLabel" id="label8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Smooth</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton" id="spin_encoder_smooth_con">
+ <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>
+ <property name="adjustment">0.69999999999999996 0 1 0.01
0.10000000000000001 0</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">2</property>
+ <property name="snap_to_ticks">True</property>
+ <property name="numeric">True</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">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">10</property>
+ <child>
+ <widget class="GtkLabel" id="label13">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"
translatable="yes">Recommended:</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_con">
+ <property name="visible">True</property>
+ <property name="can_focus">False</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">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="expand">True</property>
+ <property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
- <child>
- <widget class="GtkLabel" id="label_encoder_con">
- <property name="visible">True</property>
- <property name="can_focus">False</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">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
</widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Smoothing</property>
+ <property name="use_markup">True</property>
+ </widget>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="type">label_item</property>
</packing>
</child>
</widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
</child>
- </widget>
- </child>
- <child>
- <widget class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Smoothing</property>
- <property name="use_markup">True</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkFrame" id="frame2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.69999998807907104</property>
- <property name="shadow_type">out</property>
- <child>
- <widget class="GtkAlignment" id="alignment2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="left_padding">12</property>
<child>
- <widget class="GtkVBox" id="vbox7">
+ <widget class="GtkFrame" id="frame2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="border_width">8</property>
- <property name="spacing">12</property>
+ <property name="label_xalign">0</property>
+ <property name="label_yalign">0.69999998807907104</property>
+ <property name="shadow_type">out</property>
<child>
- <widget class="GtkTable" id="table3">
+ <widget class="GtkAlignment" id="alignment2">
<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">10</property>
- <property name="row_spacing">8</property>
+ <property name="left_padding">12</property>
<child>
- <widget class="GtkRadioButton" id="radio_encoder_1RM_nonweighted">
- <property name="label" translatable="yes">Non weighted</property>
+ <widget class="GtkVBox" id="vbox7">
<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">True</property>
- </widget>
- </child>
- <child>
- <widget class="GtkRadioButton" id="radio_encoder_1RM_weighted">
- <property name="label" translatable="yes">Weighted</property>
- <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">True</property>
- <property name="group">radio_encoder_1RM_nonweighted</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkRadioButton" id="radio_encoder_1RM_weighted2">
- <property name="label" translatable="yes">Weighted^2</property>
- <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">True</property>
- <property name="group">radio_encoder_1RM_nonweighted</property>
- </widget>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkRadioButton" id="radio_encoder_1RM_weighted3">
- <property name="label" translatable="yes">Weighted^3</property>
- <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">True</property>
- <property name="group">radio_encoder_1RM_nonweighted</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">8</property>
+ <property name="spacing">12</property>
+ <child>
+ <widget class="GtkTable" id="table3">
+ <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">10</property>
+ <property name="row_spacing">8</property>
+ <child>
+ <widget class="GtkRadioButton" id="radio_encoder_1RM_nonweighted">
+ <property name="label" translatable="yes">Non weighted</property>
+ <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">True</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkRadioButton" id="radio_encoder_1RM_weighted">
+ <property name="label" translatable="yes">Weighted</property>
+ <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">True</property>
+ <property name="group">radio_encoder_1RM_nonweighted</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkRadioButton" id="radio_encoder_1RM_weighted2">
+ <property name="label" translatable="yes">Weighted^2</property>
+ <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">True</property>
+ <property name="group">radio_encoder_1RM_nonweighted</property>
+ </widget>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkRadioButton" id="radio_encoder_1RM_weighted3">
+ <property name="label" translatable="yes">Weighted^3</property>
+ <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">True</property>
+ <property name="group">radio_encoder_1RM_nonweighted</property>
+ </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>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label10">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Recommended:
Weighted^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="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</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="GtkLabel" id="label10">
+ <widget class="GtkLabel" id="label15">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Recommended: Weighted^2</property>
+ <property name="label" translatable="yes">1RM prediction</property>
+ <property name="use_markup">True</property>
</widget>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
+ <property name="type">label_item</property>
</packing>
</child>
</widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
</child>
</widget>
</child>
- <child>
- <widget class="GtkLabel" id="label15">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">1RM prediction</property>
- <property name="use_markup">True</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
</widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
</child>
</widget>
<packing>
@@ -30696,6 +30970,12 @@ show elevation as:</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="left_attach">2</property>
@@ -30774,6 +31054,12 @@ show elevation as:</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -30867,6 +31153,12 @@ show elevation as:</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
diff --git a/src/constants.cs b/src/constants.cs
index 13b4fd4..0300673 100644
--- a/src/constants.cs
+++ b/src/constants.cs
@@ -748,6 +748,8 @@ public class Constants
public enum Encoder1RMMethod { NONWEIGHTED, WEIGHTED, WEIGHTED2, WEIGHTED3 }
public enum ContextMenu { NONE, EDITDELETE, DELETE }
+
+ public enum EncoderAutoSaveCurve { ALL, NONE, BESTMEANPOWER }
public enum DoubleContact {
FIRST, AVERAGE, LAST
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index 819bc23..9f3e111 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -362,6 +362,7 @@ public partial class ChronoJumpWindow
private static string CSVExportDecimalSeparator; //"COMMA" or "POINT"
private static bool RGraphsTranslate;
private static bool useHeightsOnJumpIndexes;
+ private static Constants.EncoderAutoSaveCurve encoderAutoSaveCurve;
private static Person currentPerson;
private static Session currentSession;
@@ -956,6 +957,14 @@ public partial class ChronoJumpWindow
useHeightsOnJumpIndexes = SqlitePreferences.Select("useHeightsOnJumpIndexes") == "True";
+ string temp = SqlitePreferences.Select("encoderAutoSaveCurve");
+ if(temp == Constants.EncoderAutoSaveCurve.BESTMEANPOWER.ToString())
+ encoderAutoSaveCurve = Constants.EncoderAutoSaveCurve.BESTMEANPOWER;
+ else if(temp == Constants.EncoderAutoSaveCurve.ALL.ToString())
+ encoderAutoSaveCurve = Constants.EncoderAutoSaveCurve.ALL;
+ else
+ encoderAutoSaveCurve = Constants.EncoderAutoSaveCurve.NONE;
+
//change language works on windows. On Linux let's change the locale
//if(UtilAll.IsWindows())
// languageChange();
@@ -2837,7 +2846,8 @@ public partial class ChronoJumpWindow
SqlitePreferences.Select("language"),
encoderPropulsive, encoderSmoothCon,
videoDevices, videoDeviceNum, SqlitePreferences.Select("encoder1RMMethod"),
- CSVExportDecimalSeparator, RGraphsTranslate, useHeightsOnJumpIndexes
+ CSVExportDecimalSeparator, RGraphsTranslate, useHeightsOnJumpIndexes,
+ encoderAutoSaveCurve
);
myWin.Button_accept.Clicked += new EventHandler(on_preferences_accepted);
}
@@ -2927,6 +2937,15 @@ public partial class ChronoJumpWindow
RGraphsTranslate = SqlitePreferences.Select("RGraphsTranslate") == "True";
useHeightsOnJumpIndexes = SqlitePreferences.Select("useHeightsOnJumpIndexes") == "True";
+
+ string temp = SqlitePreferences.Select("encoderAutoSaveCurve");
+ if(temp == Constants.EncoderAutoSaveCurve.BESTMEANPOWER.ToString())
+ encoderAutoSaveCurve = Constants.EncoderAutoSaveCurve.BESTMEANPOWER;
+ else if(temp == Constants.EncoderAutoSaveCurve.ALL.ToString())
+ encoderAutoSaveCurve = Constants.EncoderAutoSaveCurve.ALL;
+ else
+ encoderAutoSaveCurve = Constants.EncoderAutoSaveCurve.NONE;
+
videoDeviceNum = Convert.ToInt32(SqlitePreferences.Select("videoDevice"));
if(checkbutton_video.Active) {
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index 581b89f..98d3ef4 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -2915,13 +2915,13 @@ public partial class ChronoJumpWindow
}
void on_button_encoder_capture_curves_all_clicked (object o, EventArgs args) {
- encoderCaptureSaveCurvesAllNoneBest(CurvesSaveOp.ALL);
+ encoderCaptureSaveCurvesAllNoneBest(Constants.EncoderAutoSaveCurve.ALL);
}
void on_button_encoder_capture_curves_best_clicked (object o, EventArgs args) {
- encoderCaptureSaveCurvesAllNoneBest(CurvesSaveOp.BEST);
+ encoderCaptureSaveCurvesAllNoneBest(Constants.EncoderAutoSaveCurve.BESTMEANPOWER);
}
void on_button_encoder_capture_curves_none_clicked (object o, EventArgs args) {
- encoderCaptureSaveCurvesAllNoneBest(CurvesSaveOp.NONE);
+ encoderCaptureSaveCurvesAllNoneBest(Constants.EncoderAutoSaveCurve.NONE);
}
void on_combo_encoder_analyze_data_compare_changed (object o, EventArgs args)
@@ -4565,9 +4565,21 @@ public partial class ChronoJumpWindow
false); //not capturing
//autosave signal (but not in load)
- if(action == encoderActions.CURVES)
+ if(action == encoderActions.CURVES)
+ {
+ bool needToAutoSaveCurve = false;
+ if(
+ encoderSignalUniqueID == "-1" && //if we just
captured
+ (encoderAutoSaveCurve ==
Constants.EncoderAutoSaveCurve.ALL ||
+ encoderAutoSaveCurve ==
Constants.EncoderAutoSaveCurve.BESTMEANPOWER) )
+ needToAutoSaveCurve = true;
+
encoder_pulsebar_capture.Text = encoderSaveSignalOrCurve("signal",
0); //this updates encoderSignalUniqueID
- else
+
+ if(needToAutoSaveCurve)
+ encoderCaptureSaveCurvesAllNoneBest(encoderAutoSaveCurve);
+
+ } else
encoder_pulsebar_capture.Text = "";
diff --git a/src/gui/encoderTreeviews.cs b/src/gui/encoderTreeviews.cs
index aca91c1..360abad 100644
--- a/src/gui/encoderTreeviews.cs
+++ b/src/gui/encoderTreeviews.cs
@@ -258,13 +258,11 @@ public partial class ChronoJumpWindow
}
}
- enum CurvesSaveOp { ALL, NONE, BEST }
-
//allNone: true (save all), false (unsave all)
- void encoderCaptureSaveCurvesAllNoneBest(CurvesSaveOp saveOption)
+ void encoderCaptureSaveCurvesAllNoneBest(Constants.EncoderAutoSaveCurve saveOption)
{
int bestRow = 0;
- if(saveOption == CurvesSaveOp.BEST) {
+ if(saveOption == Constants.EncoderAutoSaveCurve.BESTMEANPOWER) {
//get the concentric curves
EncoderSignal encoderSignal = new
EncoderSignal(treeviewEncoderCaptureCurvesGetCurves(AllEccCon.CON));
bestRow = encoderSignal.FindPosOfBestMeanPower();
@@ -294,10 +292,10 @@ public partial class ChronoJumpWindow
EncoderCurve curve = (EncoderCurve) encoderCaptureListStore.GetValue (iter, 0);
if(
- (! curve.Record && saveOption == CurvesSaveOp.ALL) ||
- (! curve.Record && saveOption == CurvesSaveOp.BEST && i == bestRow) ||
- (curve.Record && saveOption == CurvesSaveOp.BEST && i != bestRow) ||
- (curve.Record && saveOption == CurvesSaveOp.NONE) )
+ (! curve.Record && saveOption == Constants.EncoderAutoSaveCurve.ALL)
||
+ (! curve.Record && saveOption ==
Constants.EncoderAutoSaveCurve.BESTMEANPOWER && i == bestRow) ||
+ (curve.Record && saveOption ==
Constants.EncoderAutoSaveCurve.BESTMEANPOWER && i != bestRow) ||
+ (curve.Record && saveOption == Constants.EncoderAutoSaveCurve.NONE) )
{
changeTo = ! curve.Record;
@@ -344,7 +342,7 @@ public partial class ChronoJumpWindow
//combo_encoder_capture_show_save_curve_button();
string message = "";
- if(saveOption == CurvesSaveOp.NONE)
+ if(saveOption == Constants.EncoderAutoSaveCurve.NONE)
message = Catalog.GetString("Removed");
else
message = Catalog.GetString("Saved");
diff --git a/src/gui/preferences.cs b/src/gui/preferences.cs
index fa294ff..ce9205c 100644
--- a/src/gui/preferences.cs
+++ b/src/gui/preferences.cs
@@ -89,6 +89,10 @@ public class PreferencesWindow {
[Widget] Gtk.RadioButton radio_use_heights_on_jump_indexes;
[Widget] Gtk.RadioButton radio_do_not_use_heights_on_jump_indexes;
+
+ [Widget] Gtk.RadioButton radio_encoder_auto_save_curve_bestmeanpower;
+ [Widget] Gtk.RadioButton radio_encoder_auto_save_curve_all;
+ [Widget] Gtk.RadioButton radio_encoder_auto_save_curve_none;
// [Widget] Gtk.Box hbox_language_row;
@@ -131,7 +135,9 @@ public class PreferencesWindow {
bool askDeletion, bool weightStatsPercent, bool heightPreferred, bool
metersSecondsPreferred,
string language, bool encoderPropulsive, double encoderSmoothCon,
string [] videoDevices, int videoDeviceNum, string encoder1RMMethod,
- string CSVExportDecimalSeparator, bool RGraphsTranslate, bool useHeightsOnJumpIndexes)
+ string CSVExportDecimalSeparator, bool RGraphsTranslate, bool useHeightsOnJumpIndexes,
+ Constants.EncoderAutoSaveCurve encoderAutoSaveCurve
+ )
{
if (PreferencesWindowBox == null) {
PreferencesWindowBox = new PreferencesWindow ();
@@ -258,6 +264,13 @@ public class PreferencesWindow {
PreferencesWindowBox.radio_use_heights_on_jump_indexes.Active = true;
else
PreferencesWindowBox.radio_do_not_use_heights_on_jump_indexes.Active = true;
+
+ if(encoderAutoSaveCurve == Constants.EncoderAutoSaveCurve.BESTMEANPOWER)
+ PreferencesWindowBox.radio_encoder_auto_save_curve_bestmeanpower.Active = true;
+ else if(encoderAutoSaveCurve == Constants.EncoderAutoSaveCurve.ALL)
+ PreferencesWindowBox.radio_encoder_auto_save_curve_all.Active = true;
+ else
+ PreferencesWindowBox.radio_encoder_auto_save_curve_none.Active = true;
PreferencesWindowBox.preferences.Show ();
@@ -606,6 +619,13 @@ public class PreferencesWindow {
SqlitePreferences.Update("useHeightsOnJumpIndexes",
PreferencesWindowBox.radio_use_heights_on_jump_indexes.Active.ToString(),
true);
+
+ if(PreferencesWindowBox.radio_encoder_auto_save_curve_bestmeanpower.Active)
+ SqlitePreferences.Update("encoderAutoSaveCurve",
Constants.EncoderAutoSaveCurve.BESTMEANPOWER.ToString(), true);
+ else if(PreferencesWindowBox.radio_encoder_auto_save_curve_all.Active)
+ SqlitePreferences.Update("encoderAutoSaveCurve",
Constants.EncoderAutoSaveCurve.ALL.ToString(), true);
+ else
+ SqlitePreferences.Update("encoderAutoSaveCurve",
Constants.EncoderAutoSaveCurve.NONE.ToString(), true);
string encoder1RMMethod = "";
if(PreferencesWindowBox.radio_encoder_1RM_nonweighted.Active)
diff --git a/src/sqlite/main.cs b/src/sqlite/main.cs
index 65eada7..f80f04a 100644
--- a/src/sqlite/main.cs
+++ b/src/sqlite/main.cs
@@ -74,7 +74,7 @@ class Sqlite
* Important, change this if there's any update to database
* Important2: if database version get numbers higher than 1, check if the comparisons with
currentVersion works ok
*/
- static string lastChronojumpDatabaseVersion = "1.10";
+ static string lastChronojumpDatabaseVersion = "1.11";
public Sqlite() {
}
@@ -164,7 +164,7 @@ class Sqlite
try{
Log.WriteLine(string.Format("Trying database in ... " + connectionString));
-// dbcon = new SqliteConnection();
+ //dbcon = new SqliteConnection();
*/
/*
dbcon.ConnectionString = connectionString;
@@ -174,7 +174,7 @@ class Sqlite
try {
Log.WriteLine(string.Format("Trying database in ... " +
connectionStringTemp));
-// dbcon = new SqliteConnection();
+ //dbcon = new SqliteConnection();
dbcon.ConnectionString = connectionStringTemp;
dbcmd = dbcon.CreateCommand();
} catch {
@@ -241,20 +241,20 @@ class Sqlite
Log.WriteLine("creating file...");
Log.WriteLine(connectionString);
- // if(!Directory.Exists(home)) {
- // Directory.CreateDirectory (home);
- // }
+ // if(!Directory.Exists(home)) {
+ // Directory.CreateDirectory (home);
+ // }
-// try {
- dbcon.Open();
- /*
- } catch {
- dbcon.Close();
- dbcon.ConnectionString = connectionStringTemp;
- dbcmd = dbcon.CreateCommand();
- dbcon.Open();
- }
- */
+ //try {
+ dbcon.Open();
+ /*
+ } catch {
+ dbcon.Close();
+ dbcon.ConnectionString = connectionStringTemp;
+ dbcmd = dbcon.CreateCommand();
+ dbcon.Open();
+ }
+ */
dbcon.Close();
}
@@ -1627,6 +1627,17 @@ class Sqlite
currentVersion = "1.10";
}
+ if(currentVersion == "1.10") {
+ dbcon.Open();
+
+ Log.WriteLine("Added option on autosave curves on capture
(all/bestmeanpower/none)");
+
+ SqlitePreferences.Insert ("encoderAutoSaveCurve",
Constants.EncoderAutoSaveCurve.BESTMEANPOWER.ToString());
+ SqlitePreferences.Update ("databaseVersion", "1.11", true);
+ dbcon.Close();
+
+ currentVersion = "1.11";
+ }
diff --git a/src/sqlite/preferences.cs b/src/sqlite/preferences.cs
index 44f4d8b..d23e0fa 100644
--- a/src/sqlite/preferences.cs
+++ b/src/sqlite/preferences.cs
@@ -80,6 +80,7 @@ class SqlitePreferences : Sqlite
Insert ("CSVExportDecimalSeparator", Util.GetDecimalSeparatorFromLocale());
Insert ("RGraphsTranslate", "True");
Insert ("useHeightsOnJumpIndexes", "True");
+ Insert ("encoderAutoSaveCurve", Constants.EncoderAutoSaveCurve.BESTMEANPOWER.ToString());
}
public static void Insert(string myName, string myValue)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]