[chronojump] RunEncoder at load set can edit/delete
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] RunEncoder at load set can edit/delete
- Date: Wed, 18 Sep 2019 15:09:24 +0000 (UTC)
commit ad1be64183e88d6eb3f0b90b210a6541f1791df3
Author: Xavier de Blas <xaviblas gmail com>
Date: Wed Sep 18 17:07:57 2019 +0200
RunEncoder at load set can edit/delete
src/forceSensor.cs | 4 +-
src/gui/forceSensor.cs | 4 +-
src/gui/runEncoder.cs | 123 +++++++++++++++++++++++++++++++++++++++++++++++--
src/runEncoder.cs | 23 ++++++++-
4 files changed, 145 insertions(+), 9 deletions(-)
---
diff --git a/src/forceSensor.cs b/src/forceSensor.cs
index ebfa19ac..d82d2517 100644
--- a/src/forceSensor.cs
+++ b/src/forceSensor.cs
@@ -111,9 +111,9 @@ public class ForceSensor
"\" WHERE uniqueID = " + uniqueID;
}
- public void UpdateSQLJustComments()
+ public void UpdateSQLJustComments(bool dbconOpened)
{
- SqliteForceSensor.UpdateComments (false, uniqueID, comments); //SQL not opened
+ SqliteForceSensor.UpdateComments (dbconOpened, uniqueID, comments); //SQL not opened
}
public string [] ToStringArray (int count)
diff --git a/src/gui/forceSensor.cs b/src/gui/forceSensor.cs
index ae0b64e0..9b7fe457 100644
--- a/src/gui/forceSensor.cs
+++ b/src/gui/forceSensor.cs
@@ -1424,7 +1424,7 @@ LogB.Information(" re R ");
if(comment != fs.Comments)
{
fs.Comments = comment;
- fs.UpdateSQL(true);
+ fs.UpdateSQLJustComments(true);
//update treeview
genericWin.on_edit_selected_done_update_treeview();
@@ -1556,7 +1556,7 @@ LogB.Information(" re R ");
private void on_button_force_sensor_save_comment_clicked (object o, EventArgs args)
{
currentForceSensor.Comments =
UtilGtk.TextViewGetCommentValidSQL(textview_force_sensor_capture_comment);
- currentForceSensor.UpdateSQLJustComments();
+ currentForceSensor.UpdateSQLJustComments(false);
}
private void on_button_force_sensor_analyze_analyze_clicked (object o, EventArgs args)
diff --git a/src/gui/runEncoder.cs b/src/gui/runEncoder.cs
index e10a4c4c..238602d9 100644
--- a/src/gui/runEncoder.cs
+++ b/src/gui/runEncoder.cs
@@ -536,11 +536,9 @@ public partial class ChronoJumpWindow
genericWin.SetButtonCancelLabel(Catalog.GetString("Close"));
genericWin.SetButtonAcceptSensitive(false);
genericWin.Button_accept.Clicked += new EventHandler(on_run_encoder_load_accepted);
- /*
genericWin.Button_row_edit.Clicked += new EventHandler(on_run_encoder_load_signal_row_edit);
genericWin.Button_row_edit_apply.Clicked += new
EventHandler(on_run_encoder_load_signal_row_edit_apply);
genericWin.Button_row_delete.Clicked += new
EventHandler(on_run_encoder_load_signal_row_delete_prequestion);
- */
genericWin.ShowNow();
}
@@ -589,6 +587,125 @@ public partial class ChronoJumpWindow
event_execute_label_message.Text = "Loaded: " + Util.GetLastPartOfPath(re.Filename);
}
+ protected void on_run_encoder_load_signal_row_edit (object o, EventArgs args) {
+ LogB.Information("row edit at load signal");
+ LogB.Information(genericWin.TreeviewSelectedUniqueID.ToString());
+ genericWin.ShowEditRow(true);
+ }
+
+ protected void on_run_encoder_load_signal_row_edit_apply (object o, EventArgs args)
+ {
+ LogB.Information("row edit apply at load signal. Opening db:");
+
+ Sqlite.Open();
+
+ //1) select set
+ int setID = genericWin.TreeviewSelectedUniqueID;
+ RunEncoder re = (RunEncoder) SqliteRunEncoder.Select(true, setID, -1, -1)[0];
+
+ //2) if changed comment, update SQL, and update treeview
+ //first remove conflictive characters
+ string comment = Util.RemoveTildeAndColonAndDot(genericWin.EntryEditRow);
+ if(comment != re.Comments)
+ {
+ re.Comments = comment;
+ re.UpdateSQLJustComments(true);
+
+ //update treeview
+ genericWin.on_edit_selected_done_update_treeview();
+ }
+
+ //3) change the session param and the url of signal and curves (if any)
+ string idName = genericWin.GetComboSelected;
+ LogB.Information("new person: " + idName);
+ int newPersonID = Util.FetchID(idName);
+ if(newPersonID != currentPerson.UniqueID)
+ {
+ //change stuff on signal
+ RunEncoder reChangedPerson = re.ChangePerson(idName);
+ reChangedPerson.UpdateSQL(true);
+ genericWin.RemoveSelectedRow();
+ genericWin.SetButtonAcceptSensitive(false);
+ }
+
+ genericWin.ShowEditRow(false);
+ genericWin.SensitiveEditDeleteIfSelected();
+
+ //remove signal from gui just in case the edited signal is the same we have loaded
+ //removeSignalFromGuiBecauseDeletedOrCancelled();
+ blankRunEncoderInterface();
+
+ Sqlite.Close();
+ }
+
+ // ----start of runEncoderDeleteTest stuff -------
+
+ protected void on_run_encoder_load_signal_row_delete_prequestion (object o, EventArgs args)
+ {
+ if(preferences.askDeletion) {
+ ConfirmWindow confirmWin = ConfirmWindow.Show(Catalog.GetString(
+ "Are you sure you want to delete this set?"), "", "");
+ confirmWin.Button_accept.Clicked += new
EventHandler(on_run_encoder_load_signal_row_delete);
+ } else
+ on_run_encoder_load_signal_row_delete (o, args);
+ }
+
+ protected void on_run_encoder_load_signal_row_delete (object o, EventArgs args)
+ {
+ LogB.Information("row delete at load set");
+
+ int setID = genericWin.TreeviewSelectedUniqueID;
+ LogB.Information(setID.ToString());
+
+ //if it's current set use the delete set from the gui interface that updates gui
+ if(currentRunEncoder != null && setID == Convert.ToInt32(currentRunEncoder.UniqueID))
+ run_encoder_delete_current_test_accepted(o, args);
+ else {
+ RunEncoder re = (RunEncoder) SqliteRunEncoder.Select(false, setID, -1, -1)[0];
+ runEncoderDeleteTestDo(re);
+
+ //genericWin selected row is deleted, unsensitive the "load" button
+ genericWin.SetButtonAcceptSensitive(false);
+ }
+ genericWin.Delete_row_accepted();
+ }
+
+ private void run_encoder_delete_current_test_pre_question()
+ {
+ //solve possible gui problems
+ if(currentRunEncoder == null || currentRunEncoder.UniqueID == -1)
+ {
+ new DialogMessage(Constants.MessageTypes.WARNING, "Test does not exists. Cannot be
deleted");
+ return;
+ }
+
+ if(preferences.askDeletion) {
+ ConfirmWindow confirmWin = ConfirmWindow.Show(Catalog.GetString(
+ "Are you sure you want to delete this set?"), "", "");
+ confirmWin.Button_accept.Clicked += new
EventHandler(run_encoder_delete_current_test_accepted);
+ } else
+ run_encoder_delete_current_test_accepted(new object(), new EventArgs());
+ }
+ private void run_encoder_delete_current_test_accepted(object o, EventArgs args)
+ {
+ runEncoderDeleteTestDo(currentRunEncoder);
+
+ //empty currentRunEncoder (assign -1)
+ currentRunEncoder = new RunEncoder();
+
+ //empty GUI
+ blankRunEncoderInterface();
+ }
+
+ private void runEncoderDeleteTestDo(RunEncoder re)
+ {
+ //int uniqueID = currentRunEncoder.UniqueID;
+ SqliteRunEncoder.DeleteSQLAndFiles (false, re); //deletes also the .csv
+ }
+
+ // --- end of runEncoderDeleteTest stuff -------
+
+
private void on_button_run_encoder_recalculate_clicked (object o, EventArgs args)
{
if(! Util.FileExists(lastRunEncoderFullPath))
@@ -624,7 +741,7 @@ public partial class ChronoJumpWindow
private void on_button_race_analyzer_save_comment_clicked (object o, EventArgs args)
{
currentRunEncoder.Comments =
UtilGtk.TextViewGetCommentValidSQL(textview_race_analyzer_comment);
- currentRunEncoder.UpdateSQLJustComments();
+ currentRunEncoder.UpdateSQLJustComments(false);
}
private void raceEncoderCopyTempAndDoGraphs()
diff --git a/src/runEncoder.cs b/src/runEncoder.cs
index b24d2425..338d61bf 100644
--- a/src/runEncoder.cs
+++ b/src/runEncoder.cs
@@ -114,9 +114,9 @@ public class RunEncoder
"\" WHERE uniqueID = " + uniqueID;
}
- public void UpdateSQLJustComments()
+ public void UpdateSQLJustComments(bool dbconOpened)
{
- SqliteRunEncoder.UpdateComments (false, uniqueID, comments); //SQL not opened
+ SqliteRunEncoder.UpdateComments (dbconOpened, uniqueID, comments); //SQL not opened
}
public string [] ToStringArray (int count)
@@ -150,6 +150,25 @@ public class RunEncoder
return DevicesStringMANUAL;
}
+ //uniqueID:name
+ public RunEncoder ChangePerson(string newIDAndName)
+ {
+ int newPersonID = Util.FetchID(newIDAndName);
+ string newPersonName = Util.FetchName(newIDAndName);
+ string newFilename = filename;
+
+ personID = newPersonID;
+ newFilename = newPersonID + "-" + newPersonName + "-" + dateTime + ".csv";
+
+ bool success = false;
+ success = Util.FileMove(url, filename, newFilename);
+ if(success)
+ filename = newFilename;
+
+ //will update SqliteRunEncoder
+ return (this);
+ }
+
public static string GetScript() {
return System.IO.Path.Combine(UtilEncoder.GetSprintPath(), "sprintEncoder.R");
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]