[chronojump] overview win selects currentPerson on open
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] overview win selects currentPerson on open
- Date: Sat, 16 Jan 2021 11:35:19 +0000 (UTC)
commit f6a1c791e60947619b5c0bd4080d4edc2b96314e
Author: Xavier de Blas <xaviblas gmail com>
Date: Sat Jan 16 12:34:26 2021 +0100
overview win selects currentPerson on open
src/gui/app1/chronojump.cs | 8 ++++----
src/gui/overview.cs | 39 +++++++++++++++++++++++++++++++++++----
2 files changed, 39 insertions(+), 8 deletions(-)
---
diff --git a/src/gui/app1/chronojump.cs b/src/gui/app1/chronojump.cs
index c82e25ac..6162adf3 100644
--- a/src/gui/app1/chronojump.cs
+++ b/src/gui/app1/chronojump.cs
@@ -2709,19 +2709,19 @@ public partial class ChronoJumpWindow
private OverviewWindow overviewWin;
private void on_session_overview_clicked (object o, EventArgs args)
{
- if (currentSession == null)
+ if (currentSession == null || currentPerson == null)
return;
Constants.Menuitem_modes m = current_menuitem_mode;
if(m == Constants.Menuitem_modes.POWERGRAVITATORY || m ==
Constants.Menuitem_modes.POWERINERTIAL)
{
- overviewWin = EncoderOverviewWindow.Show (app1, currentEncoderGI,
currentSession.UniqueID);
+ overviewWin = EncoderOverviewWindow.Show (app1, currentEncoderGI,
currentSession.UniqueID, currentPerson.UniqueID);
}
else if(m == Constants.Menuitem_modes.FORCESENSOR)
- overviewWin = ForceSensorOverviewWindow.Show (app1, currentSession.UniqueID);
+ overviewWin = ForceSensorOverviewWindow.Show (app1, currentSession.UniqueID,
currentPerson.UniqueID);
else if(m == Constants.Menuitem_modes.RUNSENCODER)
- overviewWin = RunEncoderOverviewWindow.Show (app1, currentSession.UniqueID);
+ overviewWin = RunEncoderOverviewWindow.Show (app1, currentSession.UniqueID,
currentPerson.UniqueID);
overviewWin.Button_select_this_person.Clicked -= new EventHandler(on_overview_select_person);
overviewWin.Button_select_this_person.Clicked += new EventHandler(on_overview_select_person);
diff --git a/src/gui/overview.cs b/src/gui/overview.cs
index c3736c5e..44a7f4cc 100644
--- a/src/gui/overview.cs
+++ b/src/gui/overview.cs
@@ -36,9 +36,14 @@ public abstract class OverviewWindow
[Widget] protected Gtk.RadioButton radio_sets;
[Widget] protected Gtk.RadioButton radio_reps;
[Widget] protected Gtk.Button button_select_this_person;
-
+
+ //used by personIDAtStart, because we need to select the row after showing the window
+ protected TreeStore storeSets;
+ protected TreeStore storeReps; //note this is not used because right now we cannot have both
treeviews selected
+
protected enum treeviewType { SETS, REPS }
protected int sessionID;
+ protected int personIDAtStart;
protected int selectedPersonID;
protected void initialize()
@@ -68,6 +73,11 @@ public abstract class OverviewWindow
TreeStore store = getStore(tvType);
tv.Model = store;
+ if(tvType == treeviewType.SETS)
+ storeSets = store;
+ else if(tvType == treeviewType.REPS)
+ storeReps = store;
+
foreach (string [] line in array)
store.AppendValues (line);
@@ -119,6 +129,12 @@ public abstract class OverviewWindow
}
}
+ protected void selectRowWithID ()
+ {
+ if(personIDAtStart >= 0)
+ UtilGtk.TreeviewSelectRowWithID(treeview_sets, storeSets, 0, personIDAtStart, true);
//last boolean is 'scroll to row'
+ }
+
protected void on_radio_sets_toggled (object o, EventArgs args)
{
if(radio_sets.Active)
@@ -189,18 +205,23 @@ public class EncoderOverviewWindow : OverviewWindow
UtilGtk.WindowColor(overview_win, Config.ColorBackground);
}
- static public EncoderOverviewWindow Show (Gtk.Window parent, Constants.EncoderGI encoderGI, int
sessionID)
+ //if personIDAtStart == -1, there is not currentPerson
+ static public EncoderOverviewWindow Show (Gtk.Window parent, Constants.EncoderGI encoderGI, int
sessionID, int personIDAtStart)
{
if (EncoderOverviewWindowBox == null)
EncoderOverviewWindowBox = new EncoderOverviewWindow (parent);
EncoderOverviewWindowBox.encoderGI = encoderGI;
EncoderOverviewWindowBox.sessionID = sessionID;
+ EncoderOverviewWindowBox.personIDAtStart = personIDAtStart;
EncoderOverviewWindowBox.initialize();
EncoderOverviewWindowBox.hbox_radio_sets_repetitions.Visible = true;
EncoderOverviewWindowBox.overview_win.Show ();
+
+ //done after Show, to ensure the selected row is shown
+ EncoderOverviewWindowBox.selectRowWithID();
return EncoderOverviewWindowBox;
}
@@ -312,12 +333,14 @@ public class ForceSensorOverviewWindow : OverviewWindow
UtilGtk.WindowColor(overview_win, Config.ColorBackground);
}
- static public ForceSensorOverviewWindow Show (Gtk.Window parent, int sessionID)
+ //if personIDAtStart == -1, there is not currentPerson
+ static public ForceSensorOverviewWindow Show (Gtk.Window parent, int sessionID, int personIDAtStart)
{
if (ForceSensorOverviewWindowBox == null)
ForceSensorOverviewWindowBox = new ForceSensorOverviewWindow (parent);
ForceSensorOverviewWindowBox.sessionID = sessionID;
+ ForceSensorOverviewWindowBox.personIDAtStart = personIDAtStart;
ForceSensorOverviewWindowBox.initialize();
@@ -326,6 +349,9 @@ public class ForceSensorOverviewWindow : OverviewWindow
ForceSensorOverviewWindowBox.overview_win.Show ();
+ //done after Show, to ensure the selected row is shown
+ ForceSensorOverviewWindowBox.selectRowWithID();
+
return ForceSensorOverviewWindowBox;
}
@@ -372,12 +398,14 @@ public class RunEncoderOverviewWindow : OverviewWindow
UtilGtk.WindowColor(overview_win, Config.ColorBackground);
}
- static public RunEncoderOverviewWindow Show (Gtk.Window parent, int sessionID)
+ //if personIDAtStart == -1, there is not currentPerson
+ static public RunEncoderOverviewWindow Show (Gtk.Window parent, int sessionID, int personIDAtStart)
{
if (RunEncoderOverviewWindowBox == null)
RunEncoderOverviewWindowBox = new RunEncoderOverviewWindow (parent);
RunEncoderOverviewWindowBox.sessionID = sessionID;
+ RunEncoderOverviewWindowBox.personIDAtStart = personIDAtStart;
RunEncoderOverviewWindowBox.initialize();
@@ -386,6 +414,9 @@ public class RunEncoderOverviewWindow : OverviewWindow
RunEncoderOverviewWindowBox.overview_win.Show ();
+ //done after Show, to ensure the selected row is shown
+ RunEncoderOverviewWindowBox.selectRowWithID();
+
return RunEncoderOverviewWindowBox;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]