[chronojump] Fixed bug on deleting person from session. Improved deleting
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Fixed bug on deleting person from session. Improved deleting
- Date: Sun, 5 May 2013 13:05:03 +0000 (UTC)
commit 31f9844edbaac012a833afa49720488b4b2d1961
Author: Xavier de Blas <xaviblas gmail com>
Date: Sun May 5 14:43:14 2013 +0200
Fixed bug on deleting person from session. Improved deleting
glade/chronojump.glade | 2 +-
src/gui/chronojump.cs | 17 ++++++++-----
src/gui/encoder.cs | 7 +++--
src/gui/jump.cs | 2 +-
src/gui/pulse.cs | 2 +-
src/gui/run.cs | 2 +-
src/sqlite/main.cs | 14 +++++++----
src/sqlite/personSession.cs | 53 +++++++++++++++++++++++++++++++++++++++---
src/sqlite/session.cs | 26 +++++++++++++++++++++
9 files changed, 102 insertions(+), 23 deletions(-)
---
diff --git a/glade/chronojump.glade b/glade/chronojump.glade
index 5d665f3..26f831d 100644
--- a/glade/chronojump.glade
+++ b/glade/chronojump.glade
@@ -11975,7 +11975,7 @@ on current Chronojump version.</property>
<property name="can_focus">False</property>
<property name="top_padding">4</property>
<child>
- <widget class="GtkNotebook" id="notebook2">
+ <widget class="GtkNotebook" id="notebook_encoder_sup">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tab_hborder">10</property>
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index 5daf766..87b2e7e 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -4814,7 +4814,7 @@ Console.WriteLine("X");
Log.WriteLine("accept delete this jump");
int id = myTreeViewJumps.EventSelectedID;
- Sqlite.Delete(Constants.JumpTable, id);
+ Sqlite.Delete(false, Constants.JumpTable, id);
myTreeViewJumps.DelEvent(id);
showHideActionEventButtons(false, "Jump");
@@ -4840,7 +4840,7 @@ Console.WriteLine("X");
Log.WriteLine("accept delete this jump");
int id = myTreeViewJumpsRj.EventSelectedID;
- Sqlite.Delete(Constants.JumpRjTable, id);
+ Sqlite.Delete(false, Constants.JumpRjTable, id);
myTreeViewJumpsRj.DelEvent(id);
showHideActionEventButtons(false, "JumpRj");
@@ -4897,7 +4897,7 @@ Console.WriteLine("X");
Log.WriteLine("accept delete this run");
int id = myTreeViewRuns.EventSelectedID;
- Sqlite.Delete(Constants.RunTable, id);
+ Sqlite.Delete(false, Constants.RunTable, id);
myTreeViewRuns.DelEvent(id);
showHideActionEventButtons(false, "Run");
@@ -4919,7 +4919,7 @@ Console.WriteLine("X");
Log.WriteLine("accept delete this run");
int id = myTreeViewRunsInterval.EventSelectedID;
- Sqlite.Delete(Constants.RunIntervalTable, id);
+ Sqlite.Delete(false, Constants.RunIntervalTable, id);
myTreeViewRunsInterval.DelEvent(id);
showHideActionEventButtons(false, "RunInterval");
@@ -4959,7 +4959,7 @@ Console.WriteLine("X");
Log.WriteLine("accept delete this reaction time");
int id = myTreeViewReactionTimes.EventSelectedID;
- Sqlite.Delete(Constants.ReactionTimeTable, id);
+ Sqlite.Delete(false, Constants.ReactionTimeTable, id);
myTreeViewReactionTimes.DelEvent(id);
showHideActionEventButtons(false, "ReactionTime");
@@ -4996,7 +4996,7 @@ Console.WriteLine("X");
Log.WriteLine("accept delete this pulse");
int id = myTreeViewPulses.EventSelectedID;
- Sqlite.Delete(Constants.PulseTable, id);
+ Sqlite.Delete(false, Constants.PulseTable, id);
myTreeViewPulses.DelEvent(id);
showHideActionEventButtons(false, "Pulse");
@@ -5031,7 +5031,7 @@ Console.WriteLine("X");
Log.WriteLine("accept delete this multi chronopic");
int id = myTreeViewMultiChronopic.EventSelectedID;
- Sqlite.Delete(Constants.MultiChronopicTable, id);
+ Sqlite.Delete(false, Constants.MultiChronopicTable, id);
myTreeViewMultiChronopic.DelEvent(id);
showHideActionEventButtons(false, Constants.MultiChronopicName);
@@ -5408,6 +5408,7 @@ Console.WriteLine("X");
notebook_execute.Sensitive = false;
notebook_results.Sensitive = false;
notebook_options.Sensitive = false;
+ notebook_encoder_sup.Sensitive = false;
vbox_stats.Sensitive = false;
frame_share_data.Sensitive = false;
@@ -5447,6 +5448,7 @@ Console.WriteLine("X");
notebook_execute.Sensitive = false;
notebook_results.Sensitive = false;
notebook_options.Sensitive = false;
+ notebook_encoder_sup.Sensitive = false;
treeview_persons.Sensitive = false;
menuPersonSelectedSensitive(false);
@@ -5464,6 +5466,7 @@ Console.WriteLine("X");
notebook_execute.Sensitive = true;
notebook_results.Sensitive = true;
notebook_options.Sensitive = true;
+ notebook_encoder_sup.Sensitive = true;
treeview_persons.Sensitive = true;
menuPersonSelectedSensitive(true);
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index eb309f6..8c8b8fb 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -58,6 +58,7 @@ public partial class ChronoJumpWindow
[Widget] Gtk.Button button_encoder_update_signal;
[Widget] Gtk.Button button_encoder_delete_signal;
+ [Widget] Gtk.Notebook notebook_encoder_sup;
[Widget] Gtk.Notebook notebook_encoder_capture;
[Widget] Gtk.DrawingArea encoder_capture_drawingarea;
@@ -539,7 +540,7 @@ public partial class ChronoJumpWindow
//remove the file
bool deletedOk = Util.FileDelete(eSQL.GetFullURL(false)); //don't convertPathToR
if(deletedOk) {
- Sqlite.Delete(Constants.EncoderTable, Convert.ToInt32(uniqueID));
+ Sqlite.Delete(false, Constants.EncoderTable, Convert.ToInt32(uniqueID));
updateUserCurvesLabelsAndCombo();
}
}
@@ -887,7 +888,7 @@ public partial class ChronoJumpWindow
//remove the file
bool deletedOk = Util.FileDelete(eSQL.GetFullURL(false)); //don't convertPathToR
if(deletedOk)
- Sqlite.Delete(Constants.EncoderTable, Convert.ToInt32(uniqueID));
+ Sqlite.Delete(false, Constants.EncoderTable, Convert.ToInt32(uniqueID));
//genericWin selected row is deleted, unsensitive the "load" button
genericWin.SetButtonAcceptSensitive(false);
@@ -1071,7 +1072,7 @@ public partial class ChronoJumpWindow
//remove the file
bool deletedOk = Util.FileDelete(eSQL.GetFullURL(false)); //don't convertPathToR
if(deletedOk) {
- Sqlite.Delete(Constants.EncoderTable, Convert.ToInt32(encoderSignalUniqueID));
+ Sqlite.Delete(false, Constants.EncoderTable, Convert.ToInt32(encoderSignalUniqueID));
encoderSignalUniqueID = "-1";
image_encoder_capture.Sensitive = false;
treeviewEncoderCaptureRemoveColumns();
diff --git a/src/gui/jump.cs b/src/gui/jump.cs
index 77538ec..e422ea2 100644
--- a/src/gui/jump.cs
+++ b/src/gui/jump.cs
@@ -952,7 +952,7 @@ public class RepairJumpRjWindow
}
//save it deleting the old first for having the same uniqueID
- Sqlite.Delete(Constants.JumpRjTable, jumpRj.UniqueID);
+ Sqlite.Delete(false, Constants.JumpRjTable, jumpRj.UniqueID);
jumpRj.InsertAtDB(false, Constants.JumpRjTable);
/*
SqliteJump.InsertRj("jumpRj", jumpRj.UniqueID.ToString(), jumpRj.PersonID, jumpRj.SessionID,
diff --git a/src/gui/pulse.cs b/src/gui/pulse.cs
index bfc55cc..a760835 100644
--- a/src/gui/pulse.cs
+++ b/src/gui/pulse.cs
@@ -462,7 +462,7 @@ public class RepairPulseWindow
myPulse.TimesString = timeString;
//save it deleting the old first for having the same uniqueID
- Sqlite.Delete(Constants.PulseTable,myPulse.UniqueID);
+ Sqlite.Delete(false, Constants.PulseTable,myPulse.UniqueID);
myPulse.InsertAtDB(false, Constants.PulseTable);
/*
diff --git a/src/gui/run.cs b/src/gui/run.cs
index e167c39..2f366e8 100644
--- a/src/gui/run.cs
+++ b/src/gui/run.cs
@@ -841,7 +841,7 @@ public class RepairRunIntervalWindow
}
//save it deleting the old first for having the same uniqueID
- Sqlite.Delete(Constants.RunIntervalTable, runInterval.UniqueID);
+ Sqlite.Delete(false, Constants.RunIntervalTable, runInterval.UniqueID);
runInterval.InsertAtDB(false, Constants.RunIntervalTable);
/*
SqliteRun.InsertInterval(false, Constants.RunIntervalTable, runInterval.UniqueID.ToString(),
diff --git a/src/sqlite/main.cs b/src/sqlite/main.cs
index af87036..3747010 100644
--- a/src/sqlite/main.cs
+++ b/src/sqlite/main.cs
@@ -1749,8 +1749,8 @@ class Sqlite
foreach(int personID in myArray) {
//if person is not in other sessions, delete it from DB
- if(! SqlitePersonSession.PersonExistsInPS(personID))
- Delete(Constants.PersonTable, personID);
+ if(! SqlitePersonSession.PersonExistsInPS(true, personID))
+ Delete(true, Constants.PersonTable, personID);
}
}
@@ -2150,14 +2150,18 @@ Console.WriteLine("5" + tableName);
return myReturn;
}
- public static void Delete(string tableName, int uniqueID)
+ public static void Delete(bool dbconOpened, string tableName, int uniqueID)
{
- dbcon.Open();
+ if( ! dbconOpened)
+ dbcon.Open();
+
dbcmd.CommandText = "Delete FROM " + tableName +
" WHERE uniqueID == " + uniqueID.ToString();
Log.WriteLine(dbcmd.CommandText.ToString());
dbcmd.ExecuteNonQuery();
- dbcon.Close();
+
+ if( ! dbconOpened)
+ dbcon.Close();
}
diff --git a/src/sqlite/personSession.cs b/src/sqlite/personSession.cs
index b2c03db..3228c56 100644
--- a/src/sqlite/personSession.cs
+++ b/src/sqlite/personSession.cs
@@ -350,14 +350,20 @@ class SqlitePersonSession : Sqlite
{
dbcon.Open();
+ //1.- first delete in personSession77 at this session
+
//delete relations (existance) within persons and sessions in this session
- dbcmd.CommandText = "Delete FROM " + Constants.PersonSessionTable +" WHERE sessionID == " +
sessionID +
+ dbcmd.CommandText = "Delete FROM " + Constants.PersonSessionTable +
+ " WHERE sessionID == " + sessionID +
" AND personID == " + personID;
dbcmd.ExecuteNonQuery();
+ //2.- Now, it's not in this personSession77 in other sessions, delete if from DB
+
//if person is not in other sessions, delete it from DB
- if(! PersonExistsInPS(Convert.ToInt32(personID))) {
- Delete(Constants.PersonTable, Convert.ToInt32(personID));
+ if(! PersonExistsInPS(true, Convert.ToInt32(personID))) {
+ //this will open and close DB connection
+ Delete(true, Constants.PersonTable, Convert.ToInt32(personID));
//delete photos if any
if(File.Exists(Util.GetPhotoFileName(false, Convert.ToInt32(personID))))
@@ -365,6 +371,8 @@ class SqlitePersonSession : Sqlite
if(File.Exists(Util.GetPhotoFileName(true, Convert.ToInt32(personID))))
File.Delete(Util.GetPhotoFileName(true, Convert.ToInt32(personID)));
}
+
+ //3.- Delete tests
//delete normal jumps
dbcmd.CommandText = "Delete FROM jump WHERE sessionID == " + sessionID +
@@ -406,13 +414,46 @@ class SqlitePersonSession : Sqlite
" AND personID == " + personID;
dbcmd.ExecuteNonQuery();
+
+ //delete from encoder
+ dbcmd.CommandText = "Delete FROM " + Constants.EncoderTable + " WHERE sessionID == " +
sessionID +
+ " AND personID == " + personID;
+
+ dbcmd.ExecuteNonQuery();
+
+ //delete encoder signal and curves (and it's videos)
+ ArrayList encoderArray = SqliteEncoder.Select(true, -1,
+ Convert.ToInt32(personID), Convert.ToInt32(sessionID), "signal", false);
+ foreach(EncoderSQL eSQL in encoderArray) {
+ Util.FileDelete(eSQL.GetFullURL(false)); //signal, don't convertPathToR
+ if(eSQL.future2 != "")
+ Util.FileDelete(eSQL.future2); //video
+ Sqlite.Delete(true, Constants.EncoderTable, Convert.ToInt32(eSQL.uniqueID));
+ }
+ encoderArray = SqliteEncoder.Select(true, -1,
+ Convert.ToInt32(personID), Convert.ToInt32(sessionID), "curve", false);
+ foreach(EncoderSQL eSQL in encoderArray) {
+ Util.FileDelete(eSQL.GetFullURL(false)); //don't convertPathToR
+ /* commented: curve has no video
+ if(eSQL.future2 != "")
+ Util.FileDelete(eSQL.future2);
+ */
+ Sqlite.Delete(true, Constants.EncoderTable, Convert.ToInt32(eSQL.uniqueID));
+ }
+
+ //4.- TODO: delete videos
+
+
dbcon.Close();
}
- public static bool PersonExistsInPS(int personID)
+ public static bool PersonExistsInPS(bool dbconOpened, int personID)
{
+ if( ! dbconOpened)
+ dbcon.Open();
+
dbcmd.CommandText = "SELECT * FROM " + Constants.PersonSessionTable +
" WHERE personID == " + personID;
//Log.WriteLine(dbcmd.CommandText.ToString());
@@ -429,6 +470,10 @@ class SqlitePersonSession : Sqlite
//Log.WriteLine(string.Format("personID exists = {0}", exists.ToString()));
reader.Close();
+
+ if( ! dbconOpened)
+ dbcon.Close();
+
return exists;
}
diff --git a/src/sqlite/session.cs b/src/sqlite/session.cs
index afe5714..0a33ca9 100644
--- a/src/sqlite/session.cs
+++ b/src/sqlite/session.cs
@@ -618,6 +618,32 @@ class SqliteSession : Sqlite
dbcmd.CommandText = "Delete FROM " + Constants.MultiChronopicTable + " WHERE sessionID == " +
uniqueID;
dbcmd.ExecuteNonQuery();
+ //delete from encoder
+ dbcmd.CommandText = "Delete FROM " + Constants.EncoderTable + " WHERE sessionID == " +
uniqueID;
+
+ dbcmd.ExecuteNonQuery();
+
+
+ //delete encoder signal and curves (and it's videos)
+ ArrayList encoderArray = SqliteEncoder.Select(true, -1, -1,
+ Convert.ToInt32(uniqueID), "signal", false);
+ foreach(EncoderSQL eSQL in encoderArray) {
+ Util.FileDelete(eSQL.GetFullURL(false)); //signal, don't convertPathToR
+ if(eSQL.future2 != "")
+ Util.FileDelete(eSQL.future2); //video
+ Sqlite.Delete(true, Constants.EncoderTable, Convert.ToInt32(eSQL.uniqueID));
+ }
+ encoderArray = SqliteEncoder.Select(true, -1, -1,
+ Convert.ToInt32(uniqueID), "curve", false);
+ foreach(EncoderSQL eSQL in encoderArray) {
+ Util.FileDelete(eSQL.GetFullURL(false)); //don't convertPathToR
+ /* commented: curve has no video
+ if(eSQL.future2 != "")
+ Util.FileDelete(eSQL.future2);
+ */
+ Sqlite.Delete(true, Constants.EncoderTable, Convert.ToInt32(eSQL.uniqueID));
+ }
+
dbcon.Close();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]