[chronojump] New feature: Jumps simple capture graph can show all persons
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] New feature: Jumps simple capture graph can show all persons
- Date: Sat, 13 Jun 2020 15:47:51 +0000 (UTC)
commit 6b9c44c6f25af7e11da4ff1e085b0b76a08e4ed9
Author: Xavier de Blas <xaviblas gmail com>
Date: Sat Jun 13 17:46:54 2020 +0200
New feature: Jumps simple capture graph can show all persons
glade/app1.glade | 1470 +++++++++++++++++++++++---------------------
src/event.cs | 4 +-
src/execute/event.cs | 2 +
src/execute/jump.cs | 9 +-
src/gui/app1/chronojump.cs | 32 +-
src/gui/app1/jump.cs | 4 +-
src/gui/eventExecute.cs | 278 +++++++--
src/gui/usefulObjects.cs | 26 +-
src/jump.cs | 2 +-
src/jumpsEvolution.cs | 2 +-
src/sqlite/jump.cs | 59 +-
11 files changed, 1122 insertions(+), 766 deletions(-)
---
diff --git a/glade/app1.glade b/glade/app1.glade
index eff22359..7a091654 100644
--- a/glade/app1.glade
+++ b/glade/app1.glade
@@ -1068,7 +1068,7 @@
<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 199 1 10
0</property>
+ <property name="adjustment">5 0 199 1 10
0</property>
<property name="numeric">True</property>
</widget>
<packing>
@@ -7773,63 +7773,17 @@ EncoderInertialCapture</property>
<widget class="GtkHBox" id="hbox22">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <child>
- <widget class="GtkLabel"
id="event_graph_label_graph_test">
- <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>
- </child>
- <child>
- <widget class="GtkAlignment" id="alignment17">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="right_padding">25</property>
- <child>
- <widget class="GtkHBox" id="hbox61">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <widget class="GtkHBox" id="hbox_results_legend">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="spacing">12</property>
<child>
- <widget class="GtkHBox" id="hbox122">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">8</property>
- <child>
- <widget class="GtkLabel" id="label160">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"
translatable="yes">Group</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="hbox200">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">8</property>
- <child>
- <widget class="GtkHBox" id="hbox197">
+ <widget class="GtkHBox"
id="hbox_contacts_graph_last_limit">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">4</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkImage"
id="image_line_session_avg">
+ <widget class="GtkLabel" id="label542">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property
name="stock">gtk-missing-image</property>
+ <property name="label"
translatable="yes">Last</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -7838,10 +7792,17 @@ EncoderInertialCapture</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label162">
+ <widget class="GtkSpinButton"
id="spin_contacts_graph_last_limit">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"
translatable="yes">Average</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">10 5 30 1 10
0</property>
+ <property name="numeric">True</property>
+ <signal name="value_changed"
handler="on_spin_contacts_graph_last_limit_value_changed" swapped="no"/>
</widget>
<packing>
<property name="expand">False</property>
@@ -7851,33 +7812,15 @@ EncoderInertialCapture</property>
</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="hbox184">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">4</property>
- <child>
- <widget class="GtkImage"
id="image_line_session_max">
- <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="label161">
+ <widget class="GtkLabel"
id="event_graph_label_graph_test">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label"
translatable="yes">Best</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -7885,13 +7828,37 @@ EncoderInertialCapture</property>
<property name="position">1</property>
</packing>
</child>
+ <child>
+ <widget class="GtkHBox"
id="hbox_contacts_graph_person">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkRadioButton"
id="radio_contacts_graph_currentPerson">
+ <property name="label">Current person</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_contacts_graph_person_toggled" swapped="no"/>
</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="GtkRadioButton"
id="radio_contacts_graph_allPersons">
+ <property name="label" translatable="yes">All
persons</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_contacts_graph_currentPerson</property>
+ <signal name="toggled"
handler="on_radio_contacts_graph_person_toggled" swapped="no"/>
</widget>
<packing>
<property name="expand">True</property>
@@ -7901,71 +7868,70 @@ EncoderInertialCapture</property>
</child>
</widget>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
- <widget class="GtkVSeparator" id="vseparator1">
+ <widget class="GtkButton"
id="button_inspect_last_test_run_intervallic">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip"
translatable="yes">Inspect</property>
+ <signal name="clicked"
handler="on_button_inspect_last_test_clicked" swapped="no"/>
+ <child>
+ <widget class="GtkImage"
id="image_test_inspect1">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property
name="stock">gtk-missing-image</property>
+ </widget>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">3</property>
</packing>
</child>
- <child>
- <widget class="GtkHBox" id="hbox201">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
- <child>
- <widget class="GtkLabel" id="label165">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"
translatable="yes">Person</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="GtkHBox" id="hbox202">
+ <widget class="GtkVBox" id="vbox85">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">6</property>
+ <property name="spacing">4</property>
<child>
- <widget class="GtkHBox" id="hbox204">
+ <widget class="GtkHBox" id="hbox103">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">4</property>
<child>
- <widget class="GtkImage"
id="image_line_person_avg">
+ <widget class="GtkFrame" id="frame5">
<property name="visible">True</property>
+ <property name="sensitive">False</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>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
<child>
- <widget class="GtkLabel" id="label167">
+ <widget class="GtkDrawingArea"
id="event_execute_drawingarea">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can_focus">False</property>
- <property name="label"
translatable="yes">Average</property>
+ <signal name="configure_event"
handler="on_event_execute_drawingarea_configure_event" swapped="no"/>
+ <signal name="expose_event"
handler="on_event_execute_drawingarea_expose_event" swapped="no"/>
</widget>
+ </child>
+ <child>
+ <placeholder/>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
+ <property name="type">label_item</property>
</packing>
</child>
</widget>
@@ -7976,63 +7942,88 @@ EncoderInertialCapture</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox203">
- <property name="visible">True</property>
+ <widget class="GtkVBox" id="vbox17">
<property name="can_focus">False</property>
- <property name="spacing">4</property>
+ <property name="spacing">3</property>
<child>
- <widget class="GtkImage"
id="image_line_person_max">
+ <widget class="GtkVBox" id="vbox20">
+ <property name="can_focus">False</property>
+ <property name="spacing">2</property>
+ <child>
+ <widget class="GtkLabel" id="label68">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property
name="stock">gtk-missing-image</property>
+ <property name="label">W</property>
</widget>
<packing>
<property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label166">
+ <widget class="GtkHBox"
id="hbox_combo_graph_results_width">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label"
translatable="yes">Best</property>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
+ <child>
+ <widget class="GtkLabel" id="label69">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label">H</property>
</widget>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox106">
+ <widget class="GtkHBox"
id="hbox_combo_graph_results_height">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">4</property>
<child>
- <widget class="GtkImage"
id="image_line_person_max_all_sessions">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property
name="stock">gtk-missing-image</property>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</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="label163">
+ <widget class="GtkButton"
id="event_execute_button_properties">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip"
translatable="yes">Properties</property>
+ <signal name="clicked"
handler="on_event_execute_button_properties_clicked" swapped="no"/>
+ <child>
+ <widget class="GtkImage" id="image1664">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes">Best
(all sessions)</property>
+ <property name="stock">gtk-properties</property>
+ <property name="icon-size">1</property>
+ </widget>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
@@ -8041,87 +8032,93 @@ EncoderInertialCapture</property>
</packing>
</child>
<child>
- <widget class="GtkButton"
id="button_person_max_all_sessions_info">
- <property name="visible">True</property>
+ <widget class="GtkButton"
id="event_execute_button_update">
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <signal name="clicked"
handler="on_button_person_max_all_sessions_info_clicked" swapped="no"/>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip"
translatable="yes">Update</property>
+ <signal name="clicked"
handler="on_event_execute_button_update_clicked" swapped="no"/>
<child>
- <widget class="GtkImage"
id="image_info_sessions_info">
+ <widget class="GtkImage" id="image1665">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-info</property>
+ <property name="stock">gtk-refresh</property>
<property name="icon-size">1</property>
</widget>
</child>
</widget>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</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">2</property>
+ <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">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">0</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkButton"
id="button_inspect_last_test_run_intervallic">
+ <widget class="GtkNotebook"
id="notebook_results_data">
+ <property name="can_focus">False</property>
+ <property name="show_tabs">False</property>
+ <property name="show_border">False</property>
+ <child>
+ <widget class="GtkHBox" id="hbox30">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">Inspect</property>
- <signal name="clicked"
handler="on_button_inspect_last_test_clicked" swapped="no"/>
+ <property name="can_focus">False</property>
<child>
- <widget class="GtkImage"
id="image_test_inspect1">
+ <widget class="GtkTable"
id="event_execute_table_jump_reactive">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property
name="stock">gtk-missing-image</property>
- </widget>
- </child>
+ <property name="n_rows">5</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">4</property>
+ <property name="row_spacing">4</property>
+ <child>
+ <widget class="GtkLabel" id="label290">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">end</property>
- <property name="position">1</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"/>
</packing>
</child>
- </widget>
- </child>
+ <child>
+ <widget class="GtkLabel" id="label291">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">end</property>
- <property name="position">1</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"/>
</packing>
</child>
+ <child>
+ <widget class="GtkHBox" id="hbox226">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">5</property>
+ <child>
+ <widget class="GtkLabel" id="label448">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label"
translatable="yes">TC</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -8130,222 +8127,282 @@ EncoderInertialCapture</property>
</packing>
</child>
<child>
- <widget class="GtkVBox" id="vbox85">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">4</property>
- <child>
- <widget class="GtkHBox" id="hbox103">
+ <widget class="GtkHBox" id="hbox227">
+ <property name="width_request">16</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <widget class="GtkFrame" id="frame5">
+ <widget class="GtkImage"
id="event_execute_image_jump_reactive_tc_good">
+ <property name="width_request">16</property>
+ <property name="height_request">16</property>
<property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">out</property>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
<child>
- <widget class="GtkDrawingArea"
id="event_execute_drawingarea">
+ <widget class="GtkImage"
id="event_execute_image_jump_reactive_tc_bad">
+ <property name="width_request">16</property>
+ <property name="height_request">16</property>
<property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="can_focus">False</property>
- <signal name="configure_event"
handler="on_event_execute_drawingarea_configure_event" swapped="no"/>
- <signal name="expose_event"
handler="on_event_execute_drawingarea_expose_event" swapped="no"/>
</widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
+ </packing>
</child>
- <child>
- <placeholder/>
+ </widget>
<packing>
- <property name="type">label_item</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</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="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
- <widget class="GtkVBox" id="vbox17">
+ <widget class="GtkHBox" id="hbox224">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">3</property>
- <child>
- <widget class="GtkVBox" id="vbox20">
- <property name="can_focus">False</property>
- <property name="spacing">2</property>
+ <property name="spacing">5</property>
<child>
- <widget class="GtkLabel" id="label68">
+ <widget class="GtkLabel" id="label447">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label">W</property>
+ <property name="xalign">0</property>
+ <property name="label"
translatable="yes">TF</property>
</widget>
<packing>
<property name="expand">False</property>
- <property name="fill">True</property>
+ <property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkHBox"
id="hbox_combo_graph_results_width">
+ <widget class="GtkHBox" id="hbox225">
+ <property name="width_request">16</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <placeholder/>
- </child>
+ <widget class="GtkImage"
id="event_execute_image_jump_reactive_tf_good">
+ <property name="width_request">16</property>
+ <property name="height_request">16</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
</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">0</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label69">
+ <widget class="GtkImage"
id="event_execute_image_jump_reactive_tf_bad">
+ <property name="width_request">16</property>
+ <property name="height_request">16</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label">H</property>
</widget>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">2</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
</packing>
</child>
- <child>
- <widget class="GtkHBox"
id="hbox_combo_graph_results_height">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
</widget>
<packing>
<property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</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="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>
</packing>
</child>
<child>
- <widget class="GtkButton"
id="event_execute_button_properties">
+ <widget class="GtkHBox" id="hbox222">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">Properties</property>
- <signal name="clicked"
handler="on_event_execute_button_properties_clicked" swapped="no"/>
+ <property name="can_focus">False</property>
+ <property name="spacing">5</property>
<child>
- <widget class="GtkImage" id="image1664">
+ <widget class="GtkLabel" id="label446">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-properties</property>
- <property name="icon-size">1</property>
- </widget>
- </child>
+ <property name="xalign">0</property>
+ <property name="label"
translatable="yes">Height</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">1</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkButton"
id="event_execute_button_update">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">Update</property>
- <signal name="clicked"
handler="on_event_execute_button_update_clicked" swapped="no"/>
+ <widget class="GtkHBox" id="hbox223">
+ <property name="width_request">16</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
<child>
- <widget class="GtkImage" id="image1665">
+ <widget class="GtkImage"
id="event_execute_image_jump_reactive_height_good">
+ <property name="width_request">16</property>
+ <property name="height_request">16</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-refresh</property>
- <property name="icon-size">1</property>
</widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
</child>
+ <child>
+ <widget class="GtkImage"
id="event_execute_image_jump_reactive_height_bad">
+ <property name="width_request">16</property>
+ <property name="height_request">16</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
</widget>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">2</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
</packing>
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="pack_type">end</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="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="GtkNotebook"
id="notebook_results_data">
+ <widget class="GtkEventBox"
id="event_execute_eventbox_jump_reactive_tf_tc">
+ <property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="show_tabs">False</property>
- <property name="show_border">False</property>
<child>
- <widget class="GtkHBox" id="hbox30">
+ <widget class="GtkLabel" id="label444">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">
</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"/>
+ </packing>
+ </child>
<child>
- <widget class="GtkTable"
id="event_execute_table_jump_reactive">
+ <widget class="GtkEventBox"
id="event_execute_eventbox_jump_reactive_tc">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">5</property>
- <property name="n_columns">2</property>
- <property name="column_spacing">4</property>
- <property name="row_spacing">4</property>
<child>
- <widget class="GtkLabel" id="label290">
+ <widget class="GtkLabel" id="label288">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
+ <property name="label" translatable="yes">
</property>
+ </widget>
+ </child>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"/>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label291">
+ <widget class="GtkEventBox"
id="event_execute_eventbox_jump_reactive_tf">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <widget class="GtkLabel" id="label292">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
+ <property name="label" translatable="yes">
</property>
+ </widget>
+ </child>
</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"/>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox226">
+ <widget class="GtkEventBox"
id="event_execute_eventbox_jump_reactive_height">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <widget class="GtkLabel" id="label118">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">
</property>
+ </widget>
+ </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"/>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox137">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">5</property>
<child>
- <widget class="GtkLabel" id="label448">
+ <widget class="GtkLabel" id="label117">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
- <property name="label"
translatable="yes">TC</property>
+ <property name="label" translatable="yes">TF /
TC</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -8354,12 +8411,12 @@ EncoderInertialCapture</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox227">
+ <widget class="GtkHBox" id="hbox138">
<property name="width_request">16</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <widget class="GtkImage"
id="event_execute_image_jump_reactive_tc_good">
+ <widget class="GtkImage"
id="event_execute_image_jump_reactive_tf_tc_good">
<property name="width_request">16</property>
<property name="height_request">16</property>
<property name="visible">True</property>
@@ -8372,7 +8429,7 @@ EncoderInertialCapture</property>
</packing>
</child>
<child>
- <widget class="GtkImage"
id="event_execute_image_jump_reactive_tc_bad">
+ <widget class="GtkImage"
id="event_execute_image_jump_reactive_tf_tc_bad">
<property name="width_request">16</property>
<property name="height_request">16</property>
<property name="visible">True</property>
@@ -8397,154 +8454,214 @@ EncoderInertialCapture</property>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options">GTK_FILL</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="hbox224">
+ <widget class="GtkTable"
id="event_execute_table_jump_reactive_values">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">5</property>
+ <property name="n_rows">5</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">4</property>
+ <property name="row_spacing">4</property>
+ <property name="homogeneous">True</property>
<child>
- <widget class="GtkLabel" id="label447">
+ <widget class="GtkLabel" id="label267">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
- <property name="label"
translatable="yes">TF</property>
+ <property name="label" translatable="yes">Last
jump</property>
+ <property name="justify">center</property>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
+ <property name="x_options">GTK_EXPAND</property>
+ <property name="y_options"/>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox225">
- <property name="width_request">16</property>
+ <widget class="GtkLabel" id="label268">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label"
translatable="yes">AVG</property>
+ <property name="justify">center</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="x_options">GTK_EXPAND</property>
+ <property name="y_options"/>
+ </packing>
+ </child>
<child>
- <widget class="GtkImage"
id="event_execute_image_jump_reactive_tf_good">
- <property name="width_request">16</property>
- <property name="height_request">16</property>
+ <widget class="GtkLabel"
id="event_execute_label_jump_reactive_tf_now">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="justify">center</property>
</widget>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options"/>
+ <property name="y_options"/>
</packing>
</child>
<child>
- <widget class="GtkImage"
id="event_execute_image_jump_reactive_tf_bad">
- <property name="width_request">16</property>
- <property name="height_request">16</property>
+ <widget class="GtkLabel"
id="event_execute_label_jump_reactive_tf_avg">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="justify">center</property>
</widget>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">1</property>
+ <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"/>
+ <property name="y_options"/>
</packing>
</child>
+ <child>
+ <widget class="GtkLabel"
id="event_execute_label_jump_reactive_tc_avg">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="justify">center</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="x_options"/>
+ <property name="y_options"/>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel"
id="event_execute_label_jump_reactive_tc_now">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="justify">center</property>
+ </widget>
+ <packing>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="x_options"/>
+ <property name="y_options"/>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel"
id="event_execute_label_jump_reactive_tf_tc_now">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="justify">center</property>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">end</property>
- <property name="position">1</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
+ <property name="x_options"/>
+ <property name="y_options"/>
</packing>
</child>
+ <child>
+ <widget class="GtkLabel"
id="event_execute_label_jump_reactive_tf_tc_avg">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="justify">center</property>
</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="top_attach">4</property>
+ <property name="bottom_attach">5</property>
+ <property name="x_options"/>
+ <property name="y_options"/>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox222">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">5</property>
- <child>
- <widget class="GtkLabel" id="label446">
+ <widget class="GtkLabel"
id="event_execute_label_jump_reactive_height_now">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
- <property name="label"
translatable="yes">Height</property>
+ <property name="justify">center</property>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options"/>
+ <property name="y_options"/>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox223">
- <property name="width_request">16</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <widget class="GtkImage"
id="event_execute_image_jump_reactive_height_good">
- <property name="width_request">16</property>
- <property name="height_request">16</property>
+ <widget class="GtkLabel"
id="event_execute_label_jump_reactive_height_avg">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="justify">center</property>
</widget>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</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"/>
+ <property name="y_options"/>
</packing>
</child>
- <child>
- <widget class="GtkImage"
id="event_execute_image_jump_reactive_height_bad">
- <property name="width_request">16</property>
- <property name="height_request">16</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
</widget>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
</widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">end</property>
- <property name="position">1</property>
- </packing>
</child>
+ <child>
+ <widget class="GtkLabel" id="label14">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label">jump multiple</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>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
+ <property name="tab_fill">False</property>
+ <property name="type">tab</property>
</packing>
</child>
<child>
- <widget class="GtkEventBox"
id="event_execute_eventbox_jump_reactive_tf_tc">
+ <widget class="GtkHBox" id="hbox31">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <widget class="GtkLabel" id="label444">
+ <widget class="GtkTable"
id="event_execute_table_run_interval">
+ <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">4</property>
+ <property name="row_spacing">4</property>
+ <child>
+ <widget class="GtkEventBox"
id="event_execute_eventbox_run_interval_speed">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <widget class="GtkLabel" id="label300">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
@@ -8553,38 +8670,42 @@ EncoderInertialCapture</property>
</child>
</widget>
<packing>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</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>
<child>
- <widget class="GtkEventBox"
id="event_execute_eventbox_jump_reactive_tc">
+ <widget class="GtkLabel" id="label302">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ </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"/>
+ </packing>
+ </child>
<child>
- <widget class="GtkLabel" id="label288">
+ <widget class="GtkLabel" id="label303">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">
</property>
- </widget>
- </child>
</widget>
<packing>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"/>
</packing>
</child>
<child>
- <widget class="GtkEventBox"
id="event_execute_eventbox_jump_reactive_tf">
+ <widget class="GtkEventBox"
id="event_execute_eventbox_run_interval_time">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <widget class="GtkLabel" id="label292">
+ <widget class="GtkLabel" id="label304">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
@@ -8593,43 +8714,51 @@ EncoderInertialCapture</property>
</child>
</widget>
<packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</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="GtkEventBox"
id="event_execute_eventbox_jump_reactive_height">
+ <widget class="GtkHBox" id="hbox220">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="spacing">5</property>
<child>
- <widget class="GtkLabel" id="label118">
+ <widget class="GtkLabel" id="label440">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">
</property>
+ <property name="label"
translatable="yes">Speed</property>
</widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
</child>
</widget>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <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"/>
+ <property name="y_options">GTK_FILL</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox137">
+ <widget class="GtkHBox" id="hbox219">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">5</property>
<child>
- <widget class="GtkLabel" id="label117">
+ <widget class="GtkLabel" id="label439">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">TF /
TC</property>
+ <property name="label"
translatable="yes">Time</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -8638,14 +8767,12 @@ EncoderInertialCapture</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox138">
- <property name="width_request">16</property>
+ <widget class="GtkHBox" id="hbox221">
+ <property name="width_request">24</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <widget class="GtkImage"
id="event_execute_image_jump_reactive_tf_tc_good">
- <property name="width_request">16</property>
- <property name="height_request">16</property>
+ <widget class="GtkImage"
id="event_execute_image_run_interval_time_good">
<property name="visible">True</property>
<property name="can_focus">False</property>
</widget>
@@ -8656,9 +8783,8 @@ EncoderInertialCapture</property>
</packing>
</child>
<child>
- <widget class="GtkImage"
id="event_execute_image_jump_reactive_tf_tc_bad">
- <property name="width_request">16</property>
- <property name="height_request">16</property>
+ <widget class="GtkImage"
id="event_execute_image_run_interval_time_bad">
+ <property name="width_request">24</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
</widget>
@@ -8681,8 +8807,8 @@ EncoderInertialCapture</property>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</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>
@@ -8695,20 +8821,23 @@ EncoderInertialCapture</property>
</packing>
</child>
<child>
- <widget class="GtkTable"
id="event_execute_table_jump_reactive_values">
+ <widget class="GtkTable"
id="event_execute_table_run_interval_values">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">5</property>
- <property name="n_columns">2</property>
+ <property name="n_rows">3</property>
+ <property name="n_columns">3</property>
<property name="column_spacing">4</property>
<property name="row_spacing">4</property>
<property name="homogeneous">True</property>
<child>
- <widget class="GtkLabel" id="label267">
+ <placeholder/>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label305">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">Last
jump</property>
+ <property name="label" translatable="yes">Last
lap</property>
<property name="justify">center</property>
</widget>
<packing>
@@ -8717,7 +8846,7 @@ EncoderInertialCapture</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label268">
+ <widget class="GtkLabel" id="label306">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
@@ -8732,21 +8861,21 @@ EncoderInertialCapture</property>
</packing>
</child>
<child>
- <widget class="GtkLabel"
id="event_execute_label_jump_reactive_tf_now">
+ <widget class="GtkLabel"
id="event_execute_label_run_interval_time_now">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="justify">center</property>
</widget>
<packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
<property name="x_options"/>
<property name="y_options"/>
</packing>
</child>
<child>
- <widget class="GtkLabel"
id="event_execute_label_jump_reactive_tf_avg">
+ <widget class="GtkLabel"
id="event_execute_label_run_interval_time_avg">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
@@ -8755,14 +8884,14 @@ EncoderInertialCapture</property>
<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="top_attach">1</property>
+ <property name="bottom_attach">2</property>
<property name="x_options"/>
<property name="y_options"/>
</packing>
</child>
<child>
- <widget class="GtkLabel"
id="event_execute_label_jump_reactive_tc_avg">
+ <widget class="GtkLabel"
id="event_execute_label_run_interval_speed_avg">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
@@ -8771,80 +8900,51 @@ EncoderInertialCapture</property>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options"/>
- <property name="y_options"/>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel"
id="event_execute_label_jump_reactive_tc_now">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="justify">center</property>
- </widget>
- <packing>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options"/>
- <property name="y_options"/>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel"
id="event_execute_label_jump_reactive_tf_tc_now">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="justify">center</property>
- </widget>
- <packing>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
<property name="x_options"/>
<property name="y_options"/>
</packing>
</child>
<child>
- <widget class="GtkLabel"
id="event_execute_label_jump_reactive_tf_tc_avg">
+ <widget class="GtkLabel"
id="event_execute_label_run_interval_speed_now">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="justify">center</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
<property name="x_options"/>
<property name="y_options"/>
</packing>
</child>
<child>
- <widget class="GtkLabel"
id="event_execute_label_jump_reactive_height_now">
+ <widget class="GtkLabel" id="label151">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
+ <property name="label"
translatable="yes">Total</property>
<property name="justify">center</property>
</widget>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options"/>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="x_options">GTK_EXPAND</property>
<property name="y_options"/>
</packing>
</child>
<child>
- <widget class="GtkLabel"
id="event_execute_label_jump_reactive_height_avg">
+ <widget class="GtkLabel"
id="event_execute_label_run_interval_time_total">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="justify">center</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options"/>
@@ -8859,52 +8959,52 @@ EncoderInertialCapture</property>
</packing>
</child>
</widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
</child>
<child>
- <widget class="GtkLabel" id="label14">
+ <widget class="GtkLabel" id="label17">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label">jump multiple</property>
+ <property name="label">run interval</property>
</widget>
<packing>
+ <property name="position">1</property>
<property name="tab_fill">False</property>
<property name="type">tab</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox31">
+ <widget class="GtkHBox" id="hbox37">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <widget class="GtkTable"
id="event_execute_table_run_interval">
+ <widget class="GtkTable"
id="event_execute_table_pulse">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">3</property>
+ <property name="n_rows">2</property>
<property name="n_columns">2</property>
<property name="column_spacing">4</property>
<property name="row_spacing">4</property>
<child>
- <widget class="GtkEventBox"
id="event_execute_eventbox_run_interval_speed">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <widget class="GtkLabel" id="label300">
+ <widget class="GtkLabel" id="label309">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">
</property>
- </widget>
- </child>
+ <property name="label"
translatable="yes">Time</property>
</widget>
<packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</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="GtkLabel" id="label302">
+ <widget class="GtkLabel" id="label310">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
@@ -8917,7 +9017,7 @@ EncoderInertialCapture</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label303">
+ <widget class="GtkLabel" id="label311">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
@@ -8928,11 +9028,11 @@ EncoderInertialCapture</property>
</packing>
</child>
<child>
- <widget class="GtkEventBox"
id="event_execute_eventbox_run_interval_time">
+ <widget class="GtkEventBox"
id="event_execute_eventbox_pulse_time">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <widget class="GtkLabel" id="label304">
+ <widget class="GtkLabel" id="label312">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
@@ -8947,465 +9047,445 @@ EncoderInertialCapture</property>
<property name="y_options"/>
</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="hbox220">
+ <widget class="GtkTable"
id="event_execute_table_pulse_values">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">5</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">4</property>
+ <property name="row_spacing">4</property>
+ <property name="homogeneous">True</property>
<child>
- <widget class="GtkLabel" id="label440">
+ <widget class="GtkLabel" id="label313">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
- <property name="label"
translatable="yes">Speed</property>
+ <property name="label" translatable="yes">Last
pulse</property>
+ <property name="justify">center</property>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
+ <property name="x_options">GTK_EXPAND</property>
+ <property name="y_options"/>
</packing>
</child>
+ <child>
+ <widget class="GtkLabel" id="label314">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label"
translatable="yes">AVG</property>
+ <property name="justify">center</property>
</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="x_options">GTK_EXPAND</property>
+ <property name="y_options"/>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox219">
+ <widget class="GtkLabel"
id="event_execute_label_pulse_now">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">5</property>
+ <property name="xalign">0</property>
+ <property name="justify">center</property>
+ </widget>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options"/>
+ <property name="y_options"/>
+ </packing>
+ </child>
<child>
- <widget class="GtkLabel" id="label439">
+ <widget class="GtkLabel"
id="event_execute_label_pulse_avg">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
- <property name="label"
translatable="yes">Time</property>
+ <property name="justify">center</property>
</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"/>
+ <property name="y_options"/>
+ </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="position">2</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox221">
- <property name="width_request">24</property>
+ <widget class="GtkLabel" id="label38">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="label">pulse</property>
+ </widget>
+ <packing>
+ <property name="position">2</property>
+ <property name="tab_fill">False</property>
+ <property name="type">tab</property>
+ </packing>
+ </child>
<child>
- <widget class="GtkImage"
id="event_execute_image_run_interval_time_good">
+ <widget class="GtkLabel" id="label63">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="label"
translatable="yes">Deleted test</property>
</widget>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="position">3</property>
</packing>
</child>
<child>
- <widget class="GtkImage"
id="event_execute_image_run_interval_time_bad">
- <property name="width_request">24</property>
+ <widget class="GtkLabel" id="label62">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="label">deleted test</property>
</widget>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">1</property>
+ <property name="position">3</property>
+ <property name="tab_fill">False</property>
+ <property name="type">tab</property>
</packing>
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="pack_type">end</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>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
</packing>
</child>
+ <child>
+ <widget class="GtkHBox" id="hbox61">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <widget class="GtkHBox" id="hbox_results_legend">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <widget class="GtkHBox" id="hbox122">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">8</property>
+ <child>
+ <widget class="GtkLabel" id="label160">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"
translatable="yes">Group</property>
</widget>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkTable"
id="event_execute_table_run_interval_values">
+ <widget class="GtkHBox" id="hbox200">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">3</property>
- <property name="n_columns">3</property>
- <property name="column_spacing">4</property>
- <property name="row_spacing">4</property>
- <property name="homogeneous">True</property>
+ <property name="spacing">8</property>
<child>
- <placeholder/>
- </child>
+ <widget class="GtkHBox" id="hbox197">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">4</property>
<child>
- <widget class="GtkLabel" id="label305">
+ <widget class="GtkImage"
id="image_line_session_avg">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Last
lap</property>
- <property name="justify">center</property>
+ <property
name="stock">gtk-missing-image</property>
</widget>
<packing>
- <property name="x_options">GTK_EXPAND</property>
- <property name="y_options"/>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label306">
+ <widget class="GtkLabel" id="label162">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label"
translatable="yes">AVG</property>
- <property name="justify">center</property>
+ <property name="label"
translatable="yes">Average</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_options">GTK_EXPAND</property>
- <property name="y_options"/>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
</packing>
</child>
- <child>
- <widget class="GtkLabel"
id="event_execute_label_run_interval_time_now">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="justify">center</property>
</widget>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options"/>
- <property name="y_options"/>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkLabel"
id="event_execute_label_run_interval_time_avg">
+ <widget class="GtkHBox" id="hbox184">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="justify">center</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>
- <property name="x_options"/>
- <property name="y_options"/>
- </packing>
- </child>
+ <property name="spacing">4</property>
<child>
- <widget class="GtkLabel"
id="event_execute_label_run_interval_speed_avg">
+ <widget class="GtkImage"
id="image_line_session_max">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="justify">center</property>
+ <property
name="stock">gtk-missing-image</property>
</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"/>
- <property name="y_options"/>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkLabel"
id="event_execute_label_run_interval_speed_now">
+ <widget class="GtkLabel" id="label161">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="justify">center</property>
+ <property name="label"
translatable="yes">Best</property>
</widget>
<packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options"/>
- <property name="y_options"/>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
</packing>
</child>
- <child>
- <widget class="GtkLabel" id="label151">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label"
translatable="yes">Total</property>
- <property name="justify">center</property>
</widget>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="x_options">GTK_EXPAND</property>
- <property name="y_options"/>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
</packing>
</child>
- <child>
- <widget class="GtkLabel"
id="event_execute_label_run_interval_time_total">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="justify">center</property>
</widget>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options"/>
- <property name="y_options"/>
+ <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>
+ <property name="position">0</property>
</packing>
</child>
+ <child>
+ <widget class="GtkVSeparator" id="vseparator1">
+ <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>
<child>
- <widget class="GtkLabel" id="label17">
+ <widget class="GtkHBox" id="hbox201">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label">run interval</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkLabel" id="label165">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"
translatable="yes">Person</property>
</widget>
<packing>
- <property name="position">1</property>
- <property name="tab_fill">False</property>
- <property name="type">tab</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox37">
+ <widget class="GtkHBox" id="hbox202">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkTable"
id="event_execute_table_pulse">
+ <widget class="GtkHBox" id="hbox204">
<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">4</property>
- <property name="row_spacing">4</property>
+ <property name="spacing">4</property>
<child>
- <widget class="GtkLabel" id="label309">
+ <widget class="GtkImage"
id="image_line_person_avg">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label"
translatable="yes">Time</property>
+ <property
name="stock">gtk-missing-image</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>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label310">
+ <widget class="GtkLabel" id="label167">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
+ <property name="label"
translatable="yes">Average</property>
</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"/>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
</packing>
</child>
- <child>
- <widget class="GtkLabel" id="label311">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
</widget>
<packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkEventBox"
id="event_execute_eventbox_pulse_time">
+ <widget class="GtkHBox" id="hbox203">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="spacing">4</property>
<child>
- <widget class="GtkLabel" id="label312">
+ <widget class="GtkImage"
id="image_line_person_max">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">
</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="label166">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"
translatable="yes">Best</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"/>
+ <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="expand">True</property>
<property name="fill">True</property>
- <property name="position">0</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <widget class="GtkTable"
id="event_execute_table_pulse_values">
+ <widget class="GtkHBox" id="hbox106">
<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">4</property>
- <property name="row_spacing">4</property>
- <property name="homogeneous">True</property>
+ <property name="spacing">4</property>
<child>
- <widget class="GtkLabel" id="label313">
+ <widget class="GtkImage"
id="image_line_person_max_all_sessions">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Last
pulse</property>
- <property name="justify">center</property>
+ <property
name="stock">gtk-missing-image</property>
</widget>
<packing>
- <property name="x_options">GTK_EXPAND</property>
- <property name="y_options"/>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label314">
+ <widget class="GtkLabel" id="label163">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label"
translatable="yes">AVG</property>
- <property name="justify">center</property>
+ <property name="label" translatable="yes">Best
(all sessions)</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_options">GTK_EXPAND</property>
- <property name="y_options"/>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <widget class="GtkLabel"
id="event_execute_label_pulse_now">
+ <widget class="GtkButton"
id="button_person_max_all_sessions_info">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="justify">center</property>
- </widget>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options"/>
- <property name="y_options"/>
- </packing>
- </child>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <signal name="clicked"
handler="on_button_person_max_all_sessions_info_clicked" swapped="no"/>
<child>
- <widget class="GtkLabel"
id="event_execute_label_pulse_avg">
+ <widget class="GtkImage"
id="image_info_sessions_info">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="justify">center</property>
+ <property name="stock">gtk-info</property>
+ <property name="icon-size">1</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>
- <property name="x_options"/>
- <property name="y_options"/>
- </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="position">2</property>
</packing>
</child>
- <child>
- <widget class="GtkLabel" id="label38">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label">pulse</property>
</widget>
<packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
<property name="position">2</property>
- <property name="tab_fill">False</property>
- <property name="type">tab</property>
</packing>
</child>
- <child>
- <widget class="GtkLabel" id="label63">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"
translatable="yes">Deleted test</property>
</widget>
<packing>
- <property name="position">3</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
</packing>
</child>
- <child>
- <widget class="GtkLabel" id="label62">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label">deleted test</property>
</widget>
<packing>
- <property name="position">3</property>
- <property name="tab_fill">False</property>
- <property name="type">tab</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
</packing>
</child>
</widget>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">False</property>
- <property name="position">1</property>
+ <property name="position">0</property>
</packing>
</child>
</widget>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
</packing>
</child>
</widget>
@@ -23973,6 +24053,12 @@ Concentric</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
@@ -34761,6 +34847,12 @@ then click this button.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
diff --git a/src/event.cs b/src/event.cs
index b3e0b1d7..ca0bb5ed 100644
--- a/src/event.cs
+++ b/src/event.cs
@@ -85,10 +85,12 @@ public class Event
get { return simulated; }
set { simulated = value; }
}
-
+
public string PersonName
{
//get { return personName; }
+
+ //this is very inneficient if we are processing a list of events, eg. jumps
get { return SqlitePerson.SelectAttribute(personID, Constants.Name); }
}
diff --git a/src/execute/event.cs b/src/execute/event.cs
index 0aaeb51e..b399c9fc 100644
--- a/src/execute/event.cs
+++ b/src/execute/event.cs
@@ -79,6 +79,8 @@ public class EventExecute
protected bool volumeOn;
protected Preferences.GstreamerTypes gstreamer;
+ protected int graphLimit;
+ protected bool graphAllPersons;
protected double progressbarLimit;
protected RepetitiveConditionsWindow repetitiveConditionsWin;
diff --git a/src/execute/jump.cs b/src/execute/jump.cs
index a260456c..7abea0e7 100644
--- a/src/execute/jump.cs
+++ b/src/execute/jump.cs
@@ -60,7 +60,7 @@ public class JumpExecute : EventExecute
bool volumeOn, Preferences.GstreamerTypes gstreamer,
double progressbarLimit, ExecutingGraphData egd, string description,
bool avoidGraph, //on configChronojump.Exhibition do not show graph because it gets
too slow with big database
- bool jumpsDjGraphHeights
+ bool jumpsDjGraphHeights, int graphLimit, bool graphAllPersons
)
{
this.personID = personID;
@@ -81,6 +81,8 @@ public class JumpExecute : EventExecute
this.description = description;
this.avoidGraph = avoidGraph;
this.jumpsDjGraphHeights = jumpsDjGraphHeights;
+ this.graphLimit = graphLimit;
+ this.graphAllPersons = graphAllPersons;
if(TypeHasFall) {
hasFall = true;
@@ -481,7 +483,10 @@ public class JumpExecute : EventExecute
if(! avoidGraph)
{
PrepareEventGraphJumpSimpleObject = new PrepareEventGraphJumpSimple(
- tv, tc, sessionID, personID, table, type, jumpsDjGraphHeights);
+ tv, tc, sessionID,
+ personID, graphAllPersons, graphLimit,
+ table, type, jumpsDjGraphHeights);
+
needUpdateGraphType = eventType.JUMP;
needUpdateGraph = true;
}
diff --git a/src/gui/app1/chronojump.cs b/src/gui/app1/chronojump.cs
index 5e55de3b..03702856 100644
--- a/src/gui/app1/chronojump.cs
+++ b/src/gui/app1/chronojump.cs
@@ -936,6 +936,9 @@ public partial class ChronoJumpWindow
sensitiveLastTestButtons(false);
notebooks_change(Constants.Menuitem_modes.OTHER);
on_extra_window_pulses_test_changed(obj, args);
+
+ hbox_contacts_graph_last_limit.Visible = false;
+ hbox_contacts_graph_person.Visible = false;
hbox_results_legend.Visible = false;
}
}
@@ -946,6 +949,9 @@ public partial class ChronoJumpWindow
sensitiveLastTestButtons(false);
notebooks_change(Constants.Menuitem_modes.OTHER);
on_extra_window_multichronopic_test_changed(obj, args);
+
+ hbox_contacts_graph_last_limit.Visible = false;
+ hbox_contacts_graph_person.Visible = false;
hbox_results_legend.Visible = false;
}
}
@@ -2901,7 +2907,11 @@ public partial class ChronoJumpWindow
{
notebooks_change(m);
on_extra_window_jumps_test_changed(new object(), new EventArgs());
+
+ hbox_contacts_graph_last_limit.Visible = true;
+ hbox_contacts_graph_person.Visible = true;
hbox_results_legend.Visible = true;
+
frame_jumps_automatic.Visible = true;
pixbufModeCurrent = new Pixbuf (null, Util.GetImagePath(false) +
"image_jump_simple.png");
@@ -2913,7 +2923,11 @@ public partial class ChronoJumpWindow
notebooks_change(m);
button_contacts_bells.Sensitive = true;
on_extra_window_jumps_rj_test_changed(new object(), new EventArgs());
+
+ hbox_contacts_graph_last_limit.Visible = false;
+ hbox_contacts_graph_person.Visible = false;
hbox_results_legend.Visible = false;
+
pixbufModeCurrent = new Pixbuf (null, Util.GetImagePath(false) +
"image_jump_reactive.png");
if(radio_mode_contacts_jumps_profile.Active ||
radio_mode_contacts_jumps_dj_optimal_fall.Active ||
@@ -2933,7 +2947,11 @@ public partial class ChronoJumpWindow
{
notebooks_change(m);
on_extra_window_runs_test_changed(new object(), new EventArgs());
+
+ hbox_contacts_graph_last_limit.Visible = true;
+ hbox_contacts_graph_person.Visible = true;
hbox_results_legend.Visible = true;
+
frame_run_simple_double_contacts.Visible = true;
pixbufModeCurrent = new Pixbuf (null, Util.GetImagePath(false) +
"image_run_simple.png");
}
@@ -2943,7 +2961,11 @@ public partial class ChronoJumpWindow
notebooks_change(m);
button_contacts_bells.Sensitive = true;
on_extra_window_runs_interval_test_changed(new object(), new EventArgs());
+
+ hbox_contacts_graph_last_limit.Visible = false;
+ hbox_contacts_graph_person.Visible = false;
hbox_results_legend.Visible = false;
+
createTreeView_runs_interval_sprint (treeview_runs_interval_sprint);
pixbufModeCurrent = new Pixbuf (null, Util.GetImagePath(false) +
"image_run_multiple.png");
@@ -3077,6 +3099,9 @@ public partial class ChronoJumpWindow
button_threshold.Visible = false;
button_force_sensor_adjust.Visible = true;
//notebook_capture_analyze.GetNthPage(2).Hide(); //hide jumpsProfile on other tests
+
+ hbox_contacts_graph_last_limit.Visible = false;
+ hbox_contacts_graph_person.Visible = false;
hbox_results_legend.Visible = false;
//on force sensor only show table
@@ -3101,6 +3126,9 @@ public partial class ChronoJumpWindow
hbox_contacts_sup_capture_analyze_two_buttons.Visible = true;
button_threshold.Visible = false;
//notebook_capture_analyze.GetNthPage(2).Hide(); //hide jumpsProfile on other tests
+
+ hbox_contacts_graph_last_limit.Visible = false;
+ hbox_contacts_graph_person.Visible = false;
hbox_results_legend.Visible = false;
//on run encoder only show table
@@ -3958,7 +3986,9 @@ public partial class ChronoJumpWindow
//chronopicWin.CP, event_execute_label_message, app1,
preferences.digitsNumber, preferences.volumeOn,
cp2016.CP, app1, preferences.digitsNumber,
preferences.volumeOn, preferences.gstreamer,
- progressbarLimit, egd, description, configChronojump.Exhibition,
preferences.jumpsDjGraphHeights);
+ progressbarLimit, egd, description, configChronojump.Exhibition,
+ preferences.jumpsDjGraphHeights,
+ Convert.ToInt32(spin_contacts_graph_last_limit.Value),
radio_contacts_graph_allPersons.Active);
//UtilGtk.ChronopicColors(viewport_chronopics, label_chronopics, label_connected_chronopics,
chronopicWin.Connected);
diff --git a/src/gui/app1/jump.cs b/src/gui/app1/jump.cs
index 0536dd66..8423c591 100644
--- a/src/gui/app1/jump.cs
+++ b/src/gui/app1/jump.cs
@@ -270,7 +270,9 @@ public partial class ChronoJumpWindow
);
PrepareEventGraphJumpSimple eventGraph = new PrepareEventGraphJumpSimple(
- tv, tc, currentSession.UniqueID, currentPerson.UniqueID, Constants.JumpTable,
currentEventType.Name, preferences.jumpsDjGraphHeights);
+ tv, tc, currentSession.UniqueID,
+ currentPerson.UniqueID, radio_contacts_graph_allPersons.Active,
Convert.ToInt32(spin_contacts_graph_last_limit.Value),
+ Constants.JumpTable, currentEventType.Name, preferences.jumpsDjGraphHeights);
if(eventGraph.personMAXAtSQLAllSessions > 0 || eventGraph.jumpsAtSQL.Count > 0)
PrepareJumpSimpleGraph(eventGraph, false); //don't animate
diff --git a/src/gui/eventExecute.cs b/src/gui/eventExecute.cs
index b1002093..fd773f08 100644
--- a/src/gui/eventExecute.cs
+++ b/src/gui/eventExecute.cs
@@ -44,6 +44,13 @@ public partial class ChronoJumpWindow
[Widget] Gtk.Label event_execute_label_phases_name;
[Widget] Gtk.Label event_execute_label_message;
[Widget] Gtk.Label event_graph_label_graph_test;
+
+
+ [Widget] Gtk.HBox hbox_contacts_graph_last_limit;
+ [Widget] Gtk.SpinButton spin_contacts_graph_last_limit;
+ [Widget] Gtk.HBox hbox_contacts_graph_person;
+ [Widget] Gtk.RadioButton radio_contacts_graph_currentPerson;
+ [Widget] Gtk.RadioButton radio_contacts_graph_allPersons;
[Widget] Gtk.ProgressBar event_execute_progressbar_event;
[Widget] Gtk.ProgressBar event_execute_progressbar_time;
@@ -186,7 +193,7 @@ public partial class ChronoJumpWindow
event_execute_label_simulated = "";
if(simulated)
- event_execute_label_simulated = Catalog.GetString("Simulated");
+ event_execute_label_simulated = "(" + Catalog.GetString("Simulated") + ")";
event_graph_label_graph_test.Text = "<b>" + event_execute_eventType + "</b>";
event_graph_label_graph_test.UseMarkup = true;
@@ -307,13 +314,18 @@ public partial class ChronoJumpWindow
private void showJumpSimpleLabels()
{
+ hbox_contacts_graph_last_limit.Visible = true;
+ hbox_contacts_graph_person.Visible = true;
hbox_results_legend.Visible = true;
+
notebook_results_data.Visible = false;
}
private void showJumpReactiveLabels()
{
+ hbox_contacts_graph_last_limit.Visible = false;
+ hbox_contacts_graph_person.Visible = false;
hbox_results_legend.Visible = false;
//show reactive info
@@ -336,12 +348,17 @@ public partial class ChronoJumpWindow
private void showRunSimpleLabels()
{
+ hbox_contacts_graph_last_limit.Visible = true;
+ hbox_contacts_graph_person.Visible = true;
hbox_results_legend.Visible = true;
+
notebook_results_data.Visible = false;
}
private void showRunIntervalLabels()
{
+ hbox_contacts_graph_last_limit.Visible = false;
+ hbox_contacts_graph_person.Visible = false;
hbox_results_legend.Visible = false;
//show run interval info
@@ -361,12 +378,17 @@ public partial class ChronoJumpWindow
private void showReactionTimeLabels()
{
+ hbox_contacts_graph_last_limit.Visible = true;
+ hbox_contacts_graph_person.Visible = true;
hbox_results_legend.Visible = true;
+
notebook_results_data.Visible = false;
}
private void showPulseLabels()
{
+ hbox_contacts_graph_last_limit.Visible = false;
+ hbox_contacts_graph_person.Visible = false;
hbox_results_legend.Visible = false;
//show pulse info
@@ -467,7 +489,7 @@ public partial class ChronoJumpWindow
public void on_event_execute_drawingarea_expose_event(object o, ExposeEventArgs args)
{
- LogB.Information("EXPOSE START");
+ //LogB.Information("EXPOSE START");
Gdk.Rectangle allocation = event_execute_drawingarea.Allocation;
/* in some mono installations, configure_event is not called, but expose_event yes.
@@ -498,7 +520,7 @@ public partial class ChronoJumpWindow
if(sizeChanged)
{
- LogB.Information("caring for resize screen and correctly update
event_execute_drawingarea");
+ //LogB.Information("caring for resize screen and correctly update
event_execute_drawingarea");
if(current_menuitem_mode == Constants.Menuitem_modes.JUMPSSIMPLE)
on_extra_window_jumps_test_changed(o, new EventArgs ());
else if(current_menuitem_mode == Constants.Menuitem_modes.JUMPSREACTIVE)
@@ -520,7 +542,7 @@ public partial class ChronoJumpWindow
allocationXOld = allocation.Width;
allocationYOld = allocation.Height;
- LogB.Information("EXPOSE END");
+ //LogB.Information("EXPOSE END");
}
@@ -593,7 +615,7 @@ public partial class ChronoJumpWindow
double maxValue = 0;
double minValue = 0;
int topMargin = 20;
- int bottomMargin = 0;
+ int bottomMargin = 0;
//if max value of graph is automatic
if(eventGraphConfigureWin.Max == -1) {
@@ -993,6 +1015,7 @@ public partial class ChronoJumpWindow
}
+ /*
//used on simple tests
private void plotSimulatedMessageIfNeededAtLast(int x, int alto) {
if(event_execute_label_simulated != "") {
@@ -1008,6 +1031,7 @@ public partial class ChronoJumpWindow
layoutBig);
}
}
+ */
//used on jumps reactive, runs interval
private void plotSimulatedMessageIfNeededAtCenter(int ancho, int alto) {
if(event_execute_label_simulated != "") {
@@ -1015,7 +1039,7 @@ public partial class ChronoJumpWindow
int lWidth = 1;
int lHeight = 1;
layoutBig.GetPixelSize(out lWidth, out lHeight);
- event_execute_pixmap.DrawLayout (pen_black,
+ event_execute_pixmap.DrawLayout (pen_gris,
Convert.ToInt32(ancho/2 - lWidth/2),
Convert.ToInt32(alto/2 - lHeight/2),
layoutBig);
@@ -1028,6 +1052,10 @@ public partial class ChronoJumpWindow
int ancho=drawingarea.Allocation.Width;
int alto=drawingarea.Allocation.Height;
+ //person name or test type
+ //note that this could be a problem if there is a jump with Description of several lines and
current person, current test is used
+ bool showTextOnBar = true;
+
if(eventGraph.tc > 0)
addUnitsToLabel("s");
else
@@ -1044,19 +1072,38 @@ public partial class ChronoJumpWindow
if(maxValue - minValue <= 0)
return;
- //paint first the horizontal guides in order to be behind the bars of each jump
- drawGuideOrAVG(pen_black_90, eventGraph.sessionMAXAtSQL, alto, ancho, topMargin,
bottomMargin, maxValue, minValue, guideWidthEnum.FULL);
- drawGuideOrAVG(pen_black_discont, eventGraph.sessionAVGAtSQL, alto, ancho, topMargin,
bottomMargin, maxValue, minValue, guideWidthEnum.FULL);
-
- drawGuideOrAVG(pen_magenta, eventGraph.personMAXAtSQLAllSessions, alto, ancho, topMargin,
bottomMargin, maxValue, minValue, guideWidthEnum.FULL);
-
//if currentPerson has not jumped on this session,
// if has jumped on another session, magenta line: personMAXAtSQLAllSessions will be displayed
// if other persons have been jumped on this session, eventGraph.sessionMAXAtSQL and
eventGraph.sessionAVGAtSQL will be displayed
// don't need the rest of the method
if(eventGraph.jumpsAtSQL.Count == 0)
return;
+
+ int countToDraw = eventGraph.jumpsAtSQL.Count;
+ int countJumps = eventGraph.jumpsAtSQL.Count;
+ int maxRowsForText = 0;
+
+ Pango.Layout layout = layoutMid;
+ if(eventGraph.tc > 0 && eventGraph.tv > 0 && countJumps > 4)
+ {
+ //small layout when tc and tv and there are more than 4 jumps
+ layout = layoutSmall;
+ }
+
+ Pango.Layout layoutText = layout;
+ if (showTextOnBar)
+ {
+ layoutText = calculateLayoutFontForText (eventGraph.jumpsAtSQL, layoutText, ancho);
+ maxRowsForText = calculateMaxRowsForText (eventGraph.jumpsAtSQL); //also adds +1 if
simulated
+ bottomMargin = calculateBottomMarginForText (maxRowsForText, layoutText);
+ }
+
+ //paint first the horizontal guides in order to be behind the bars of each jump
+ drawGuideOrAVG(pen_black_90, eventGraph.sessionMAXAtSQL, alto, ancho, topMargin,
bottomMargin, maxValue, minValue, guideWidthEnum.FULL);
+ drawGuideOrAVG(pen_black_discont, eventGraph.sessionAVGAtSQL, alto, ancho, topMargin,
bottomMargin, maxValue, minValue, guideWidthEnum.FULL);
+ drawGuideOrAVG(pen_magenta, eventGraph.personMAXAtSQLAllSessions, alto, ancho, topMargin,
bottomMargin, maxValue, minValue, guideWidthEnum.FULL);
+
//if person max in all sessions == person max this session, this session max will be only at
left,
//overwriting maxAllSesions that will be only at right
if(eventGraph.personMAXAtSQLAllSessions == eventGraph.personMAXAtSQL)
@@ -1078,24 +1125,21 @@ public partial class ChronoJumpWindow
if(eventGraph.tc > 0)
tctfSep = Convert.ToInt32(.3*distanceBetweenCols);
+
+ //TODO: when we mix tests we need to also manage tctfSep
+
int barWidth = Convert.ToInt32(.3*distanceBetweenCols);
int barDesplLeft = Convert.ToInt32(.5*barWidth);
bool animateBar = animate;
int x = 0;
int y = 0;
- int countToDraw = eventGraph.jumpsAtSQL.Count;
- int countJumps = eventGraph.jumpsAtSQL.Count;
foreach(Jump jump in eventGraph.jumpsAtSQL)
{
//if tc, maybe also tv
- if(eventGraph.tc > 0) {
- //small layout when tc and tv and there are more than 4 jumps
- Pango.Layout layout = layoutMid;
- if(eventGraph.tv > 0 && countJumps > 4)
- layout = layoutSmall;
-
+ if(eventGraph.tc > 0)
+ {
//do not animate last tc, if tv is animated because then tc is not shown
if(eventGraph.tv >0)
animateBar = false;
@@ -1106,9 +1150,9 @@ public partial class ChronoJumpWindow
x =
Convert.ToInt32((ancho-event_execute_rightMargin)*(countToDraw-.5)/countJumps)-barDesplLeft;
y = calculatePaintHeight(valueToPlot, alto, maxValue, minValue, topMargin,
bottomMargin);
-
- drawBar(x, y, barWidth, alto, pen_rojo, countToDraw == countJumps,
- jump.Simulated == -1, valueToPlot, layout, animateBar);
+
+ drawBar(x, y, barWidth, alto, bottomMargin, pen_rojo, countToDraw ==
countJumps,
+ valueToPlot, layout, animateBar);
//tv
if(eventGraph.tv > 0)
@@ -1120,8 +1164,11 @@ public partial class ChronoJumpWindow
x =
Convert.ToInt32((ancho-event_execute_rightMargin)*(countToDraw-.5)/countJumps)-barDesplLeft +tctfSep;
y = calculatePaintHeight(valueToPlot, alto, maxValue, minValue,
topMargin, bottomMargin);
- drawBar(x, y, barWidth, alto, pen_azul_claro, countToDraw ==
countJumps,
- jump.Simulated == -1, valueToPlot, layout,
animateBar);
+ drawBar(x, y, barWidth, alto, bottomMargin, pen_azul_claro,
countToDraw == countJumps,
+ valueToPlot, layout, animateBar);
+
+ //adjust x for plotSimulatedMessage() and plotTextOnBar()
+ x -= Convert.ToInt32(.5 * tctfSep);
}
} else { //has not tc. Show only height
@@ -1129,9 +1176,17 @@ public partial class ChronoJumpWindow
y = calculatePaintHeight(Util.GetHeightInCentimeters(jump.Tv),
alto, maxValue, minValue, topMargin, bottomMargin);
- drawBar(x, y, barWidth, alto, pen_azul_claro, countToDraw == countJumps,
- jump.Simulated == -1, Util.GetHeightInCentimeters(jump.Tv),
layoutMid, animateBar);
+ drawBar(x, y, barWidth, alto, bottomMargin, pen_azul_claro, countToDraw ==
countJumps,
+ Util.GetHeightInCentimeters(jump.Tv), layout, animateBar);
}
+
+ //these two methods are out of drawBar because can be related to two bars TC,TF
+ if(jump.Simulated == -1)
+ plotSimulatedMessage(x + barWidth/2, alto, layout);
+
+ if (showTextOnBar && jump.Description != "")
+ plotTextOnBar(x + barWidth/2, y, alto, jump.Description, layoutText,
maxRowsForText);
+
countToDraw --;
}
@@ -1151,24 +1206,21 @@ public partial class ChronoJumpWindow
MovingBar movingBar;
- //TODO: if last tc and tf have to be painted, tc is not painted
- private void drawBar(int x, int y, int barWidth, int alto, Gdk.GC pen_bar_bg,
- bool isLast, bool simulated, double result, Pango.Layout layout, bool animate)
+ private void drawBar(int x, int y, int barWidth, int alto, int bottomMargin, Gdk.GC pen_bar_bg,
+ bool isLast, double result, Pango.Layout layout, bool animate)
{
if(isLast && animate) {
timerBar = true;
- movingBar = new MovingBar(x, y + alto, barWidth, y, alto, pen_bar_bg, simulated,
result, layout);
+ movingBar = new MovingBar(x, alto - bottomMargin, barWidth, y, alto - bottomMargin,
+ pen_bar_bg, result, layout);
GLib.Timeout.Add(1, new GLib.TimeoutHandler(OnTimerBar));
}
else {
- Rectangle rect = new Rectangle(x, y, barWidth, alto-y-1);
+ Rectangle rect = new Rectangle(x, y, barWidth, alto-bottomMargin-y-1);
event_execute_pixmap.DrawRectangle(pen_bar_bg, true, rect);
event_execute_pixmap.DrawRectangle(pen_black, false, rect);
-
- if(simulated)
- plotSimulatedMessage(x + barWidth/2, alto, layout);
- plotResultOnBar(x + barWidth/2, y, alto, result, layout);
+ plotResultOnBar(x + barWidth/2, y, alto - bottomMargin, result, layout);
}
}
@@ -1180,6 +1232,7 @@ public partial class ChronoJumpWindow
movingBar.Next();
Rectangle rect = new Rectangle(movingBar.X, movingBar.Y, movingBar.Width, movingBar.Step);
+
//paint the 0 line
event_execute_pixmap.DrawLine(pen_black_90,
movingBar.X, movingBar.AltoTop -1,
@@ -1187,13 +1240,14 @@ public partial class ChronoJumpWindow
event_execute_pixmap.DrawRectangle(movingBar.Pen_bar_bg, true, rect);
event_execute_drawingarea.QueueDrawArea(movingBar.X, movingBar.Y, movingBar.Width,
movingBar.Step);
-
- if(movingBar.Y <= movingBar.YTop) {
- rect = new Rectangle(movingBar.X, movingBar.YTop, movingBar.Width, movingBar.AltoTop);
+
+ if(movingBar.Y <= movingBar.YTop)
+ {
+ rect = new Rectangle(movingBar.X, movingBar.YTop, movingBar.Width,
movingBar.AltoTop-movingBar.YTop -1);
event_execute_pixmap.DrawRectangle(pen_black, false, rect);
- if(movingBar.Simulated)
- plotSimulatedMessage(movingBar.X + movingBar.Width/2, movingBar.AltoTop,
movingBar.Layout);
+ //LogB.Information(string.Format("movinBar: Y: {0}, YTop: {1}, AltoTop: {2}",
+ // movingBar.Y, movingBar.YTop, movingBar.AltoTop));
plotResultOnBar(movingBar.X + movingBar.Width/2, movingBar.YTop, movingBar.AltoTop,
movingBar.Result, movingBar.Layout);
@@ -1204,17 +1258,127 @@ public partial class ChronoJumpWindow
}
return true;
- }
- private void plotSimulatedMessage(int x, int alto, Pango.Layout layout) {
+ }
+
+ private void plotSimulatedMessage(int x, int y, Pango.Layout layout)
+ {
layout.SetMarkup(event_execute_label_simulated);
int lWidth = 1;
int lHeight = 1;
layout.GetPixelSize(out lWidth, out lHeight);
- event_execute_pixmap.DrawLayout (pen_black,
+ event_execute_pixmap.DrawLayout (pen_gris,
Convert.ToInt32(x - lWidth/2),
- alto - lHeight,
+ y - lHeight,
layout);
}
+
+ private int calculateMaxRowsForText (List<Jump> jumps)
+ {
+ int maxRows = 0;
+
+ foreach(Jump jump in jumps)
+ {
+ int rows = jump.Description.Split(new char[] {' '}).Length;
+
+ if(jump.Simulated == -1)
+ rows ++;
+ if(rows > maxRows)
+ maxRows = rows;
+ }
+
+ return maxRows;
+ }
+
+ private int calculateBottomMarginForText (int maxRows, Pango.Layout layout)
+ {
+
+ layout.SetMarkup("a");
+ int lWidth = 1;
+ int lHeight = 1;
+ layout.GetPixelSize(out lWidth, out lHeight);
+
+ return lHeight * maxRows;
+ }
+
+ private Pango.Layout calculateLayoutFontForText (List<Jump> jumps, Pango.Layout layout, int ancho)
+ {
+ int maxLength = 0;
+
+ //set marginBetweenTexts to 1.1 character
+ layout.SetMarkup("a");
+ int lWidth = 1;
+ int lHeight = 1;
+ layout.GetPixelSize(out lWidth, out lHeight);
+ int marginBetweenTexts = Convert.ToInt32(1.1 * lWidth);
+
+ foreach(Jump jump in jumps)
+ {
+ string [] textArray = jump.Description.Split(new char[] {' '});
+ foreach(string text in textArray)
+ {
+ if(text.Length > maxLength)
+ maxLength = text.Length;
+ if(jump.Simulated == -1 && event_execute_label_simulated.Length > maxLength)
+ maxLength = event_execute_label_simulated.Length;
+ }
+ }
+
+ string longestString = new string('*', maxLength);
+
+ layout.SetMarkup(longestString);
+ lWidth = 1;
+ lHeight = 1;
+ layout.GetPixelSize(out lWidth, out lHeight);
+
+ int savedFontSize = Convert.ToInt32(layout.FontDescription.Size / Pango.Scale.PangoScale);
+ if(jumps.Count * (lWidth + marginBetweenTexts) > ancho)
+ {
+ int i = 1;
+ do {
+ layout.FontDescription.Size -= Convert.ToInt32(Pango.Scale.PangoScale);
+ if(layout.FontDescription.Size / Pango.Scale.PangoScale < 1)
+ break;
+
+ layout.SetMarkup(longestString);
+ layout.GetPixelSize(out lWidth, out lHeight);
+
+ i ++;
+ } while (jumps.Count * (lWidth + marginBetweenTexts) > ancho);
+ }
+
+ return layout;
+ }
+
+ //person name or test type
+ //this can separate name with spaces on rows
+ private void plotTextOnBar(int x, int y, int alto, string text, Pango.Layout layout, int
maxRowsForText)
+ {
+ // 1) to get the height of the font
+ layout.SetMarkup(text);
+ int lWidth = 1;
+ int lHeight = 1;
+ layout.GetPixelSize(out lWidth, out lHeight);
+
+ // 2 )separate in rows and send it to plotTextOnBarDo()
+ string [] textArray = text.Split(new char[] {' '});
+
+ for(int i = 1; i <= textArray.Length; i ++)
+ plotTextOnBarDo(x,
+ Convert.ToInt32(alto - (maxRowsForText -i +1) * lHeight),
+ textArray[i-1], layout);
+ }
+ private void plotTextOnBarDo(int x, int y, string text, Pango.Layout layout)
+ {
+ //just to get the width of every row
+ layout.SetMarkup(text);
+ int lWidth = 1;
+ int lHeight = 1;
+ layout.GetPixelSize(out lWidth, out lHeight);
+
+ //write text
+ event_execute_pixmap.DrawLayout (pen_black, Convert.ToInt32(x - lWidth/2), y, layout);
+ }
+
private void plotResultOnBar(int x, int y, int alto, double result, Pango.Layout layout)
{
layout.SetMarkup(Util.TrimDecimals(result,2));
@@ -1386,8 +1550,8 @@ public partial class ChronoJumpWindow
y = calculatePaintHeight(Convert.ToDouble(run[5])/Convert.ToDouble(run[6]),
alto, maxValue, minValue,
topMargin, bottomMargin);
- drawBar(x, y, barWidth, alto, pen_azul_claro, count ==
eventGraph.runsAtSQL.Length,
- run[8] == "-1",
Convert.ToDouble(run[5])/Convert.ToDouble(run[6]), layoutMid, animate);
+ drawBar(x, y, barWidth, alto, bottomMargin, pen_azul_claro, count ==
eventGraph.runsAtSQL.Length,
+ Convert.ToDouble(run[5])/Convert.ToDouble(run[6]), layoutMid,
animate);//, "", layoutMid, 0, animate);
}
count --;
@@ -1444,8 +1608,8 @@ public partial class ChronoJumpWindow
y = calculatePaintHeight(Convert.ToDouble(rts[5]), alto, maxValue, minValue,
topMargin, bottomMargin);
- drawBar(x, y, barWidth, alto, pen_azul_claro, count == eventGraph.rtsAtSQL.Length,
- rts[7] == "-1", Convert.ToDouble(rts[5]), layoutMid, animate);
+ drawBar(x, y, barWidth, alto, bottomMargin, pen_azul_claro, count ==
eventGraph.rtsAtSQL.Length,
+ Convert.ToDouble(rts[5]), layoutMid, animate);//, "", layoutMid, 0,
animate);
count --;
}
@@ -2320,6 +2484,22 @@ public partial class ChronoJumpWindow
event_execute_pixmap.DrawLayout (pen_gris, 20, yCp2Out -20, layoutSmall);
}
+ private void on_radio_contacts_graph_person_toggled (object o, EventArgs args)
+ {
+ if(current_menuitem_mode == Constants.Menuitem_modes.JUMPSSIMPLE)
+ updateGraphJumpsSimple ();
+
+ //TODO: run simple, rt
+ }
+ private void on_spin_contacts_graph_last_limit_value_changed (object o, EventArgs args)
+ {
+ if(current_menuitem_mode == Constants.Menuitem_modes.JUMPSSIMPLE)
+ updateGraphJumpsSimple ();
+
+
+ //TODO: run simple, rt
+ }
+
private void on_event_execute_update_graph_in_progress_clicked(object o, EventArgs args)
{
bool animate = true;
diff --git a/src/gui/usefulObjects.cs b/src/gui/usefulObjects.cs
index 3850111b..6e1475ea 100644
--- a/src/gui/usefulObjects.cs
+++ b/src/gui/usefulObjects.cs
@@ -80,10 +80,19 @@ public class PrepareEventGraphJumpSimple
public PrepareEventGraphJumpSimple() {
}
- public PrepareEventGraphJumpSimple(double tv, double tc, int sessionID, int personID, string table,
string type, bool djShowHeights)
+ //allPersons is for searching the jumps of current of allpersons
+ //personID we need to the personsMAX/AVG sql calls
+ public PrepareEventGraphJumpSimple(double tv, double tc, int sessionID,
+ int personID, bool allPersons, int limit,
+ string table, string type, bool djShowHeights)
{
- jumpsAtSQL = SqliteJump.SelectJumps (sessionID, personID, type,
- Sqlite.Orders_by.ID_DESC, 10); //select only last 10
+ int personIDTemp = personID;
+ if(allPersons)
+ personIDTemp = -1;
+
+ jumpsAtSQL = SqliteJump.SelectJumps (sessionID, personIDTemp, type,
+ Sqlite.Orders_by.ID_DESC, limit,
+ allPersons); //show names on comments only if "all persons"
Sqlite.Open();
@@ -389,14 +398,14 @@ public class MovingStartButton
public class MovingBar
{
public int X;
- public int Y;
+ public int Y; //current value on animation
/*
* y will go from (y + alto -speed) to (ytop)
* eg a vertical bar that goes from the bottom to the top, will go from:
* YTop 37, Y 380
* to
* YTop 37, Y 37
- * so y will be decreasing
+ * so it will be decreasing
*/
public int Width;
@@ -405,20 +414,19 @@ public class MovingBar
public int AltoTop; //stored alto value
public Gdk.GC Pen_bar_bg;
- public bool Simulated;
public double Result;
public int Step;
public Pango.Layout Layout;
-
+
public MovingBar(int x, int y, int width, int yTop, int altoTop,
- Gdk.GC pen_bar_bg, bool simulated, double result, Pango.Layout layout) {
+ Gdk.GC pen_bar_bg, double result, Pango.Layout layout)
+ {
this.X = x;
this.Y = y;
this.Width = width;
this.YTop = yTop;
this.AltoTop = altoTop;
this.Pen_bar_bg = pen_bar_bg;
- this.Simulated = simulated;
this.Result = result;
this.Layout = layout;
}
diff --git a/src/jump.cs b/src/jump.cs
index 0ac56646..6305ca6b 100644
--- a/src/jump.cs
+++ b/src/jump.cs
@@ -91,7 +91,7 @@ public class Jump : Event
public override string ToString() {
- return uniqueID + ":" + personID + ":" + sessionID + ":" + type + ":" + tv + ":" + tc + ":" +
datetime; //...
+ return uniqueID + ":" + personID + ":" + sessionID + ":" + type + ":" + tv + ":" + tc + ":" +
datetime + ":" + description;
}
public virtual bool TypeHasWeight {
diff --git a/src/jumpsEvolution.cs b/src/jumpsEvolution.cs
index f00a5005..9723f964 100644
--- a/src/jumpsEvolution.cs
+++ b/src/jumpsEvolution.cs
@@ -36,7 +36,7 @@ public class JumpsEvolution
public void Calculate (int personID, string jumpType)
{
//1 get data
- List<Jump> jump_l = SqliteJump.SelectJumps (-1, personID, jumpType,
Sqlite.Orders_by.DEFAULT, -1);
+ List<Jump> jump_l = SqliteJump.SelectJumps (-1, personID, jumpType,
Sqlite.Orders_by.DEFAULT, -1, false);
//2 convert to list of PointF
point_l = new List<PointF>();
diff --git a/src/sqlite/jump.cs b/src/sqlite/jump.cs
index 785f437b..9cc6242d 100644
--- a/src/sqlite/jump.cs
+++ b/src/sqlite/jump.cs
@@ -193,20 +193,44 @@ class SqliteJump : Sqlite
return myJumps;
}
- //like SelectJumpsSA above method but much better: return list of jumps
- //sID -1 means all sessions
- //limit -1 means no limit
- public static List<Jump> SelectJumps (int sID, int pID, string jumpType, Orders_by order, int limit)
+ /*
+ * like SelectJumpsSA above method but much better: return list of jumps
+ * sID -1 means all sessions
+ * pID -1 means all persons
+ * limit -1 means no limit
+ * personNameInComment is used to be able to display names in graphs
+ * because event.PersonName makes individual SQL SELECTs
+ */
+ public static List<Jump> SelectJumps (int sID, int pID, string jumpType, Orders_by order, int limit,
bool personNameInComment)
{
//jumps previous to DB 1.82 have no datetime on jump
//find session datetime for that jumps
List<Session> session_l = SqliteSession.SelectAll();
- string filterSessionString = "";
+ //for personNameInComment
+ List<Person> person_l =
+ SqlitePersonSession.SelectCurrentSessionPersonsAsList(sID);
+
+ string andString = "";
+ string sessionString = "";
if(sID != -1)
- filterSessionString = " AND sessionID == " + sID.ToString();
+ {
+ sessionString = " sessionID == " + sID.ToString();
+ andString = " AND ";
+ }
- string personID = pID.ToString();
+ string personString = "";
+ if(pID != -1)
+ {
+ personString = andString + " personID == " + pID.ToString();
+ andString = " AND ";
+ }
+
+ string jumpTypeString = andString + " jump.type = \"" + jumpType + "\"";
+
+ string whereString = "";
+ if(sessionString != "" || personString != "" || jumpTypeString != "")
+ whereString = " WHERE ";
string orderByString = " ORDER BY jump.uniqueID ";
if(order == Orders_by.ID_DESC)
@@ -217,11 +241,11 @@ class SqliteJump : Sqlite
limitString = " LIMIT " + limit;
- Sqlite.Open();
+ Sqlite.Open(); // --------------------
// Selecciona les dades de tots els salts
- dbcmd.CommandText = "SELECT * FROM jump WHERE personID = " + personID +
- filterSessionString + " AND jump.type = \"" + jumpType + "\"" +
+ dbcmd.CommandText = "SELECT * FROM jump " +
+ whereString + sessionString + personString + jumpTypeString +
orderByString + limitString;
LogB.SQL(dbcmd.CommandText.ToString());
@@ -230,10 +254,10 @@ class SqliteJump : Sqlite
SqliteDataReader reader;
reader = dbcmd.ExecuteReader();
- List<Jump> jmp_l = DataReaderToJump (reader, session_l);
+ List<Jump> jmp_l = DataReaderToJump (reader, session_l, person_l, personNameInComment);
reader.Close();
- Sqlite.Close();
+ Sqlite.Close(); // --------------------
return jmp_l;
}
@@ -352,6 +376,11 @@ class SqliteJump : Sqlite
}
private static List<Jump> DataReaderToJump (SqliteDataReader reader, List<Session> session_l)
+ {
+ return DataReaderToJump (reader, session_l, new List<Person> (), false);
+ }
+ private static List<Jump> DataReaderToJump (SqliteDataReader reader, List<Session> session_l,
+ List<Person> person_l, bool personNameInComment)
{
List<Jump> jmp_l = new List<Jump>();
Jump jmp;
@@ -385,6 +414,12 @@ class SqliteJump : Sqlite
if(session.UniqueID == jmp.SessionID)
jmp.Datetime = UtilDate.ToFile(session.Date);
+ if(personNameInComment)
+ foreach(Person person in person_l)
+ if(person.UniqueID == jmp.PersonID)
+ jmp.Description = person.Name;
+
+
jmp_l.Add(jmp);
LogB.Information(jmp.ToString());
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]