[chronojump] Encoder barplot secondaryVariable on repetitiveConditions and SQL
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Encoder barplot secondaryVariable on repetitiveConditions and SQL
- Date: Wed, 24 Jul 2019 13:58:52 +0000 (UTC)
commit 40aa2b545d76404e04477334f2b5187318a781c6
Author: Xavier de Blas <xaviblas gmail com>
Date: Wed Jul 24 15:58:02 2019 +0200
Encoder barplot secondaryVariable on repetitiveConditions and SQL
glade/repetitive_conditions.glade | 609 ++++++++++++++++++++------------------
src/constants.cs | 8 +-
src/gui/chronojump.cs | 18 +-
src/gui/encoder.cs | 30 +-
src/gui/repetitiveConditions.cs | 40 ++-
5 files changed, 396 insertions(+), 309 deletions(-)
---
diff --git a/glade/repetitive_conditions.glade b/glade/repetitive_conditions.glade
index aa4aef5f..b5f6056f 100644
--- a/glade/repetitive_conditions.glade
+++ b/glade/repetitive_conditions.glade
@@ -1673,95 +1673,67 @@
</packing>
</child>
<child>
- <widget class="GtkFrame" id="frame_encoder_automatic_conditions">
+ <widget class="GtkAlignment" id="alignment18">
<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>
+ <property name="left_padding">20</property>
<child>
- <widget class="GtkAlignment" id="alignment18">
+ <widget class="GtkFrame" id="frame_encoder_automatic_conditions">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="top_padding">10</property>
- <property name="bottom_padding">10</property>
- <property name="left_padding">10</property>
- <property name="right_padding">10</property>
+ <property name="label_xalign">0</property>
+ <property name="label_yalign">0.69999998807907104</property>
+ <property name="shadow_type">out</property>
<child>
- <widget class="GtkVBox" id="vbox2">
+ <widget class="GtkAlignment" id="alignment19">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">20</property>
- <child>
- <widget class="GtkHBox" id="hbox37">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">12</property>
- <child>
- <widget class="GtkRadioButton" id="radio_encoder_relative_to_set">
- <property name="label" translatable="yes">this set</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>
- <signal name="toggled"
handler="on_radio_encoder_relative_to_toggled" swapped="no"/>
- </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_relative_to_historical">
- <property name="label" translatable="yes">historical of this
person</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_relative_to_set</property>
- <signal name="toggled"
handler="on_radio_encoder_relative_to_toggled" swapped="no"/>
- </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="top_padding">10</property>
+ <property name="bottom_padding">10</property>
+ <property name="left_padding">10</property>
+ <property name="right_padding">10</property>
<child>
- <widget class="GtkHBox" id="hbox32">
+ <widget class="GtkVBox" id="vbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">20</property>
<child>
- <widget class="GtkVBox" id="vbox6">
+ <widget class="GtkHBox" id="hbox37">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="spacing">12</property>
<child>
- <widget class="GtkAlignment" id="alignment23">
+ <widget class="GtkRadioButton" id="radio_encoder_relative_to_set">
+ <property name="label" translatable="yes">this set</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <widget class="GtkLabel" id="label_main_variable_text">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </widget>
- </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_relative_to_toggled" swapped="no"/>
</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="GtkRadioButton"
id="radio_encoder_relative_to_historical">
+ <property name="label" translatable="yes">historical of this
person</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_relative_to_set</property>
+ <signal name="toggled"
handler="on_radio_encoder_relative_to_toggled" swapped="no"/>
+ </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>
@@ -1770,60 +1742,100 @@
</packing>
</child>
<child>
- <widget class="GtkTable" id="table9">
+ <widget class="GtkHBox" id="hbox32">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">2</property>
- <property name="column_spacing">10</property>
- <property name="row_spacing">6</property>
+ <property name="spacing">20</property>
<child>
- <widget class="GtkHBox" id="hbox35">
+ <widget class="GtkVBox" id="vbox6">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">10</property>
<child>
- <widget class="GtkLabel" id="label9">
+ <widget class="GtkAlignment" id="alignment23">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label"><=</property>
+ <child>
+ <widget class="GtkLabel" id="label_main_variable_text">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </widget>
+ </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>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkTable" id="table9">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="n_rows">2</property>
+ <property name="column_spacing">10</property>
+ <property name="row_spacing">6</property>
<child>
- <widget class="GtkHBox" id="hbox45">
+ <widget class="GtkHBox" id="hbox35">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">2</property>
+ <property name="spacing">10</property>
<child>
- <widget class="GtkSpinButton"
id="spinbutton_encoder_automatic_lower">
+ <widget class="GtkLabel" id="label9">
<property name="visible">True</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">70 10 100 1 1 0</property>
- <property name="climb_rate">10</property>
- <property name="snap_to_ticks">True</property>
- <property name="numeric">True</property>
- <signal name="value_changed"
handler="on_spinbutton_encoder_automatic_lower_value_changed" swapped="no"/>
+ <property name="can_focus">False</property>
+ <property name="label"><=</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="label12">
+ <widget class="GtkHBox" id="hbox45">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label">%</property>
+ <property name="spacing">2</property>
+ <child>
+ <widget class="GtkSpinButton"
id="spinbutton_encoder_automatic_lower">
+ <property name="visible">True</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">70 10 100 1 1
0</property>
+ <property name="climb_rate">10</property>
+ <property name="snap_to_ticks">True</property>
+ <property name="numeric">True</property>
+ <signal name="value_changed"
handler="on_spinbutton_encoder_automatic_lower_value_changed" swapped="no"/>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label12">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label">%</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>
@@ -1831,156 +1843,156 @@
<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>
- <child>
- <widget class="GtkHBox" id="hbox47">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
<child>
- <widget class="GtkButton"
id="button_encoder_automatic_lower_minus_1">
- <property name="label"> -1 </property>
- <property name="width_request">40</property>
- <property name="height_request">40</property>
+ <widget class="GtkHBox" id="hbox47">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <signal name="clicked"
handler="on_button_encoder_automatic_lower_minus_1_clicked" swapped="no"/>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkButton"
id="button_encoder_automatic_lower_minus_1">
+ <property name="label"> -1 </property>
+ <property name="width_request">40</property>
+ <property name="height_request">40</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <signal name="clicked"
handler="on_button_encoder_automatic_lower_minus_1_clicked" swapped="no"/>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton"
id="button_encoder_automatic_lower_plus_1">
+ <property name="label"> +1 </property>
+ <property name="width_request">40</property>
+ <property name="height_request">40</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <signal name="clicked"
handler="on_button_encoder_automatic_lower_plus_1_clicked" swapped="no"/>
+ </widget>
+ <packing>
+ <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>
+ <property name="position">2</property>
</packing>
</child>
<child>
- <widget class="GtkButton"
id="button_encoder_automatic_lower_plus_1">
- <property name="label"> +1 </property>
- <property name="width_request">40</property>
- <property name="height_request">40</property>
+ <widget class="GtkCheckButton"
id="checkbutton_encoder_automatic_lower">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="receives_default">False</property>
<property name="has_tooltip">True</property>
- <signal name="clicked"
handler="on_button_encoder_automatic_lower_plus_1_clicked" swapped="no"/>
- </widget>
- <packing>
- <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">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkCheckButton"
id="checkbutton_encoder_automatic_lower">
- <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">Bell
bad</property>
- <property name="draw_indicator">True</property>
- <child>
- <widget class="GtkAlignment" id="alignment20">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
+ <property name="tooltip" translatable="yes">Bell
bad</property>
+ <property name="draw_indicator">True</property>
<child>
- <widget class="GtkHBox" id="hbox36">
+ <widget class="GtkAlignment" id="alignment20">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">2</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
<child>
- <widget class="GtkImage"
id="image_repetitive_encoder_automatic_lower">
+ <widget class="GtkHBox" id="hbox36">
<property name="visible">True</property>
<property name="can_focus">False</property>
- </widget>
- <packing>
+ <property name="spacing">2</property>
+ <child>
+ <widget class="GtkImage"
id="image_repetitive_encoder_automatic_lower">
+ <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">0</property>
- </packing>
+ </packing>
+ </child>
+ </widget>
</child>
</widget>
</child>
</widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">20</property>
+ <property name="position">3</property>
+ </packing>
</child>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">20</property>
- <property name="position">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options"/>
</packing>
</child>
- </widget>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options"/>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox" id="hbox33">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">10</property>
<child>
- <widget class="GtkLabel" id="label8">
+ <widget class="GtkHBox" id="hbox33">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label">>=</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox" id="hbox44">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">2</property>
+ <property name="spacing">10</property>
<child>
- <widget class="GtkSpinButton"
id="spinbutton_encoder_automatic_greater">
+ <widget class="GtkLabel" id="label8">
<property name="visible">True</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">90 10 100 1 1 0</property>
- <property name="climb_rate">10</property>
- <property name="snap_to_ticks">True</property>
- <property name="numeric">True</property>
- <signal name="value_changed"
handler="on_spinbutton_encoder_automatic_greater_value_changed" swapped="no"/>
+ <property name="can_focus">False</property>
+ <property name="label">>=</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="label7">
+ <widget class="GtkHBox" id="hbox44">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label">%</property>
+ <property name="spacing">2</property>
+ <child>
+ <widget class="GtkSpinButton"
id="spinbutton_encoder_automatic_greater">
+ <property name="visible">True</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">90 10 100 1 1
0</property>
+ <property name="climb_rate">10</property>
+ <property name="snap_to_ticks">True</property>
+ <property name="numeric">True</property>
+ <signal name="value_changed"
handler="on_spinbutton_encoder_automatic_greater_value_changed" swapped="no"/>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label">%</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>
@@ -1988,141 +2000,174 @@
<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>
- <child>
- <widget class="GtkHBox" id="hbox46">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
<child>
- <widget class="GtkButton"
id="button_encoder_automatic_greater_minus_1">
- <property name="label"> -1 </property>
- <property name="width_request">40</property>
- <property name="height_request">40</property>
+ <widget class="GtkHBox" id="hbox46">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <signal name="clicked"
handler="on_button_encoder_automatic_greater_minus_1_clicked" swapped="no"/>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkButton"
id="button_encoder_automatic_greater_minus_1">
+ <property name="label"> -1 </property>
+ <property name="width_request">40</property>
+ <property name="height_request">40</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <signal name="clicked"
handler="on_button_encoder_automatic_greater_minus_1_clicked" swapped="no"/>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton"
id="button_encoder_automatic_greater_plus_1">
+ <property name="label"> +1 </property>
+ <property name="width_request">40</property>
+ <property name="height_request">40</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <signal name="clicked"
handler="on_button_encoder_automatic_greater_plus_1_clicked" swapped="no"/>
+ </widget>
+ <packing>
+ <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>
+ <property name="position">2</property>
</packing>
</child>
<child>
- <widget class="GtkButton"
id="button_encoder_automatic_greater_plus_1">
- <property name="label"> +1 </property>
- <property name="width_request">40</property>
- <property name="height_request">40</property>
+ <widget class="GtkCheckButton"
id="checkbutton_encoder_automatic_greater">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="receives_default">False</property>
<property name="has_tooltip">True</property>
- <signal name="clicked"
handler="on_button_encoder_automatic_greater_plus_1_clicked" swapped="no"/>
- </widget>
- <packing>
- <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">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkCheckButton"
id="checkbutton_encoder_automatic_greater">
- <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">Bell
bad</property>
- <property name="draw_indicator">True</property>
- <child>
- <widget class="GtkAlignment" id="alignment19">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
+ <property name="tooltip" translatable="yes">Bell
bad</property>
+ <property name="draw_indicator">True</property>
<child>
- <widget class="GtkHBox" id="hbox34">
+ <widget class="GtkAlignment" id="alignment28">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">2</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
<child>
- <widget class="GtkImage"
id="image_repetitive_encoder_automatic_greater">
+ <widget class="GtkHBox" id="hbox34">
<property name="visible">True</property>
<property name="can_focus">False</property>
- </widget>
- <packing>
+ <property name="spacing">2</property>
+ <child>
+ <widget class="GtkImage"
id="image_repetitive_encoder_automatic_greater">
+ <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">0</property>
- </packing>
+ </packing>
+ </child>
+ </widget>
</child>
</widget>
</child>
</widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">20</property>
+ <property name="position">3</property>
+ </packing>
</child>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">20</property>
- <property name="position">3</property>
+ <property name="x_options"/>
</packing>
</child>
</widget>
<packing>
- <property name="x_options"/>
+ <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="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">1</property>
- </packing>
</child>
</widget>
</child>
+ <child>
+ <widget class="GtkLabel" id="label6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xpad">12</property>
+ <property name="label" translatable="yes">Feedback relative to the maximum
repetition of ...</property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
</widget>
</child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox48">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">30</property>
<child>
- <widget class="GtkLabel" id="label6">
+ <widget class="GtkLabel" id="label41">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xpad">12</property>
- <property name="label" translatable="yes">Feedback relative to the maximum
repetition of ...</property>
- <property name="use_markup">True</property>
+ <property name="label" translatable="yes">Secondary variable</property>
</widget>
<packing>
- <property name="type">label_item</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox_combo_encoder_secondary_variable">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <placeholder/>
+ </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="expand">True</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
@@ -3585,7 +3630,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">2</property>
+ <property name="position">3</property>
</packing>
</child>
</widget>
diff --git a/src/constants.cs b/src/constants.cs
index 018e6903..437992de 100644
--- a/src/constants.cs
+++ b/src/constants.cs
@@ -900,13 +900,15 @@ public class Constants
public const string MeanPower = "Mean power";
public const string PeakPower = "Peak power";
public static string [] EncoderVariablesCaptureList = {
- MeanSpeed, MaxSpeed, MeanForce, MaxForce, MeanPower, PeakPower
+ RangeAbsolute, MeanSpeed, MaxSpeed, MeanForce, MaxForce, MeanPower, PeakPower
};
public enum EncoderVariablesCapture {
- MeanSpeed, MaxSpeed, MeanForce, MaxForce, MeanPower, PeakPower
+ RangeAbsolute, MeanSpeed, MaxSpeed, MeanForce, MaxForce, MeanPower, PeakPower
}
public static string GetEncoderVariablesCapture(EncoderVariablesCapture enumVariable) {
switch(enumVariable) {
+ case EncoderVariablesCapture.RangeAbsolute:
+ return RangeAbsolute;
case EncoderVariablesCapture.MeanSpeed:
return MeanSpeed;
case EncoderVariablesCapture.MaxSpeed:
@@ -924,6 +926,8 @@ public class Constants
}
public static EncoderVariablesCapture SetEncoderVariablesCapture(string v) {
switch(v) {
+ case RangeAbsolute:
+ return EncoderVariablesCapture.RangeAbsolute;
case MeanSpeed:
return EncoderVariablesCapture.MeanSpeed;
case MaxSpeed:
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index c5a72926..54d263aa 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -6938,12 +6938,12 @@ LogB.Debug("mc finished 5");
private void on_button_rj_bells_clicked(object o, EventArgs args) {
repetitiveConditionsWin.View(Constants.BellModes.JUMPS, preferences.volumeOn,
preferences.gstreamer,
- preferences.encoderCaptureMainVariable, encoderRhythm);
+ preferences.encoderCaptureMainVariable,
preferences.encoderCaptureSecondaryVariable, encoderRhythm);
}
private void on_button_time_bells_clicked(object o, EventArgs args) {
repetitiveConditionsWin.View(Constants.BellModes.RUNS, preferences.volumeOn,
preferences.gstreamer,
- preferences.encoderCaptureMainVariable, encoderRhythm);
+ preferences.encoderCaptureSecondaryVariable,
preferences.encoderCaptureSecondaryVariable, encoderRhythm);
}
private void on_repetitive_conditions_closed(object o, EventArgs args)
@@ -6982,6 +6982,7 @@ LogB.Debug("mc finished 5");
image_encoder_bell.Pixbuf = pixbuf;
+ //mainVariable
Constants.EncoderVariablesCapture mainVariable = Constants.SetEncoderVariablesCapture(
repetitiveConditionsWin.GetMainVariable);
if( preferences.encoderCaptureMainVariable != mainVariable ) {
@@ -6990,6 +6991,15 @@ LogB.Debug("mc finished 5");
}
string mainVariableStr = Constants.GetEncoderVariablesCapture(mainVariable);
+ //secondaryVariable
+ Constants.EncoderVariablesCapture secondaryVariable =
Constants.SetEncoderVariablesCapture(
+ repetitiveConditionsWin.GetSecondaryVariable);
+ if( preferences.encoderCaptureSecondaryVariable != secondaryVariable ) {
+ SqlitePreferences.Update("encoderCaptureSecondaryVariable",
secondaryVariable.ToString(), false);
+ preferences.encoderCaptureSecondaryVariable = secondaryVariable;
+ }
+ string secondaryVariableStr = Constants.GetEncoderVariablesCapture(secondaryVariable);
+
//treeview_encoder should be updated (to colorize some cells)
//only if there was data
//this avoids misbehaviour when bell is pressed and there's no data in treeview
@@ -7002,10 +7012,10 @@ LogB.Debug("mc finished 5");
//also update the bars plot (to show colors depending on bells changes)
if(captureCurvesBarsData.Count > 0) {
-// string mainVariable =
Constants.GetEncoderVariablesCapture(preferences.encoderCaptureMainVariable);
double mainVariableHigher =
repetitiveConditionsWin.GetMainVariableHigher(mainVariableStr);
double mainVariableLower =
repetitiveConditionsWin.GetMainVariableLower(mainVariableStr);
- plotCurvesGraphDoPlot(mainVariableStr, mainVariableHigher,
mainVariableLower, captureCurvesBarsData,
+ plotCurvesGraphDoPlot(mainVariableStr, mainVariableHigher,
mainVariableLower,
+ secondaryVariableStr, captureCurvesBarsData,
preferences.encoderCaptureInertialDiscardFirstN,
false); //not capturing
} else
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index 2694488a..cad31a3a 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -634,11 +634,13 @@ public partial class ChronoJumpWindow
if(current_menuitem_mode == Constants.Menuitem_modes.POWERGRAVITATORY)
repetitiveConditionsWin.View(Constants.BellModes.ENCODERGRAVITATORY,
preferences.volumeOn, preferences.gstreamer,
- preferences.encoderCaptureMainVariable, encoderRhythm);
+ preferences.encoderCaptureMainVariable,
preferences.encoderCaptureSecondaryVariable,
+ encoderRhythm);
else
repetitiveConditionsWin.View(Constants.BellModes.ENCODERINERTIAL,
preferences.volumeOn, preferences.gstreamer,
- preferences.encoderCaptureMainVariable, encoderRhythm);
+ preferences.encoderCaptureMainVariable,
preferences.encoderCaptureSecondaryVariable,
+ encoderRhythm);
}
/*
@@ -5132,8 +5134,8 @@ public partial class ChronoJumpWindow
static ArrayList captureCurvesBarsData;
//if we are capturing, play sounds
- void plotCurvesGraphDoPlot(string mainVariable, double mainVariableHigher, double mainVariableLower,
- ArrayList data6Variables, int discardFirstN, bool capturing)
+ void plotCurvesGraphDoPlot(string mainVariable, double mainVariableHigher, double mainVariableLower,
+ string secondaryVariable, ArrayList data6Variables, int discardFirstN, bool capturing)
{
UtilGtk.ErasePaint(encoder_capture_curves_bars_drawingarea,
encoder_capture_curves_bars_pixmap);
@@ -5155,14 +5157,14 @@ public partial class ChronoJumpWindow
if(showNRepetitions == -1 || ! capturing)
{
data.Add(ebd.GetValue(mainVariable));
- dataSecondary.Add(ebd.GetValue(Constants.RangeAbsolute));
+ dataSecondary.Add(ebd.GetValue(secondaryVariable));
}
else {
if(eccon == "c" && ( data6Variables.Count <= showNRepetitions ||
//total repetitions are less than show repetitions threshold ||
count >= data6Variables.Count - showNRepetitions ) )
//count is from the last group of reps (reps that have to be shown)
{
data.Add(ebd.GetValue(mainVariable));
- dataSecondary.Add(ebd.GetValue(Constants.RangeAbsolute));
+ dataSecondary.Add(ebd.GetValue(secondaryVariable));
}
else if(eccon != "c" && (
data6Variables.Count <= 2 * showNRepetitions ||
@@ -5172,13 +5174,13 @@ public partial class ChronoJumpWindow
{
LogB.Information("added ecc");
data.Add(ebd.GetValue(mainVariable));
- dataSecondary.Add(ebd.GetValue(Constants.RangeAbsolute));
+ dataSecondary.Add(ebd.GetValue(secondaryVariable));
lastIsEcc = true;
} else { //it is "par"
if(lastIsEcc)
{
data.Add(ebd.GetValue(mainVariable));
-
dataSecondary.Add(ebd.GetValue(Constants.RangeAbsolute));
+ dataSecondary.Add(ebd.GetValue(secondaryVariable));
LogB.Information("added con");
lastIsEcc = false;
}
@@ -5638,9 +5640,11 @@ public partial class ChronoJumpWindow
private void callPlotCurvesGraphDoPlot() {
if(captureCurvesBarsData.Count > 0) {
string mainVariable =
Constants.GetEncoderVariablesCapture(preferences.encoderCaptureMainVariable);
+ string secondaryVariable =
Constants.GetEncoderVariablesCapture(preferences.encoderCaptureSecondaryVariable);
double mainVariableHigher =
repetitiveConditionsWin.GetMainVariableHigher(mainVariable);
double mainVariableLower = repetitiveConditionsWin.GetMainVariableLower(mainVariable);
- plotCurvesGraphDoPlot(mainVariable, mainVariableHigher, mainVariableLower,
captureCurvesBarsData,
+ plotCurvesGraphDoPlot(mainVariable, mainVariableHigher, mainVariableLower,
+ secondaryVariable, captureCurvesBarsData,
preferences.encoderCaptureInertialDiscardFirstN,
false); //not capturing
} else if( ! ( radio_encoder_capture_cont.Active && ! firstSetOfCont) )
@@ -6511,11 +6515,13 @@ public partial class ChronoJumpWindow
string mainVariable =
Constants.GetEncoderVariablesCapture(preferences.encoderCaptureMainVariable);
double mainVariableHigher =
repetitiveConditionsWin.GetMainVariableHigher(mainVariable);
double mainVariableLower =
repetitiveConditionsWin.GetMainVariableLower(mainVariable);
+ string secondaryVariable =
Constants.GetEncoderVariablesCapture(preferences.encoderCaptureSecondaryVariable);
//TODO:
//captureCurvesBarsData.Add(new EncoderBarsData(meanSpeed, maxSpeed,
meanPower, peakPower));
//captureCurvesBarsData.Add(new EncoderBarsData(20, 39, 10, 40));
- plotCurvesGraphDoPlot(mainVariable, mainVariableHigher, mainVariableLower,
captureCurvesBarsData,
+ plotCurvesGraphDoPlot(mainVariable, mainVariableHigher, mainVariableLower,
+ secondaryVariable, captureCurvesBarsData,
preferences.encoderCaptureInertialDiscardFirstN,
true); //capturing
//}
@@ -6993,6 +6999,7 @@ public partial class ChronoJumpWindow
string mainVariable =
Constants.GetEncoderVariablesCapture(preferences.encoderCaptureMainVariable);
double mainVariableHigher =
repetitiveConditionsWin.GetMainVariableHigher(mainVariable);
double mainVariableLower =
repetitiveConditionsWin.GetMainVariableLower(mainVariable);
+ string secondaryVariable =
Constants.GetEncoderVariablesCapture(preferences.encoderCaptureSecondaryVariable);
if(action == encoderActions.CURVES_AC && radio_encoder_capture_cont.Active &&
! captureContWithCurves)
{
@@ -7026,7 +7033,8 @@ public partial class ChronoJumpWindow
maxPowerIntersession = findMaxPowerIntersession();
- plotCurvesGraphDoPlot(mainVariable, mainVariableHigher, mainVariableLower,
captureCurvesBarsData,
+ plotCurvesGraphDoPlot(mainVariable, mainVariableHigher, mainVariableLower,
+ secondaryVariable, captureCurvesBarsData,
preferences.encoderCaptureInertialDiscardFirstN,
false); //not capturing
diff --git a/src/gui/repetitiveConditions.cs b/src/gui/repetitiveConditions.cs
index 273a37d0..6cc37c95 100644
--- a/src/gui/repetitiveConditions.cs
+++ b/src/gui/repetitiveConditions.cs
@@ -82,6 +82,8 @@ public class RepetitiveConditionsWindow
[Widget] Gtk.CheckButton checkbutton_encoder_automatic_lower;
[Widget] Gtk.SpinButton spinbutton_encoder_automatic_greater;
[Widget] Gtk.SpinButton spinbutton_encoder_automatic_lower;
+ [Widget] Gtk.HBox hbox_combo_encoder_secondary_variable;
+ [Widget] Gtk.ComboBox combo_encoder_secondary_variable;
[Widget] Gtk.VBox vbox_encoder_manual;
[Widget] Gtk.CheckButton checkbutton_encoder_show_manual_feedback;
@@ -212,7 +214,7 @@ public class RepetitiveConditionsWindow
FakeButtonClose = new Gtk.Button();
//createComboEncoderAutomaticVariable();
- createComboEncoderMainVariable();
+ createComboEncoderMainAndSecondaryVariables();
bestSetValueCaptureMainVariable = 0;
bestSetValueCaptureMainVariable = 0;
@@ -236,20 +238,24 @@ public class RepetitiveConditionsWindow
}
public void View (Constants.BellModes bellMode, bool volumeOn, Preferences.GstreamerTypes gstreamer,
- Constants.EncoderVariablesCapture encoderMainVariable, EncoderRhythm encoderRhythm)
+ Constants.EncoderVariablesCapture encoderMainVariable,
Constants.EncoderVariablesCapture encoderSecondaryVariable,
+ EncoderRhythm encoderRhythm)
{
//when user "deleted_event" the window
if (RepetitiveConditionsWindowBox == null) {
RepetitiveConditionsWindowBox = new RepetitiveConditionsWindow ();
}
- RepetitiveConditionsWindowBox.showWidgets(bellMode, encoderMainVariable, encoderRhythm);
+ RepetitiveConditionsWindowBox.showWidgets(bellMode, encoderMainVariable,
encoderSecondaryVariable, encoderRhythm);
RepetitiveConditionsWindowBox.repetitive_conditions.Show ();
RepetitiveConditionsWindowBox.volumeOn = volumeOn;
RepetitiveConditionsWindowBox.gstreamer = gstreamer;
}
- void showWidgets(Constants.BellModes bellMode, Constants.EncoderVariablesCapture encoderMainVariable,
EncoderRhythm encoderRhythm)
+ void showWidgets(Constants.BellModes bellMode,
+ Constants.EncoderVariablesCapture encoderMainVariable,
+ Constants.EncoderVariablesCapture encoderSecondaryVariable,
+ EncoderRhythm encoderRhythm)
{
frame_best_and_worst.Hide();
frame_conditions.Hide();
@@ -286,6 +292,8 @@ public class RepetitiveConditionsWindow
combo_encoder_main_variable.Active =
UtilGtk.ComboMakeActive(combo_encoder_main_variable,
Constants.GetEncoderVariablesCapture(encoderMainVariable));
+ combo_encoder_secondary_variable.Active =
UtilGtk.ComboMakeActive(combo_encoder_secondary_variable,
+ Constants.GetEncoderVariablesCapture(encoderSecondaryVariable));
notebook_main.GetNthPage(RHYTHMPAGE).Show();
encoder_rhythm_set_values(encoderRhythm);
@@ -294,23 +302,32 @@ public class RepetitiveConditionsWindow
label_test_sound_result.Text = "";
}
- private void createComboEncoderMainVariable()
+ private void createComboEncoderMainAndSecondaryVariables()
{
+ //1 mainVariable
combo_encoder_main_variable = ComboBox.NewText ();
-
- comboEncoderMainVariableFill();
+ comboEncoderVariableFill(combo_encoder_main_variable);
hbox_combo_encoder_main_variable.PackStart(combo_encoder_main_variable, false, false, 0);
hbox_combo_encoder_main_variable.ShowAll();
combo_encoder_main_variable.Sensitive = true;
combo_encoder_main_variable.Changed += new EventHandler
(on_combo_encoder_main_variable_changed);
+
+ //1 secondaryVariable
+ combo_encoder_secondary_variable = ComboBox.NewText ();
+ comboEncoderVariableFill(combo_encoder_secondary_variable);
+
+ hbox_combo_encoder_secondary_variable.PackStart(combo_encoder_secondary_variable, false,
false, 0);
+ hbox_combo_encoder_secondary_variable.ShowAll();
+ combo_encoder_secondary_variable.Sensitive = true;
+ //combo_encoder_secondary_variable.Changed += new EventHandler
(on_combo_encoder_secondary_variable_changed);
}
- private void comboEncoderMainVariableFill()
+ private void comboEncoderVariableFill(Gtk.ComboBox combo)
{
- string [] values = { Constants.MeanSpeed, Constants.MaxSpeed, Constants.MeanForce,
Constants.MaxForce, Constants.MeanPower, Constants.PeakPower };
+ string [] values = { Constants.RangeAbsolute, Constants.MeanSpeed, Constants.MaxSpeed,
Constants.MeanForce, Constants.MaxForce, Constants.MeanPower, Constants.PeakPower };
- UtilGtk.ComboUpdate(combo_encoder_main_variable, values, "");
+ UtilGtk.ComboUpdate(combo, values, "");
}
private void on_combo_encoder_main_variable_changed (object o, EventArgs args)
@@ -884,6 +901,9 @@ public class RepetitiveConditionsWindow
public string GetMainVariable {
get { return UtilGtk.ComboGetActive(combo_encoder_main_variable); }
}
+ public string GetSecondaryVariable {
+ get { return UtilGtk.ComboGetActive(combo_encoder_secondary_variable); }
+ }
public double GetMainVariableHigher(string mainVariable)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]