[gitg] Implement activating commit list headers



commit 9c3176353c9c26939279f73fb5564c33522ffe9b
Author: Jesse van den Kieboom <jessevdk gnome org>
Date:   Sat Jul 12 11:25:06 2014 +0200

    Implement activating commit list headers

 gitg/commit/gitg-commit.vala |   61 +++++++++++++++++++++++++----------------
 1 files changed, 37 insertions(+), 24 deletions(-)
---
diff --git a/gitg/commit/gitg-commit.vala b/gitg/commit/gitg-commit.vala
index 9ed60a2..9cbf228 100644
--- a/gitg/commit/gitg-commit.vala
+++ b/gitg/commit/gitg-commit.vala
@@ -372,6 +372,10 @@ namespace GitgCommit
 
                                var staged_header = model.begin_header(_("Staged"), 
(uint)Sidebar.File.Type.STAGED);
 
+                               staged_header.activated.connect((numclick) => {
+                                       on_unstage_selected_items();
+                               });
+
                                var current_staged = new Sidebar.File[0];
                                var current_unstaged = new Sidebar.File[0];
 
@@ -394,6 +398,10 @@ namespace GitgCommit
 
                                var unstaged_header = model.begin_header(_("Unstaged"), 
(uint)Sidebar.File.Type.UNSTAGED);
 
+                               unstaged_header.activated.connect((numclick) => {
+                                       on_stage_selected_items();
+                               });
+
                                if (unstaged.length == 0)
                                {
                                        model.append_dummy(_("No unstaged files"));
@@ -1053,6 +1061,33 @@ namespace GitgCommit
                        }
                }
 
+               private void on_stage_selected_items()
+               {
+                       var sel = d_main.sidebar.get_selected_items<Gitg.SidebarItem>();
+                       Sidebar.File.Type type;
+
+                       var files = files_for_items(sel, out type);
+
+                       if (files.length != 0 && (type == Sidebar.File.Type.UNSTAGED ||
+                                                 type == Sidebar.File.Type.UNTRACKED))
+                       {
+                               on_unstaged_activated(files);
+                       }
+               }
+
+               private void on_unstage_selected_items()
+               {
+                       var sel = d_main.sidebar.get_selected_items<Gitg.SidebarItem>();
+                       Sidebar.File.Type type;
+
+                       var files = files_for_items(sel, out type);
+
+                       if (files.length != 0 && type == Sidebar.File.Type.STAGED)
+                       {
+                               on_staged_activated(files);
+                       }
+               }
+
                private void build_ui()
                {
                        d_main = new Paned();
@@ -1068,30 +1103,8 @@ namespace GitgCommit
                                d_main.diff_view.diff = null;
                        });
 
-                       d_main.sidebar.stage_selection.connect(() => {
-                               var sel = d_main.sidebar.get_selected_items<Gitg.SidebarItem>();
-                               Sidebar.File.Type type;
-
-                               var files = files_for_items(sel, out type);
-
-                               if (files.length != 0 && (type == Sidebar.File.Type.UNSTAGED ||
-                                                         type == Sidebar.File.Type.UNTRACKED))
-                               {
-                                       on_unstaged_activated(files);
-                               }
-                       });
-
-                       d_main.sidebar.unstage_selection.connect(() => {
-                               var sel = d_main.sidebar.get_selected_items<Gitg.SidebarItem>();
-                               Sidebar.File.Type type;
-
-                               var files = files_for_items(sel, out type);
-
-                               if (files.length != 0 && type == Sidebar.File.Type.STAGED)
-                               {
-                                       on_staged_activated(files);
-                               }
-                       });
+                       d_main.sidebar.stage_selection.connect(on_stage_selected_items);
+                       d_main.sidebar.unstage_selection.connect(on_unstage_selected_items);
 
                        d_main.sidebar.discard_selection.connect(() => {
                                var sel = d_main.sidebar.get_selected_items<Gitg.SidebarItem>();


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