[chronojump] Encoder separate session in days option for intersession gui
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Encoder separate session in days option for intersession gui
- Date: Tue, 13 Nov 2018 13:25:21 +0000 (UTC)
commit c7dc32852b1f33aa7f9e23c5319228ecf107d580
Author: Xavier de Blas <xaviblas gmail com>
Date: Tue Nov 13 14:24:29 2018 +0100
Encoder separate session in days option for intersession gui
encoder/graph.R | 3 +--
encoder/util.R | 3 ++-
glade/app1.glade | 73 +++++++++++++++++++++++------------------------------
src/encoder.cs | 8 ++++--
src/encoderRProc.cs | 7 +++--
src/gui/encoder.cs | 57 ++++++++++++++++++++++++++++++++++++-----
src/utilEncoder.cs | 4 +--
7 files changed, 99 insertions(+), 56 deletions(-)
---
diff --git a/encoder/graph.R b/encoder/graph.R
index 876b4a20..050ad181 100644
--- a/encoder/graph.R
+++ b/encoder/graph.R
@@ -3790,8 +3790,7 @@ doProcess <- function(options)
mySeriesNames = curves[,9]
#special config separate by days
- separateSessionInDays = TRUE #TODO: pass this from GUI
- if(separateSessionInDays)
+ if(op$SeparateSessionInDays)
{
chunks = unlist(strsplit(curves[,7], " ")) #separate "2018-09-06
12:12:4" in two chunks
chunks = chunks[seq(1, length(chunks), by = 2)]
diff --git a/encoder/util.R b/encoder/util.R
index a44a559b..efcf975c 100644
--- a/encoder/util.R
+++ b/encoder/util.R
@@ -84,7 +84,7 @@ assignOptions <- function(options) {
Debug = options[31],
CrossValidate = options[32],
TriggersCut = options[33], #if TRUE ten cut by triggers, else use TriggersOnList
(if any) only for vertical ablines on instaneous graphs
- TriggersOnList = as.numeric(unlist(strsplit(options[34], "\\;")))
+ TriggersOnList = as.numeric(unlist(strsplit(options[34], "\\;"))),
#Triggers:
# at capture.R
@@ -98,6 +98,7 @@ assignOptions <- function(options) {
#Unassigned here:
# englishWords [29]
# translatedWords [30]
+ SeparateSessionInDays = options[35]
))
}
diff --git a/glade/app1.glade b/glade/app1.glade
index 3a5dfd0e..ab2b6da9 100644
--- a/glade/app1.glade
+++ b/glade/app1.glade
@@ -1784,6 +1784,9 @@
<placeholder/>
</child>
<child>
+ <placeholder/>
+ </child>
+ <child>
<widget class="GtkLabel"
id="label_start_selector_jumps">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -19286,42 +19289,6 @@ Concentric</property>
<placeholder/>
</child>
<child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
<widget class="GtkLabel"
id="label_force_sensor_ai_rfd_a">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -19603,6 +19570,9 @@ Concentric</property>
<placeholder/>
</child>
<child>
+ <placeholder/>
+ </child>
+ <child>
<widget class="GtkCheckButton"
id="checkbutton_force_sensor_ai_b">
<property name="width_request">30</property>
<property name="visible">True</property>
@@ -19682,6 +19652,9 @@ Concentric</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
@@ -24787,6 +24760,21 @@ then click this button.</property>
</packing>
</child>
<child>
+ <widget class="GtkCheckButton"
id="check_encoder_separate_session_in_days">
+ <property name="label" translatable="yes">By
days</property>
+ <property name="can_focus">True</property>
+ <property
name="receives_default">False</property>
+ <property name="tooltip"
translatable="yes">Separate session by days</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled"
handler="on_check_encoder_separate_session_in_days_toggled" swapped="no"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child>
<widget class="GtkHBox"
id="hbox_combo_encoder_analyze_cross_sup">
<property name="can_focus">False</property>
<property name="spacing">6</property>
@@ -24820,7 +24808,7 @@ then click this button.</property>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">5</property>
+ <property name="position">6</property>
</packing>
</child>
<child>
@@ -24833,7 +24821,7 @@ then click this button.</property>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">6</property>
+ <property name="position">7</property>
</packing>
</child>
<child>
@@ -24844,7 +24832,7 @@ then click this button.</property>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">7</property>
+ <property name="position">8</property>
</packing>
</child>
<child>
@@ -25220,7 +25208,7 @@ then click this button.</property>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">8</property>
+ <property name="position">9</property>
</packing>
</child>
<child>
@@ -25233,7 +25221,7 @@ then click this button.</property>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">9</property>
+ <property name="position">10</property>
</packing>
</child>
</widget>
@@ -27916,6 +27904,9 @@ then click this button.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
diff --git a/src/encoder.cs b/src/encoder.cs
index 6c4e535a..0902c1b6 100644
--- a/src/encoder.cs
+++ b/src/encoder.cs
@@ -161,6 +161,7 @@ public class EncoderGraphROptions
public bool crossValidate;
private bool cutByTriggers;
private string triggerList;
+ public bool separateSessionInDays;
public EncoderGraphROptions(
string inputData, string outputGraph, string outputData1,
@@ -168,7 +169,8 @@ public class EncoderGraphROptions
EncoderParams ep,
string title, string operatingSystem,
string englishWords, string translatedWords,
- bool debug, bool crossValidate, bool cutByTriggers, string triggerList)
+ bool debug, bool crossValidate, bool cutByTriggers, string triggerList,
+ bool separateSessionInDays)
{
this.inputData = inputData;
this.outputGraph = outputGraph;
@@ -184,6 +186,7 @@ public class EncoderGraphROptions
this.crossValidate = crossValidate;
this.cutByTriggers = cutByTriggers;
this.triggerList = triggerList;
+ this.separateSessionInDays = separateSessionInDays;
//ensure triggerList is not null or blank
if(triggerList == null || triggerList == "")
@@ -205,7 +208,8 @@ public class EncoderGraphROptions
"#debug\n" + Util.BoolToRBool(debug) + "\n" +
"#crossValidate\n" + Util.BoolToRBool(crossValidate) + "\n" +
"#cutByTriggers\n" + Util.BoolToRBool(cutByTriggers) + "\n" +
- "#triggerList\n" + triggerList + "\n";
+ "#triggerList\n" + triggerList + "\n" +
+ "#separateSessionInDays\n" + Util.BoolToRBool(separateSessionInDays) + "\n";
}
diff --git a/src/encoderRProc.cs b/src/encoderRProc.cs
index fe8a7e8b..3a3d5735 100644
--- a/src/encoderRProc.cs
+++ b/src/encoderRProc.cs
@@ -32,6 +32,7 @@ public abstract class EncoderRProc
public Status status;
public bool Debug = false;
public bool CrossValidate;
+ public bool SeparateSessionInDays;
public int CurvesReaded;
protected string optionsFile;
@@ -257,7 +258,8 @@ public class EncoderRProcCapture : EncoderRProc
Debug,
false, //crossValidate (unactive on capture at the moment)
(CutByTriggers != Preferences.TriggerTypes.NO_TRIGGERS),
- printTriggers()
+ printTriggers(),
+ false //separateSessionInDays (false at capture)
).ToString();
TextWriter writer = File.CreateText(optionsFile);
@@ -514,7 +516,8 @@ public class EncoderRProcAnalyze : EncoderRProc
Debug,
CrossValidate,
cutByTriggers,
- printTriggers()
+ printTriggers(),
+ SeparateSessionInDays
).ToString();
TextWriter writer = File.CreateText(optionsFile);
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index beea8b16..1a31f009 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -261,6 +261,7 @@ public partial class ChronoJumpWindow
[Widget] Gtk.Label label_encoder_analyze_selected;
[Widget] Gtk.HBox hbox_encoder_analyze_intersession;
[Widget] Gtk.CheckButton check_encoder_intersession_x_is_date;
+ [Widget] Gtk.CheckButton check_encoder_separate_session_in_days;
[Widget] Gtk.HBox hbox_combo_encoder_analyze_weights;
[Widget] Gtk.ComboBox combo_encoder_analyze_weights;
@@ -3171,7 +3172,7 @@ public partial class ChronoJumpWindow
check_encoder_analyze_eccon_together.Active = true;
}
}
-
+
private void on_radio_encoder_analyze_individual_current_set_toggled (object obj, EventArgs args)
{
if(! radio_encoder_analyze_individual_current_set.Active)
@@ -3203,6 +3204,8 @@ public partial class ChronoJumpWindow
check_encoder_analyze_eccon_together.Sensitive = true;
block_check_encoder_analyze_eccon_together_if_needed();
hbox_encoder_analyze_intersession.Visible = false;
+ check_encoder_separate_session_in_days.Active = false;
+ check_encoder_separate_session_in_days.Visible = false;
button_encoder_analyze_sensitiveness();
@@ -3254,6 +3257,8 @@ public partial class ChronoJumpWindow
check_encoder_analyze_eccon_together.Sensitive = true;
block_check_encoder_analyze_eccon_together_if_needed();
hbox_encoder_analyze_intersession.Visible = false;
+ check_encoder_separate_session_in_days.Active = false;
+ check_encoder_separate_session_in_days.Visible = false;
button_encoder_analyze_sensitiveness();
@@ -3283,6 +3288,9 @@ public partial class ChronoJumpWindow
radiobutton_encoder_analyze_cross.Active = true;
hbox_encoder_analyze_intersession.Visible = true;
+ check_encoder_separate_session_in_days.Visible = true;
+ set_check_encoder_separate_session_in_days();
+
//this analysis only when not comparing
radiobutton_encoder_analyze_instantaneous.Visible = false;
radiobutton_encoder_analyze_powerbars.Visible = false;
@@ -3294,7 +3302,7 @@ public partial class ChronoJumpWindow
showTriggerTab(false);
}
-
+
private void on_radio_encoder_analyze_groupal_current_session_toggled (object obj, EventArgs args)
{
if(! radio_encoder_analyze_groupal_current_session.Active)
@@ -3314,6 +3322,8 @@ public partial class ChronoJumpWindow
//active cross. The only available for comparing
radiobutton_encoder_analyze_cross.Active = true;
hbox_encoder_analyze_intersession.Visible = false;
+ check_encoder_separate_session_in_days.Active = false;
+ check_encoder_separate_session_in_days.Visible = false;
//this analysis only when not comparing
radiobutton_encoder_analyze_instantaneous.Visible = false;
@@ -3379,6 +3389,13 @@ public partial class ChronoJumpWindow
return analysisVariables;
}
+ private void set_check_encoder_separate_session_in_days()
+ {
+ check_encoder_separate_session_in_days.Sensitive = !
check_encoder_intersession_x_is_date.Active;
+ if(check_encoder_intersession_x_is_date.Active)
+ check_encoder_separate_session_in_days.Active = false;
+ }
+
//encoder analysis modes
@@ -3992,7 +4009,14 @@ public partial class ChronoJumpWindow
}
}
- void on_check_encoder_intersession_x_is_date_toggled (object o, EventArgs args) {
+ //to avoid circular calls
+ private bool encoder_x_is_date_session_in_days_nofollow = false;
+
+ void on_check_encoder_intersession_x_is_date_toggled (object o, EventArgs args)
+ {
+ if(encoder_x_is_date_session_in_days_nofollow)
+ return;
+
createComboAnalyzeCross(false, check_encoder_intersession_x_is_date.Active);
if(check_encoder_intersession_x_is_date.Active) {
@@ -4000,7 +4024,27 @@ public partial class ChronoJumpWindow
combo_encoder_analyze_weights.Visible = true;
} else
combo_encoder_analyze_weights.Visible = false;
- }
+
+ encoder_x_is_date_session_in_days_nofollow = true;
+ set_check_encoder_separate_session_in_days();
+ encoder_x_is_date_session_in_days_nofollow = false;
+ }
+
+ void on_check_encoder_separate_session_in_days_toggled (object o, EventArgs args)
+ {
+ if(encoder_x_is_date_session_in_days_nofollow)
+ return;
+
+ check_encoder_intersession_x_is_date.Sensitive = !
check_encoder_separate_session_in_days.Active;
+
+ if(check_encoder_separate_session_in_days.Active)
+ {
+ encoder_x_is_date_session_in_days_nofollow = true;
+ check_encoder_intersession_x_is_date.Active = false;
+ encoder_x_is_date_session_in_days_nofollow = false;
+ }
+ }
+
void on_radio_encoder_eccon_toggled (object o, EventArgs args)
@@ -5826,9 +5870,10 @@ public partial class ChronoJumpWindow
encoder_pulsebar_analyze.Text = Catalog.GetString("Please, wait.");
encoderRProcAnalyze.status = EncoderRProc.Status.WAITING;
-
+
encoderRProcAnalyze.CrossValidate = checkbutton_crossvalidate.Active;
-
+ encoderRProcAnalyze.SeparateSessionInDays =
check_encoder_separate_session_in_days.Active;
+
encoderThread = new Thread(new ThreadStart(encoderDoAnalyze));
GLib.Idle.Add (new GLib.IdleHandler (pulseGTKEncoderAnalyze));
diff --git a/src/utilEncoder.cs b/src/utilEncoder.cs
index ff8a8642..cfd1517a 100644
--- a/src/utilEncoder.cs
+++ b/src/utilEncoder.cs
@@ -350,7 +350,7 @@ public class UtilEncoder
public static EncoderGraphROptions PrepareEncoderGraphOptions(
string title, EncoderStruct es, bool neuromuscularProfileDo, bool translate, bool
debug, bool crossValidate,
- bool cutByTriggers, string triggerStr)
+ bool cutByTriggers, string triggerStr, bool separateSessionInDays)
{
string operatingSystem = OperatingSystemForRGraphs();
@@ -405,7 +405,7 @@ public class UtilEncoder
title, operatingSystem,
Util.StringArrayToString(Constants.EncoderEnglishWords,";"),
Util.StringArrayToString(encoderTranslatedWordsOK,";"),
- debug, crossValidate, cutByTriggers, triggerStr
+ debug, crossValidate, cutByTriggers, triggerStr, separateSessionInDays
);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]