[chronojump] sensitize button_persons_up/_down depending on existence on persons and which is selected



commit d789be18cd3e57cf4c6a8f42212d924ea8b62a36
Author: Xavier de Blas <xaviblas gmail com>
Date:   Thu May 14 13:41:31 2020 +0200

    sensitize button_persons_up/_down depending on existence on persons and which is selected

 src/gui/app1/chronojump.cs | 17 +++++++++++++----
 src/treeview/person.cs     | 10 ++++++++++
 2 files changed, 23 insertions(+), 4 deletions(-)
---
diff --git a/src/gui/app1/chronojump.cs b/src/gui/app1/chronojump.cs
index 5795f7a6..7ad19609 100644
--- a/src/gui/app1/chronojump.cs
+++ b/src/gui/app1/chronojump.cs
@@ -1082,7 +1082,8 @@ public partial class ChronoJumpWindow
        }
        
        //private void on_treeview_persons_cursor_changed (object o, EventArgs args) {
-       private void onTreeviewPersonsSelectionEntry (object o, EventArgs args) {
+       private void onTreeviewPersonsSelectionEntry (object o, EventArgs args)
+       {
                TreeModel model;
                TreeIter iter;
 
@@ -1094,7 +1095,9 @@ public partial class ChronoJumpWindow
                        currentPersonSession = SqlitePersonSession.Select(Convert.ToInt32(selectedID), 
currentSession.UniqueID);
                        label_person_change();
        
-                       personChanged();        
+                       personChanged();
+                       button_persons_up.Sensitive = ! myTreeViewPersons.IsFirst(currentPerson.UniqueID);
+                       button_persons_down.Sensitive = ! myTreeViewPersons.IsLast(currentPerson.UniqueID);
                }
        }
 
@@ -6918,8 +6921,14 @@ LogB.Debug("mc finished 5");
        
        private void menuPersonSelectedSensitive(bool option)
        {
-               button_persons_up.Sensitive = option;
-               button_persons_down.Sensitive = option;
+               if(! option || currentPerson == null)
+               {
+                       button_persons_up.Sensitive = false;
+                       button_persons_down.Sensitive = false;
+               } else {
+                       button_persons_up.Sensitive = ! myTreeViewPersons.IsFirst(currentPerson.UniqueID);
+                       button_persons_down.Sensitive = ! myTreeViewPersons.IsLast(currentPerson.UniqueID);
+               }
 
                hbox_persons_bottom_photo.Sensitive = option;
                hbox_persons_bottom_no_photo.Sensitive = option;
diff --git a/src/treeview/person.cs b/src/treeview/person.cs
index 0a922991..30940725 100644
--- a/src/treeview/person.cs
+++ b/src/treeview/person.cs
@@ -217,6 +217,16 @@ public class TreeViewPersons
                return(store.IterNChildren());
        }
 
+       public bool IsFirst(int personID)
+       {
+               return (FindRow(personID) <= 0);
+       }
+
+       public bool IsLast(int personID)
+       {
+               return (FindRow(personID) == CountRows() -1);
+       }
+
        
        //add in the row position by alfabetical order
        public void Add (string jumperID, string jumperName)


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