[chronojump] personSelectWin hide when open new win. Fixed updating persons treeview
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] personSelectWin hide when open new win. Fixed updating persons treeview
- Date: Tue, 20 Feb 2018 16:26:21 +0000 (UTC)
commit ef53b62eee5f30a071741b101b01fb694bf2d424
Author: Xavier de Blas <xaviblas gmail com>
Date: Tue Feb 20 17:24:11 2018 +0100
personSelectWin hide when open new win. Fixed updating persons treeview
glade/person_select_window.glade | 26 +++++++++++++++++-
src/gui/chronojump.cs | 55 ++++++++++++++++++--------------------
src/gui/chronojumpPersons.cs | 24 ++++++++++++++++
src/gui/person.cs | 25 +++++++++++++++--
src/gui/personSelect.cs | 19 +++++++++++-
src/treeViewPerson.cs | 5 +++
6 files changed, 119 insertions(+), 35 deletions(-)
---
diff --git a/glade/person_select_window.glade b/glade/person_select_window.glade
index e4f6e55..017f48a 100644
--- a/glade/person_select_window.glade
+++ b/glade/person_select_window.glade
@@ -2443,6 +2443,30 @@
<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>
</widget>
</child>
</widget>
@@ -2881,7 +2905,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <signal name="clicked" handler="on_button_cancel_clicked" swapped="no"/>
+ <signal name="clicked" handler="on_button_close_clicked" swapped="no"/>
<accelerator key="Escape" signal="clicked"/>
<child>
<widget class="GtkVBox" id="vbox7">
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index 2de8b10..7deb882 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -430,7 +430,8 @@ public partial class ChronoJumpWindow
PersonRecuperateWindow personRecuperateWin;
PersonsRecuperateFromOtherSessionWindow personsRecuperateFromOtherSessionWin;
PersonAddModifyWindow personAddModifyWin;
- PersonAddMultipleWindow personAddMultipleWin;
+ PersonAddMultipleWindow personAddMultipleWin;
+ PersonShowAllEventsWindow personShowAllEventsWin;
PersonSelectWindow personSelectWin;
JumpsMoreWindow jumpsMoreWin;
JumpsRjMoreWindow jumpsRjMoreWin;
@@ -1011,28 +1012,6 @@ public partial class ChronoJumpWindow
}
}
- void label_person_change()
- {
- label_top_person_name.Text = "<b>" + currentPerson.Name + "</b>";
- label_top_person_name.UseMarkup = true;
-
- label_top_encoder_person_name.Text = "<b>" + currentPerson.Name + "</b>";
- label_top_encoder_person_name.UseMarkup = true;
-
- string filenameMini = Util.UserPhotoURL(true, currentPerson.UniqueID);
- if(filenameMini != "")
- {
- Pixbuf pixbuf = new Pixbuf (filenameMini);
- image_current_person.Pixbuf = pixbuf;
- button_image_current_person_zoom.Sensitive = true;
- } else {
- //image_current_person.Pixbuf = null;
- Pixbuf pixbuf = new Pixbuf (null, Util.GetImagePath(false) + "image_no_photo.png");
- image_current_person.Pixbuf = pixbuf;
- button_image_current_person_zoom.Sensitive = false;
- }
- }
-
private void on_button_image_current_person_zoom_clicked(object o, EventArgs args)
{
new DialogImageTest(currentPerson.Name,
@@ -2596,7 +2575,10 @@ public partial class ChronoJumpWindow
}
if(person_load_single_called_from_person_select_window)
+ {
+ personRecuperateWin.HideAndNull();
updatePersonSelectWin ();
+ }
}
private void on_recuperate_persons_from_session_clicked (object o, EventArgs args) {
@@ -2633,7 +2615,7 @@ public partial class ChronoJumpWindow
private void person_add_single ()
{
- personAddModifyWin = PersonAddModifyWindow.Show(app1,
+ personAddModifyWin = PersonAddModifyWindow.Show(app1,
currentSession, new Person(-1),
preferences.digitsNumber, checkbutton_video, configChronojump.UseVideo
);
@@ -2787,9 +2769,10 @@ public partial class ChronoJumpWindow
}
}
-
- private void on_show_all_person_events_activate (object o, EventArgs args) {
- PersonShowAllEventsWindow.Show(app1, currentSession.UniqueID, currentPerson, true);
+
+ private void on_show_all_person_events_activate (object o, EventArgs args)
+ {
+ personShowAllEventsWin = PersonShowAllEventsWindow.Show(app1, currentSession.UniqueID,
currentPerson, true);
}
@@ -2860,18 +2843,31 @@ public partial class ChronoJumpWindow
private void on_button_top_person_edit_person(object o, EventArgs args)
{
currentPerson = personSelectWin.SelectedPerson;
+ personChanged();
person_edit_single_called_from_person_select_window = true;
person_edit_single();
}
private void on_button_top_person_show_all_events (object o, EventArgs args)
{
- Person thisPerson = personSelectWin.SelectedPerson;
- PersonShowAllEventsWindow.Show(app1, currentSession.UniqueID, thisPerson, false);
+ personShowAllEventsWin = PersonShowAllEventsWindow.Show(app1, currentSession.UniqueID,
currentPerson, false);
+ personShowAllEventsWin.FakeButtonDone.Clicked -= new
EventHandler(on_person_show_all_persons_event_close);
+ personShowAllEventsWin.FakeButtonDone.Clicked += new
EventHandler(on_person_show_all_persons_event_close);
}
+ private void on_person_show_all_persons_event_close (object o, EventArgs args)
+ {
+ personShowAllEventsWin.FakeButtonDone.Clicked -= new
EventHandler(on_person_show_all_persons_event_close);
+
+ ArrayList myPersons = SqlitePersonSession.SelectCurrentSessionPersons(
+ currentSession.UniqueID,
+ false); //means: do not returnPersonAndPSlist
+ personSelectWin.Update(myPersons);
+ }
+
private void on_button_top_person_delete_person(object o, EventArgs args)
{
currentPerson = personSelectWin.SelectedPerson;
+ personChanged();
//without confirm, because it's already confirmed on PersonSelect
on_delete_current_person_from_session_accepted (o, args);
@@ -2889,6 +2885,7 @@ public partial class ChronoJumpWindow
label_person_change();
personChanged();
+ myTreeViewPersons.SelectRowByUniqueID(currentPerson.UniqueID);
}
diff --git a/src/gui/chronojumpPersons.cs b/src/gui/chronojumpPersons.cs
index bcfdbaa..5c88484 100644
--- a/src/gui/chronojumpPersons.cs
+++ b/src/gui/chronojumpPersons.cs
@@ -22,6 +22,7 @@
using System;
using Gtk;
+using Gdk;
using Glade;
public partial class ChronoJumpWindow
@@ -64,4 +65,27 @@ public partial class ChronoJumpWindow
hbox_persons_bottom_photo.Visible = showPhoto;
hbox_persons_bottom_no_photo.Visible = ! showPhoto;
}
+
+ private void label_person_change()
+ {
+ label_top_person_name.Text = "<b>" + currentPerson.Name + "</b>";
+ label_top_person_name.UseMarkup = true;
+
+ label_top_encoder_person_name.Text = "<b>" + currentPerson.Name + "</b>";
+ label_top_encoder_person_name.UseMarkup = true;
+
+ string filenameMini = Util.UserPhotoURL(true, currentPerson.UniqueID);
+ if(filenameMini != "")
+ {
+ Pixbuf pixbuf = new Pixbuf (filenameMini);
+ image_current_person.Pixbuf = pixbuf;
+ button_image_current_person_zoom.Sensitive = true;
+ } else {
+ //image_current_person.Pixbuf = null;
+ Pixbuf pixbuf = new Pixbuf (null, Util.GetImagePath(false) + "image_no_photo.png");
+ image_current_person.Pixbuf = pixbuf;
+ button_image_current_person_zoom.Sensitive = false;
+ }
+ }
+
}
diff --git a/src/gui/person.cs b/src/gui/person.cs
index 9fab353..b14baec 100644
--- a/src/gui/person.cs
+++ b/src/gui/person.cs
@@ -206,6 +206,15 @@ public class PersonRecuperateWindow {
}
}
+ //if called from personRecuperateWindow
+ public void HideAndNull()
+ {
+ if(PersonRecuperateWindowBox.person_recuperate != null)
+ PersonRecuperateWindowBox.person_recuperate.Hide();
+
+ if(PersonRecuperateWindowBox != null)
+ PersonRecuperateWindowBox = null;
+ }
protected virtual void on_button_close_clicked (object o, EventArgs args)
{
@@ -263,7 +272,7 @@ public class PersonRecuperateWindow {
}
}
- public Button FakeButtonDone
+ public Button FakeButtonDone
{
set { fakeButtonDone = value; }
get { return fakeButtonDone; }
@@ -770,7 +779,7 @@ public class PersonNotUploadWindow : PersonsRecuperateFromOtherSessionWindow
on_button_close_clicked (o, new EventArgs());
}
- public new Button FakeButtonDone
+ public new Button FakeButtonDone
{
set { fakeButtonDone = value; }
get { return fakeButtonDone; }
@@ -2503,6 +2512,8 @@ public class PersonShowAllEventsWindow
[Widget] Gtk.Box hbox_combo_persons;
[Widget] Gtk.ComboBox combo_persons;
+ public Gtk.Button fakeButtonDone;
+
TreeStore store;
static PersonShowAllEventsWindow PersonShowAllEventsWindowBox;
@@ -2523,6 +2534,8 @@ public class PersonShowAllEventsWindow
this.sessionID = sessionID;
this.currentPerson = currentPerson;
+ fakeButtonDone = new Gtk.Button();
+
label_person_name.Text = currentPerson.Name;
createComboPersons(sessionID, currentPerson.UniqueID.ToString(), currentPerson.Name);
createTreeView(treeview_person_show_all_events);
@@ -2633,17 +2646,23 @@ public class PersonShowAllEventsWindow
myStr[6], myStr[7], myStr[8], myStr[9], myStr[10], myStr[11]);
}
}
-
protected virtual void on_button_close_clicked (object o, EventArgs args)
{
+ fakeButtonDone.Click();
PersonShowAllEventsWindowBox.person_show_all_events.Hide();
PersonShowAllEventsWindowBox = null;
}
protected virtual void on_delete_event (object o, DeleteEventArgs args)
{
+ fakeButtonDone.Click();
PersonShowAllEventsWindowBox.person_show_all_events.Hide();
PersonShowAllEventsWindowBox = null;
}
+
+ public Button FakeButtonDone
+ {
+ get { return fakeButtonDone; }
+ }
}
diff --git a/src/gui/personSelect.cs b/src/gui/personSelect.cs
index b61908e..b9972b0 100644
--- a/src/gui/personSelect.cs
+++ b/src/gui/personSelect.cs
@@ -101,6 +101,12 @@ public class PersonSelectWindow
return PersonSelectWindowBox;
}
+ //from main gui to not change SelectedPerson
+ public void Update(ArrayList persons)
+ {
+ Update(persons, SelectedPerson);
+ }
+ //from main gui to change SelectedPerson or from this class
public void Update(ArrayList persons, Person currentPerson)
{
this.persons = persons;
@@ -117,6 +123,9 @@ public class PersonSelectWindow
LogB.Debug("Recreating table");
createTable();
table1.Visible = true;
+
+ if(! person_select_window.Visible)
+ person_select_window.Visible = true;
}
private void removeTable()
@@ -240,17 +249,22 @@ public class PersonSelectWindow
button_delete.Sensitive = sensitive;
}
- private void on_button_add_clicked (object o, EventArgs args) {
+ private void on_button_add_clicked (object o, EventArgs args)
+ {
+ person_select_window.Visible = false;
FakeButtonAddPerson.Click();
}
private void on_button_load_clicked (object o, EventArgs args) {
+ person_select_window.Visible = false;
FakeButtonLoadPerson.Click();
}
private void on_button_edit_clicked (object o, EventArgs args) {
+ person_select_window.Visible = false;
FakeButtonEditPerson.Click();
}
private void on_button_show_all_events_clicked (object o, EventArgs args) {
+ person_select_window.Visible = false;
FakeButtonPersonShowAllEvents.Click();
}
@@ -305,7 +319,8 @@ public class PersonSelectWindow
}
//ESC is enabled
- private void on_button_cancel_clicked (object o, EventArgs args) {
+ private void on_button_close_clicked (object o, EventArgs args)
+ {
close_window();
}
diff --git a/src/treeViewPerson.cs b/src/treeViewPerson.cs
index 13d2026..0a92299 100644
--- a/src/treeViewPerson.cs
+++ b/src/treeViewPerson.cs
@@ -198,6 +198,11 @@ public class TreeViewPersons
return found;
}
+ public void SelectRowByUniqueID(int personID)
+ {
+ SelectRow(FindRow(personID));
+ }
+
public void SelectNextRow(int personID)
{
SelectRow(FindRow(personID) +1);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]