[chronojump] person top window can load persons from other session



commit 253f8c669764fc93b4409d417260fd8d0666f365
Author: Xavier de Blas <xaviblas gmail com>
Date:   Thu Apr 26 18:15:01 2018 +0200

    person top window can load persons from other session

 glade/app1.glade        |    2 +-
 src/gui/chronojump.cs   |   21 ++++++++++++++++++++-
 src/gui/person.cs       |   11 ++++++++++-
 src/gui/personSelect.cs |    6 ++++--
 4 files changed, 35 insertions(+), 5 deletions(-)
---
diff --git a/glade/app1.glade b/glade/app1.glade
index 4bb0b94..16ee89c 100644
--- a/glade/app1.glade
+++ b/glade/app1.glade
@@ -2796,7 +2796,7 @@ EncoderInertialCapture</property>
                                                             <property name="has_tooltip">True</property>
                                                             <property name="tooltip" translatable="yes">Load 
persons from other session</property>
                                                             <property name="relief">half</property>
-                                                            <signal name="clicked" 
handler="on_recuperate_persons_from_session_clicked" swapped="no"/>
+                                                            <signal name="clicked" 
handler="on_recuperate_persons_from_session_at_main_gui" swapped="no"/>
                                                             <child>
                                                             <widget class="GtkVBox" id="vbox99">
                                                             <property name="visible">True</property>
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index 74a5984..e0b4844 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -2607,7 +2607,14 @@ public partial class ChronoJumpWindow
                }
        }
                
-       private void on_recuperate_persons_from_session_clicked (object o, EventArgs args) {
+       bool person_load_multiple_called_from_person_select_window;
+       private void on_recuperate_persons_from_session_at_main_gui (object o, EventArgs args)
+       {
+               person_load_multiple_called_from_person_select_window = false;
+               person_load_multiple();
+       }
+
+       private void person_load_multiple () {
                LogB.Information("recuperate persons from other session");
                personsRecuperateFromOtherSessionWin = PersonsRecuperateFromOtherSessionWindow.Show(app1, 
currentSession);
                personsRecuperateFromOtherSessionWin.FakeButtonDone.Clicked += new 
EventHandler(on_recuperate_persons_from_session_accepted);
@@ -2625,6 +2632,12 @@ public partial class ChronoJumpWindow
                        selectRowTreeView_persons(treeview_persons, rowToSelect);
                        sensitiveGuiYesPerson();
                }
+
+               if(person_load_multiple_called_from_person_select_window)
+               {
+                       personsRecuperateFromOtherSessionWin.HideAndNull();
+                       updatePersonSelectWin ();
+               }
        }
 
        [Widget] Gtk.VBox vbox_manage_persons;
@@ -2866,6 +2879,7 @@ public partial class ChronoJumpWindow
                personSelectWin.FakeButtonAddPerson.Clicked += new 
EventHandler(on_button_top_person_add_person);
                personSelectWin.FakeButtonAddPersonMultiple.Clicked += new 
EventHandler(on_button_top_person_add_person_multiple);
                personSelectWin.FakeButtonLoadPerson.Clicked += new 
EventHandler(on_button_top_person_load_person);
+               personSelectWin.FakeButtonLoadPersonMultiple.Clicked += new 
EventHandler(on_button_top_person_load_person_multiple);
                personSelectWin.FakeButtonEditPerson.Clicked += new 
EventHandler(on_button_top_person_edit_person);
                personSelectWin.FakeButtonPersonShowAllEvents.Clicked += new 
EventHandler(on_button_top_person_show_all_events);
                personSelectWin.FakeButtonDeletePerson.Clicked += new 
EventHandler(on_button_top_person_delete_person);
@@ -2886,6 +2900,11 @@ public partial class ChronoJumpWindow
                person_load_single_called_from_person_select_window = true;
                person_load_single();
        }
+       private void on_button_top_person_load_person_multiple(object o, EventArgs args)
+       {
+               person_load_multiple_called_from_person_select_window = true;
+               person_load_multiple();
+       }
        private void on_button_top_person_edit_person(object o, EventArgs args)
        {
                currentPerson = personSelectWin.SelectedPerson; 
diff --git a/src/gui/person.cs b/src/gui/person.cs
index 051f591..fe26c41 100644
--- a/src/gui/person.cs
+++ b/src/gui/person.cs
@@ -207,7 +207,7 @@ public class PersonRecuperateWindow {
        }
 
        //if called from personRecuperateWindow
-       public void HideAndNull()
+       public virtual void HideAndNull()
        {
                if(PersonRecuperateWindowBox != null)
                        PersonRecuperateWindowBox.person_recuperate.Hide();
@@ -622,6 +622,15 @@ public class PersonsRecuperateFromOtherSessionWindow : PersonRecuperateWindow
                buttonRecuperateChangeSensitiveness();
        }
 
+       public override void HideAndNull()
+       {
+               if(PersonsRecuperateFromOtherSessionWindowBox != null)
+                       PersonsRecuperateFromOtherSessionWindowBox.person_recuperate.Hide();
+
+               if(PersonsRecuperateFromOtherSessionWindowBox != null)
+                       PersonsRecuperateFromOtherSessionWindowBox = null;
+       }
+
 }
 
 
diff --git a/src/gui/personSelect.cs b/src/gui/personSelect.cs
index 26ab981..7f7a83b 100644
--- a/src/gui/personSelect.cs
+++ b/src/gui/personSelect.cs
@@ -61,6 +61,7 @@ public class PersonSelectWindow
        public Gtk.Button FakeButtonAddPerson;
        public Gtk.Button FakeButtonAddPersonMultiple;
        public Gtk.Button FakeButtonLoadPerson;
+       public Gtk.Button FakeButtonLoadPersonMultiple;
        public Gtk.Button FakeButtonEditPerson;
        public Gtk.Button FakeButtonPersonShowAllEvents;
        public Gtk.Button FakeButtonDeletePerson;
@@ -83,6 +84,7 @@ public class PersonSelectWindow
                FakeButtonAddPerson = new Gtk.Button();
                FakeButtonAddPersonMultiple = new Gtk.Button();
                FakeButtonLoadPerson = new Gtk.Button();
+               FakeButtonLoadPersonMultiple = new Gtk.Button();
                FakeButtonEditPerson = new Gtk.Button();
                FakeButtonPersonShowAllEvents = new Gtk.Button();
                FakeButtonDeletePerson = new Gtk.Button();
@@ -320,10 +322,10 @@ public class PersonSelectWindow
        }
        private void on_button_recuperate_persons_from_session_clicked (object o, EventArgs args)
        {
-               new DialogMessage(Constants.MessageTypes.INFO, "TODO");
+               person_select_window.Visible = false;
+               FakeButtonLoadPersonMultiple.Click();
        }
 
-
        private void on_button_edit_clicked (object o, EventArgs args) {
                person_select_window.Visible = false;
                FakeButtonEditPerson.Click();


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]