[chronojump] Fixed 5 bugs:
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Fixed 5 bugs:
- Date: Tue, 5 Apr 2011 14:03:54 +0000 (UTC)
commit 9c1046995abf5b7ef18ec885058799b69986c843
Author: Xavier de Blas <xaviblas gmail com>
Date: Sat Apr 2 04:11:47 2011 +0200
Fixed 5 bugs:
fixed: connecting 1 chronopic gets unsensitive button_execute test on
mode != than multiChronopic
fixed: execute messages take care of threads (use "need" in order to be
changed by gui thread)
fixed: crash deleting tests when no test have been executed
fixed: crash executing run interval
fixed: crash executing multi chronopic get's hanged after finish and
pressing platforms. Started and infinite loop of error window
src/execute/event.cs | 12 +++--
src/execute/jump.cs | 44 +++++++++++----------
src/execute/multiChronopic.cs | 15 ++++---
src/execute/pulse.cs | 13 ++++--
src/execute/reactionTime.cs | 18 +++-----
src/execute/run.cs | 27 ++++++++++---
src/gui/chronojump.cs | 85 +++++++++++++++++++++++++----------------
src/gui/eventExecute.cs | 2 +-
8 files changed, 128 insertions(+), 88 deletions(-)
---
diff --git a/src/execute/event.cs b/src/execute/event.cs
index 018ab55..d9fd7d6 100644
--- a/src/execute/event.cs
+++ b/src/execute/event.cs
@@ -58,8 +58,10 @@ public class EventExecute
}
protected eventType needUpdateGraphType;
- protected string syncMessage;
- protected bool needShowSyncMessage;
+ //protected string syncMessage;
+ //protected bool needShowSyncMessage;
+ protected string feedbackMessage;
+ protected bool needShowFeedbackMessage;
//instances with the info to create
public PrepareEventGraphJumpSimple PrepareEventGraphJumpSimpleObject;
@@ -313,9 +315,9 @@ public class EventExecute
needSensitiveButtonFinish = false;
}
- if(needShowSyncMessage) {
- egd.Textview_message.Buffer = UtilGtk.TextViewPrint(syncMessage);
- needShowSyncMessage = false;
+ if(needShowFeedbackMessage) {
+ egd.Textview_message.Buffer = UtilGtk.TextViewPrint(feedbackMessage);
+ needShowFeedbackMessage = false;
}
diff --git a/src/execute/jump.cs b/src/execute/jump.cs
index 79ef982..da13c17 100644
--- a/src/execute/jump.cs
+++ b/src/execute/jump.cs
@@ -125,7 +125,8 @@ public class JumpExecute : EventExecute
if (platformState==Chronopic.Plataforma.ON) {
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(Catalog.GetString("You are IN, JUMP when prepared!!") );
+ feedbackMessage = Catalog.GetString("You are IN, JUMP when prepared!");
+ needShowFeedbackMessage = true;
Util.PlaySound(Constants.SoundTypes.CAN_START, volumeOn);
loggedState = States.ON;
@@ -175,7 +176,8 @@ public class JumpExecute : EventExecute
if (platformState==Chronopic.Plataforma.OFF) {
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(Catalog.GetString("You are OUT, JUMP when prepared!!") );
+ feedbackMessage = Catalog.GetString("You are OUT, JUMP when prepared!");
+ needShowFeedbackMessage = true;
Util.PlaySound(Constants.SoundTypes.CAN_START, volumeOn);
loggedState = States.OFF;
@@ -240,14 +242,10 @@ public class JumpExecute : EventExecute
if (platformState == Chronopic.Plataforma.ON && loggedState == States.OFF)
{
//has landed
-Log.Write("w1 ");
-
if(hasFall && tc == 0) {
-Log.Write("w2 ");
//jump with fall, landed first time
initializeTimer();
-Log.Write("w3 ");
//app1.ProgressBarEventOrTimePreExecution(
//don't do it, put a boolean value and let the PulseGTK do it
updateProgressBar = new UpdateProgressBar (
@@ -256,7 +254,9 @@ Log.Write("w3 ");
1 //it's a drop: phase 1/3
);
needUpdateEventProgressBar = true;
-Log.Write("w4 ");
+
+ feedbackMessage = "";
+ needShowFeedbackMessage = true;
} else {
//jump with fall: second landed; or without fall first landing
@@ -275,7 +275,6 @@ Log.Write("w4 ");
if(hasFall)
percentageToPass = 3; //drop jump has three phases
-Log.Write("w5 ");
//app1.ProgressBarEventOrTimePreExecution(
//don't do it, put a boolean value and let the PulseGTK do it
updateProgressBar = new UpdateProgressBar (
@@ -284,7 +283,6 @@ Log.Write("w5 ");
percentageToPass
);
needUpdateEventProgressBar = true;
-Log.Write("w6 ");
}
loggedState = States.ON;
@@ -313,7 +311,6 @@ Log.Write("w6 ");
}
//update event progressbar
-Log.Write("w7 ");
//app1.ProgressBarEventOrTimePreExecution(
//don't do it, put a boolean value and let the PulseGTK do it
updateProgressBar = new UpdateProgressBar (
@@ -322,13 +319,9 @@ Log.Write("w7 ");
2 //it's a drop jump: phase 2/3
);
needUpdateEventProgressBar = true;
-Log.Write("w8 ");
} else {
-Log.Write("w9 ");
initializeTimer();
-Log.Write("wa ");
-
//update event progressbar
//app1.ProgressBarEventOrTimePreExecution(
//don't do it, put a boolean value and let the PulseGTK do it
@@ -338,7 +331,9 @@ Log.Write("wa ");
1 //normal jump, phase 1/2
);
needUpdateEventProgressBar = true;
-Log.Write("wb ");
+
+ feedbackMessage = "";
+ needShowFeedbackMessage = true;
}
//change the automata state
@@ -389,9 +384,10 @@ Log.Write("wb ");
myStringPush = myStringPush + "(" + weight.ToString() + "%)";
}
if(simulated)
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(Constants.SimulatedMessage);
+ feedbackMessage = Catalog.GetString(Constants.SimulatedMessage);
else
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(myStringPush );
+ feedbackMessage = "";
+ needShowFeedbackMessage = true;
uniqueID = SqliteJump.Insert(false, Constants.JumpTable, "NULL", personID, sessionID,
type, tv, tc, fall, //type, tv, tc, fall
@@ -544,11 +540,13 @@ public class JumpRjExecute : JumpExecute
bool success = false;
if (platformState==Chronopic.Plataforma.OFF && hasFall ) {
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(Catalog.GetString("You are OUT, JUMP when prepared!!") );
+ feedbackMessage = Catalog.GetString("You are OUT, JUMP when prepared!");
+ needShowFeedbackMessage = true;
Util.PlaySound(Constants.SoundTypes.CAN_START, volumeOn);
success = true;
} else if (platformState==Chronopic.Plataforma.ON && ! hasFall ) {
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(Catalog.GetString("You are IN, JUMP when prepared!!") );
+ feedbackMessage = Catalog.GetString("You are IN, JUMP when prepared!");
+ needShowFeedbackMessage = true;
Util.PlaySound(Constants.SoundTypes.CAN_START, volumeOn);
success = true;
} else {
@@ -648,6 +646,9 @@ public class JumpRjExecute : JumpExecute
//but start timer
initializeTimer();
+
+ feedbackMessage = "";
+ needShowFeedbackMessage = true;
} else {
//reactive jump has not finished... record the next jump
Log.WriteLine(string.Format("tcCount: {0}, tvCount: {1}", tcCount, tvCount));
@@ -989,9 +990,10 @@ public class JumpRjExecute : JumpExecute
" " + Catalog.GetString("AVG TF") + ": " + Util.TrimDecimals( Util.GetAverage (tvString).ToString(), pDN ) +
" " + Catalog.GetString("AVG TC") + ": " + Util.TrimDecimals( Util.GetAverage (tcString).ToString(), pDN ) ;
if(simulated)
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(Constants.SimulatedMessage);
+ feedbackMessage = Catalog.GetString(Constants.SimulatedMessage);
else
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(myStringPush );
+ feedbackMessage = "";
+ needShowFeedbackMessage = true;
//event will be raised, and managed in chronojump.cs
diff --git a/src/execute/multiChronopic.cs b/src/execute/multiChronopic.cs
index e310f86..213cf71 100644
--- a/src/execute/multiChronopic.cs
+++ b/src/execute/multiChronopic.cs
@@ -384,8 +384,8 @@ public class MultiChronopicExecute : EventExecute
syncStates syncing = syncStates.DONE;
if(syncFirst) {
syncing = syncStates.NOTHING;
- syncMessage = Catalog.GetString("Press and mantain Test button in all Chronopics simultaneously.");
- needShowSyncMessage = true;
+ feedbackMessage = Catalog.GetString("Press and mantain Test button in all Chronopics simultaneously.");
+ needShowFeedbackMessage = true;
}
do {
@@ -404,18 +404,21 @@ public class MultiChronopicExecute : EventExecute
if (firstValue) {
firstValue = false;
initializeTimer(); //this is for first Chronopic and only for simulated
+
+ feedbackMessage = "";
+ needShowFeedbackMessage = true;
}
if(syncing == syncStates.NOTHING && myPS == Chronopic.Plataforma.ON && myLS == States.OFF) {
syncing = syncStates.CONTACTED;
- syncMessage = Catalog.GetString("Release Test button in all Chronopics simultaneously.");
- needShowSyncMessage = true;
+ feedbackMessage = Catalog.GetString("Release Test button in all Chronopics simultaneously.");
+ needShowFeedbackMessage = true;
}
else if (syncing == syncStates.CONTACTED && myPS == Chronopic.Plataforma.OFF && myLS == States.ON) {
syncing = syncStates.DONE;
- syncMessage = Catalog.GetString("Synchronization done.") + "\n" +
+ feedbackMessage = Catalog.GetString("Synchronization done.") + "\n" +
Catalog.GetString("Test starts now.");
- needShowSyncMessage = true;
+ needShowFeedbackMessage = true;
}
else {
if(type != Constants.RunAnalysisName)
diff --git a/src/execute/pulse.cs b/src/execute/pulse.cs
index 8ba0a2b..4d940b5 100644
--- a/src/execute/pulse.cs
+++ b/src/execute/pulse.cs
@@ -125,7 +125,7 @@ public class PulseExecute : EventExecute
//we record always de TC+TF (or time between we pulse platform and we pulse again)
//we don't care about the time between the get in and the get out the platform
if (platformState==Chronopic.Plataforma.ON) {
- string myMessage = Catalog.GetString("You are IN, please leave the platform, prepare for start, and press the 'accept' button!!");
+ string myMessage = Catalog.GetString("You are IN, please leave the platform, prepare for start, and press the 'accept' button!");
ConfirmWindow confirmWin;
confirmWin = ConfirmWindow.Show(myMessage, "", "");
@@ -137,7 +137,8 @@ public class PulseExecute : EventExecute
//if confirmWin.Button_cancel is pressed retuen
confirmWin.Button_cancel.Clicked += new EventHandler(cancel_event_before_start);
} else if (platformState==Chronopic.Plataforma.OFF) {
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(Catalog.GetString("You are OUT, start when prepared!!") );
+ feedbackMessage = Catalog.GetString("You are OUT, start when prepared!");
+ needShowFeedbackMessage = true;
Util.PlaySound(Constants.SoundTypes.CAN_START, volumeOn);
loggedState = States.OFF;
@@ -201,6 +202,9 @@ public class PulseExecute : EventExecute
pulsePhase = pulsePhases.DOING;
//pulse starts
initializeTimer();
+
+ feedbackMessage = "";
+ needShowFeedbackMessage = true;
} else {
//is not the first pulse
if(totalPulsesNum == -1) {
@@ -346,9 +350,10 @@ public class PulseExecute : EventExecute
string myStringPush = Catalog.GetString("Last pulse") + ": " + personName + " " + type ;
if(simulated)
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(Constants.SimulatedMessage);
+ feedbackMessage = Catalog.GetString(Constants.SimulatedMessage);
else
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(myStringPush );
+ feedbackMessage = "";
+ needShowFeedbackMessage = true;
//event will be raised, and managed in chronojump.cs
diff --git a/src/execute/reactionTime.cs b/src/execute/reactionTime.cs
index 5b7683d..241e425 100644
--- a/src/execute/reactionTime.cs
+++ b/src/execute/reactionTime.cs
@@ -102,8 +102,8 @@ public class ReactionTimeExecute : EventExecute
if (platformState==Chronopic.Plataforma.ON) {
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(Catalog.GetString("You are IN, RELEASE when prepared!!") );
-
+ feedbackMessage = Catalog.GetString("You are IN, RELEASE when prepared!");
+ needShowFeedbackMessage = true;
Util.PlaySound(Constants.SoundTypes.CAN_START, volumeOn);
loggedState = States.ON;
@@ -160,8 +160,6 @@ public class ReactionTimeExecute : EventExecute
if (platformState == Chronopic.Plataforma.ON && loggedState == States.OFF)
{
//has landed
-Log.Write("w1 ");
-
if(simulated)
timestamp = simulatedTimeLast * 1000; //conversion to milliseconds
@@ -175,7 +173,6 @@ Log.Write("w1 ");
//update event progressbar
double percentageToPass = 2; //has two phases
-Log.Write("w5 ");
//progressBarEventOrTimePreExecution(
//don't do it, put a boolean value and let the PulseGTK do it
updateProgressBar = new UpdateProgressBar (
@@ -184,7 +181,6 @@ Log.Write("w5 ");
percentageToPass
);
needUpdateEventProgressBar = true;
-Log.Write("w6 ");
loggedState = States.ON;
}
@@ -193,10 +189,10 @@ Log.Write("w6 ");
//it's out, was inside (= has released)
-Log.Write("w9 ");
initializeTimer();
-Log.Write("wa ");
+ feedbackMessage = "";
+ needShowFeedbackMessage = true;
//update event progressbar
//progressBarEventOrTimePreExecution(
@@ -207,7 +203,6 @@ Log.Write("wa ");
1 //normal jump, phase 1/2
);
needUpdateEventProgressBar = true;
-Log.Write("wb ");
//change the automata state
loggedState = States.OFF;
@@ -246,9 +241,10 @@ Log.Write("wb ");
type + " " + Catalog.GetString("Time") + ": " + Util.TrimDecimals( time.ToString(), pDN ) ;
if(simulated)
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(Constants.SimulatedMessage);
+ feedbackMessage = Catalog.GetString(Constants.SimulatedMessage);
else
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(myStringPush );
+ feedbackMessage = "";
+ needShowFeedbackMessage = true;
uniqueID = SqliteReactionTime.Insert(
false, Constants.ReactionTimeTable,
diff --git a/src/execute/run.cs b/src/execute/run.cs
index b3c6cda..efe5bfe 100644
--- a/src/execute/run.cs
+++ b/src/execute/run.cs
@@ -114,14 +114,16 @@ Log.WriteLine("MANAGE(b)!!!!");
//you can start ON or OFF the platform,
//we record always de TF (or time between we abandonate the platform since we arrive)
if (platformState==Chronopic.Plataforma.ON) {
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(Catalog.GetString("You are IN, RUN when prepared!!") );
+ feedbackMessage = Catalog.GetString("You are IN, RUN when prepared!");
+ needShowFeedbackMessage = true;
Util.PlaySound(Constants.SoundTypes.CAN_START, volumeOn);
loggedState = States.ON;
startIn = true;
runPhase = runPhases.PLATFORM_INI;
} else if (platformState==Chronopic.Plataforma.OFF) {
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(Catalog.GetString("You are OUT, RUN when prepared!!") );
+ feedbackMessage = Catalog.GetString("You are OUT, RUN when prepared!");
+ needShowFeedbackMessage = true;
Util.PlaySound(Constants.SoundTypes.CAN_START, volumeOn);
loggedState = States.OFF;
@@ -226,7 +228,7 @@ Log.WriteLine("MANAGE(3)!!!!");
//don't record time
initializeTimer();
-
+
//update event progressbar
updateProgressBar = new UpdateProgressBar (
true, //isEvent
@@ -235,6 +237,9 @@ Log.WriteLine("MANAGE(3)!!!!");
);
needUpdateEventProgressBar = true;
+ feedbackMessage = "";
+ needShowFeedbackMessage = true;
+
//change the automata state
loggedState = States.OFF;
@@ -301,9 +306,10 @@ Log.WriteLine("MANAGE(3)!!!!");
type + " " + Catalog.GetString("time") + ": " + Util.TrimDecimals( time.ToString(), pDN ) +
" " + Catalog.GetString("speed") + ": " + Util.TrimDecimals ( (distance/time).ToString(), pDN );
if(simulated)
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(Constants.SimulatedMessage);
+ feedbackMessage = Catalog.GetString(Constants.SimulatedMessage);
else
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(myStringPush );
+ feedbackMessage = "";
+ needShowFeedbackMessage = true;
string description = "";
@@ -467,6 +473,9 @@ public class RunIntervalExecute : RunExecute
runPhase = runPhases.RUNNING;
//run starts
initializeTimer();
+
+ feedbackMessage = "";
+ needShowFeedbackMessage = true;
}
else {
runPhase = runPhases.RUNNING;
@@ -623,6 +632,9 @@ public class RunIntervalExecute : RunExecute
//run starts
initializeTimer();
lastTc = 0;
+
+ feedbackMessage = "";
+ needShowFeedbackMessage = true;
} else
lastTc = timestamp/1000.0;
@@ -819,9 +831,10 @@ public class RunIntervalExecute : RunExecute
timeTotal.ToString(), metersSecondsPreferred )
, pDN ) ;
if(simulated)
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(Constants.SimulatedMessage);
+ feedbackMessage = Catalog.GetString(Constants.SimulatedMessage);
else
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint(myStringPush );
+ feedbackMessage = "";
+ needShowFeedbackMessage = true;
//event will be raised, and managed in chronojump.cs
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index 9966632..2e78892 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -3931,32 +3931,19 @@ Console.WriteLine("X");
private void on_chronopic_clicked (object o, EventArgs args) {
chronopicWin = ChronopicWindow.View(volumeOn);
chronopicWin.FakeWindowDone.Clicked += new EventHandler(on_chronopic_window_connected_or_done);
-Log.WriteLine("AAAAA");
}
private void on_chronopic_window_connected_or_done (object o, EventArgs args) {
-Log.WriteLine("BBBBBB");
//chronopicWin.FakeWindowDone.Clicked -= new EventHandler(on_chronopic_window_connected_or_done);
int cps = chronopicWin.NumConnected();
-
- on_extra_window_multichronopic_test_changed(new object(), new EventArgs());
- /*
- if(cps >= 2) {
- button_multi_chronopic_start.Sensitive = true;
- extra_window_spin_run_analysis_distance.Sensitive = true;
- on_extra_window_spin_run_analysis_distance_changed (o, args);
- } else {
- button_multi_chronopic_start.Sensitive = false;
- extra_window_spin_run_analysis_distance.Sensitive = false;
- button_run_analysis.Sensitive = false;
- }
- */
+
+ if(radio_mode_multi_chronopic.Active)
+ on_extra_window_multichronopic_test_changed(new object(), new EventArgs());
chronopicLabels(cps);
}
private void chronopicLabels(int cps) {
-Log.WriteLine("CCCCC");
label_connected_chronopics.Text = "<b>" + cps.ToString() + "</b>";
label_connected_chronopics.UseMarkup = true;
@@ -4159,12 +4146,9 @@ Console.WriteLine("X");
Console.WriteLine("RR3");
sensitiveGuiEventDone();
Console.WriteLine("RR4");
-
- event_execute_textview_message.Buffer = UtilGtk.TextViewPrint("");
}
-
/*
* update button is clicked on eventWindow, chronojump.cs delegate points here
*/
@@ -4716,8 +4700,13 @@ Console.WriteLine("X");
//then what we are deleting is selected jump, not last jump
//only if selected is last, then
//change executing window: drawingarea, button_delete, "deleted test" message
- if(currentJump.UniqueID == id)
- deleted_last_test_update_widgets();
+ try {
+ if(currentJump.UniqueID == id)
+ deleted_last_test_update_widgets();
+ } catch {
+ //there's no currentJump (no one jumped), then it crashed,
+ //but don't need to update widgets
+ }
}
private void on_delete_selected_jump_rj_accepted (object o, EventArgs args) {
@@ -4733,8 +4722,13 @@ Console.WriteLine("X");
stats_win_fillTreeView_stats(false, false);
}
Util.DeleteVideo(currentSession.UniqueID, Constants.TestTypes.JUMP_RJ, id );
- if(currentJumpRj.UniqueID == id)
- deleted_last_test_update_widgets();
+ try {
+ if(currentJumpRj.UniqueID == id)
+ deleted_last_test_update_widgets();
+ } catch {
+ //there's no currentJumpRj (no one jumped), then it crashed,
+ //but don't need to update widgets
+ }
}
private void on_delete_selected_run_clicked (object o, EventArgs args) {
@@ -4785,8 +4779,13 @@ Console.WriteLine("X");
stats_win_fillTreeView_stats(false, false);
}
Util.DeleteVideo(currentSession.UniqueID, Constants.TestTypes.RUN, id );
- if(currentRun.UniqueID == id)
- deleted_last_test_update_widgets();
+ try {
+ if(currentRun.UniqueID == id)
+ deleted_last_test_update_widgets();
+ } catch {
+ //there's no currentRun (no one done it now), then it crashed,
+ //but don't need to update widgets
+ }
}
private void on_delete_selected_run_interval_accepted (object o, EventArgs args) {
@@ -4802,8 +4801,13 @@ Console.WriteLine("X");
stats_win_fillTreeView_stats(false, false);
}
Util.DeleteVideo(currentSession.UniqueID, Constants.TestTypes.RUN_I, id );
- if(currentRunInterval.UniqueID == id)
- deleted_last_test_update_widgets();
+ try {
+ if(currentRunInterval.UniqueID == id)
+ deleted_last_test_update_widgets();
+ } catch {
+ //there's no currentRunInterval (no one done it now), then it crashed,
+ //but don't need to update widgets
+ }
}
private void on_delete_selected_reaction_time_clicked (object o, EventArgs args) {
@@ -4839,8 +4843,13 @@ Console.WriteLine("X");
}
*/
Util.DeleteVideo(currentSession.UniqueID, Constants.TestTypes.RT, id );
- if(currentReactionTime.UniqueID == id)
- deleted_last_test_update_widgets();
+ try {
+ if(currentReactionTime.UniqueID == id)
+ deleted_last_test_update_widgets();
+ } catch {
+ //there's no currentReactionTime (no one done it now), then it crashed,
+ //but don't need to update widgets
+ }
}
private void on_delete_selected_pulse_clicked (object o, EventArgs args) {
@@ -4876,8 +4885,13 @@ Console.WriteLine("X");
}
*/
Util.DeleteVideo(currentSession.UniqueID, Constants.TestTypes.PULSE, id );
- if(currentPulse.UniqueID == id)
- deleted_last_test_update_widgets();
+ try {
+ if(currentPulse.UniqueID == id)
+ deleted_last_test_update_widgets();
+ } catch {
+ //there's no currentPulse (no one done it now), then it crashed,
+ //but don't need to update widgets
+ }
}
private void on_delete_selected_multi_chronopic_clicked (object o, EventArgs args) {
@@ -4906,8 +4920,13 @@ Console.WriteLine("X");
showHideActionEventButtons(false, Constants.MultiChronopicName);
Util.DeleteVideo(currentSession.UniqueID, Constants.TestTypes.MULTICHRONOPIC, id );
- if(currentMultiChronopic.UniqueID == id)
- deleted_last_test_update_widgets();
+ try {
+ if(currentMultiChronopic.UniqueID == id)
+ deleted_last_test_update_widgets();
+ } catch {
+ //there's no currentMultiChronopic (no one done it now), then it crashed,
+ //but don't need to update widgets
+ }
}
diff --git a/src/gui/eventExecute.cs b/src/gui/eventExecute.cs
index 0a4a404..9c0bb05 100644
--- a/src/gui/eventExecute.cs
+++ b/src/gui/eventExecute.cs
@@ -1816,7 +1816,7 @@ Log.WriteLine("Preparing reactive A");
}
break;
case EventType.Types.RUN:
- if(lastRunIsSimple) {
+ if(thisRunIsSimple) {
Log.Write("update graph: RUN");
PrepareRunSimpleGraph(
currentEventExecute.PrepareEventGraphRunSimpleObject.time,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]