[chronojump] Person can be deleted from PersonSelect (tablets)



commit 02c1dcac4ea871ffef8ea2e997f88604980d7eb2
Author: Xavier de Blas <xaviblas gmail com>
Date:   Fri Feb 12 00:57:50 2016 +0100

    Person can be deleted from PersonSelect (tablets)

 glade/chronojump.glade  |  198 +++++++++++++++++++++++++++++++++++++++++++++-
 src/gui/chronojump.cs   |   16 ++++
 src/gui/personSelect.cs |   55 ++++++++++---
 3 files changed, 252 insertions(+), 17 deletions(-)
---
diff --git a/glade/chronojump.glade b/glade/chronojump.glade
index 79f743f..f002bd9 100644
--- a/glade/chronojump.glade
+++ b/glade/chronojump.glade
@@ -7964,6 +7964,9 @@ after time</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             </child>
                                                             <child>
@@ -9462,6 +9465,9 @@ after time</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="position">2</property>
@@ -10601,6 +10607,9 @@ after time</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="position">4</property>
@@ -18817,6 +18826,9 @@ on current Chronojump version.</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
@@ -23374,6 +23386,9 @@ by you</property>
                         <child>
                           <placeholder/>
                         </child>
+                        <child>
+                          <placeholder/>
+                        </child>
                       </widget>
                     </child>
                   </widget>
@@ -24412,6 +24427,9 @@ by you</property>
                         <child>
                           <placeholder/>
                         </child>
+                        <child>
+                          <placeholder/>
+                        </child>
                       </widget>
                     </child>
                   </widget>
@@ -25942,6 +25960,9 @@ by you</property>
               <placeholder/>
             </child>
             <child>
+              <placeholder/>
+            </child>
+            <child>
               <widget class="GtkButton" id="button_video_url">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
@@ -26529,6 +26550,9 @@ by you</property>
             <child>
               <placeholder/>
             </child>
+            <child>
+              <placeholder/>
+            </child>
           </widget>
           <packing>
             <property name="expand">True</property>
@@ -38659,6 +38683,24 @@ options</property>
                             <child>
                               <placeholder/>
                             </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
                           </widget>
                         </child>
                       </widget>
@@ -40774,6 +40816,18 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
                     <child>
                       <placeholder/>
                     </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
                   </widget>
                 </child>
               </widget>
@@ -40793,7 +40847,7 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
               <widget class="GtkVBox" id="vbox2">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="spacing">20</property>
+                <property name="spacing">14</property>
                 <child>
                   <widget class="GtkLabel" id="label_selected_person_name">
                     <property name="visible">True</property>
@@ -40870,6 +40924,7 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="stock">gtk-edit</property>
+                            <property name="icon-size">3</property>
                           </widget>
                           <packing>
                             <property name="expand">True</property>
@@ -40895,10 +40950,132 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
-                    <property name="pack_type">end</property>
                     <property name="position">2</property>
                   </packing>
                 </child>
+                <child>
+                  <widget class="GtkVBox" id="vbox8">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="spacing">4</property>
+                    <child>
+                      <widget class="GtkButton" id="button_delete">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <signal name="clicked" handler="on_button_delete_clicked" swapped="no"/>
+                        <child>
+                          <widget class="GtkVBox" id="vbox9">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">4</property>
+                            <child>
+                              <widget class="GtkImage" id="image5">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="stock">gtk-remove</property>
+                                <property name="icon-size">3</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label5">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Delete</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkVBox" id="vbox_button_delete_confirm">
+                        <property name="can_focus">False</property>
+                        <property name="spacing">4</property>
+                        <child>
+                          <widget class="GtkLabel" id="label6">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Are you sure?</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkHBox" id="hbox2">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">4</property>
+                            <child>
+                              <widget class="GtkButton" id="button_delete_yes">
+                                <property name="label">gtk-yes</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="use_stock">True</property>
+                                <signal name="clicked" handler="on_button_delete_yes_clicked" swapped="no"/>
+                              </widget>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkButton" id="button_delete_no">
+                                <property name="label">gtk-no</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="use_stock">True</property>
+                                <signal name="clicked" handler="on_button_delete_no_clicked" swapped="no"/>
+                              </widget>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">3</property>
+                  </packing>
+                </child>
               </widget>
               <packing>
                 <property name="expand">False</property>
@@ -40927,6 +41104,7 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="stock">gtk-add</property>
+                            <property name="icon-size">3</property>
                           </widget>
                           <packing>
                             <property name="expand">True</property>
@@ -40972,6 +41150,7 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="stock">gtk-cancel</property>
+                            <property name="icon-size">3</property>
                           </widget>
                           <packing>
                             <property name="expand">True</property>
@@ -42036,9 +42215,6 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
                                       <placeholder/>
                                     </child>
                                     <child>
-                                      <placeholder/>
-                                    </child>
-                                    <child>
                                       <widget class="GtkLabel" id="label218">
                                         <property name="visible">True</property>
                                         <property name="can_focus">False</property>
@@ -43076,6 +43252,9 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
                                     <child>
                                       <placeholder/>
                                     </child>
+                                    <child>
+                                      <placeholder/>
+                                    </child>
                                   </widget>
                                 </child>
                               </widget>
@@ -46886,6 +47065,9 @@ It starts before and arrives there with some speed.</property>
                         <child>
                           <placeholder/>
                         </child>
+                        <child>
+                          <placeholder/>
+                        </child>
                       </widget>
                       <packing>
                         <property name="left_attach">2</property>
@@ -47588,6 +47770,9 @@ It starts before and arrives there with some speed.</property>
                     <child>
                       <placeholder/>
                     </child>
+                    <child>
+                      <placeholder/>
+                    </child>
                   </widget>
                 </child>
               </widget>
@@ -48305,6 +48490,9 @@ It starts before and arrives there with some speed.</property>
                     <child>
                       <placeholder/>
                     </child>
+                    <child>
+                      <placeholder/>
+                    </child>
                   </widget>
                 </child>
               </widget>
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index 102a879..e0da825 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -2855,6 +2855,7 @@ public partial class ChronoJumpWindow
                personSelectWin = PersonSelectWindow.Show(app1, myPersons);
                personSelectWin.FakeButtonAddPerson.Clicked += new 
EventHandler(on_button_encoder_person_add_person);
                personSelectWin.FakeButtonEditPerson.Clicked += new 
EventHandler(on_button_encoder_person_edit_person);
+               personSelectWin.FakeButtonDeletePerson.Clicked += new 
EventHandler(on_button_encoder_person_delete_person);
                personSelectWin.FakeButtonDone.Clicked += new 
EventHandler(on_button_encoder_person_change_done);
        }
        private void on_button_encoder_person_add_person(object o, EventArgs args)
@@ -2869,6 +2870,19 @@ public partial class ChronoJumpWindow
                person_edit_single_called_from_person_select_window = true;
                person_edit_single();
        }
+       private void on_button_encoder_person_delete_person(object o, EventArgs args)
+       {
+               currentPerson = personSelectWin.SelectedPerson;
+               
+               //without confirm, because it's already confirmed on PersonSelect
+               on_delete_current_person_from_session_accepted (o, args);
+                               
+               ArrayList myPersons = SqlitePersonSession.SelectCurrentSessionPersons(
+                               currentSession.UniqueID, 
+                               false); //means: do not returnPersonAndPSlist
+               personSelectWin.Update(myPersons);
+               personSelectWin.Button_delete_confirm_focus(false, false);
+       }
        private void on_button_encoder_person_change_done(object o, EventArgs args) 
        {
                currentPerson = personSelectWin.SelectedPerson; 
@@ -6412,6 +6426,8 @@ LogB.Debug("X");
                
                menuPersonSelectedSensitive(false);
                vbox_execute_test.Sensitive = false;
+
+               label_encoder_person_name.Text = "";
        }
        
        private void sensitiveGuiYesPerson () {
diff --git a/src/gui/personSelect.cs b/src/gui/personSelect.cs
index 7213192..431b4a5 100644
--- a/src/gui/personSelect.cs
+++ b/src/gui/personSelect.cs
@@ -31,7 +31,10 @@ public class PersonSelectWindow
        [Widget] Gtk.Table table1;
        [Widget] Gtk.Button button_select;
        [Widget] Gtk.Button button_edit;
+       [Widget] Gtk.Button button_delete;
+       [Widget] Gtk.VBox vbox_button_delete_confirm;
        [Widget] Gtk.Label label_selected_person_name;
+       [Widget] Gtk.Button button_add;
        
        static PersonSelectWindow PersonSelectWindowBox;
        Gtk.Window parent;
@@ -40,6 +43,7 @@ public class PersonSelectWindow
        public Person SelectedPerson;
        public Gtk.Button FakeButtonAddPerson;
        public Gtk.Button FakeButtonEditPerson;
+       public Gtk.Button FakeButtonDeletePerson;
        public Gtk.Button FakeButtonDone;
 
        
@@ -53,6 +57,7 @@ public class PersonSelectWindow
                
                FakeButtonAddPerson = new Gtk.Button();
                FakeButtonEditPerson = new Gtk.Button();
+               FakeButtonDeletePerson = new Gtk.Button();
                FakeButtonDone = new Gtk.Button();
        }
        
@@ -82,11 +87,8 @@ public class PersonSelectWindow
                LogB.Debug("Recreating table");
                createTable();
                table1.Visible = true;
-                               
-               button_select.Sensitive = false;
-               button_edit.Sensitive = false;
        }
-       
+
        private void removeTable() 
        {
                Array buttons = table1.Children;
@@ -102,8 +104,10 @@ public class PersonSelectWindow
                uint rows = Convert.ToUInt32(Math.Floor(persons.Count / (1.0 * cols) ) +1);
                int count = 0;
                
-               button_select.Sensitive = false;
-               button_edit.Sensitive = false;
+               label_selected_person_name.Text = "";
+               SelectedPerson = null;
+               personButtonsSensitive(false);
+               vbox_button_delete_confirm.Visible = false;
                
                for (int row_i = 0; row_i < rows; row_i ++) {
                        for (int col_i = 0; col_i < cols; col_i ++) 
@@ -148,30 +152,57 @@ public class PersonSelectWindow
                                SelectedPerson = p;
                                label_selected_person_name.Text = p.Name;
 
-                               button_select.Sensitive = true;
-                               button_edit.Sensitive = true;
+                               personButtonsSensitive(true);
                        }
        }
        
-       protected virtual void on_button_select_clicked (object o, EventArgs args) {
+       private void personButtonsSensitive(bool sensitive) {
+               button_select.Sensitive = sensitive;
+               button_edit.Sensitive = sensitive;
+               button_delete.Sensitive = sensitive;
+       }
+       
+       
+       private void on_button_select_clicked (object o, EventArgs args) {
                FakeButtonDone.Click();
                close_window();
        }
        
-       protected virtual void on_button_add_clicked (object o, EventArgs args) {
+       private void on_button_add_clicked (object o, EventArgs args) {
                FakeButtonAddPerson.Click();
        }
-       protected virtual void on_button_edit_clicked (object o, EventArgs args) {
+       private void on_button_edit_clicked (object o, EventArgs args) {
                FakeButtonEditPerson.Click();
        }
 
+
+       //delete person stuff   
+       private void on_button_delete_clicked (object o, EventArgs args) {
+               Button_delete_confirm_focus(true, false);
+       }
+       private void on_button_delete_no_clicked (object o, EventArgs args) {
+               Button_delete_confirm_focus(false, true);
+       }
+       private void on_button_delete_yes_clicked (object o, EventArgs args) {
+               FakeButtonDeletePerson.Click();
+       }
+       public void Button_delete_confirm_focus(bool doFocus, bool sensitivePersonButtons) {
+               vbox_button_delete_confirm.Visible = doFocus;
+               table1.Sensitive = ! doFocus;
+               button_add.Sensitive = ! doFocus;
+               
+               personButtonsSensitive(sensitivePersonButtons);
+       }
+       //end of delete person stuff    
+
+
        private void close_window() {   
                PersonSelectWindowBox.person_select_window.Hide();
                PersonSelectWindowBox = null;
        }
        
        //ESC is enabled
-       protected virtual void on_button_cancel_clicked (object o, EventArgs args) {
+       private void on_button_cancel_clicked (object o, EventArgs args) {
                close_window();
        }
        


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