[gitg/gnome-3-20] Disconnect/reconnect model on clear



commit f4509e8b9beb474c9090afe3b46525a9e003a720
Author: Jesse van den Kieboom <jessevdk gnome org>
Date:   Sun Aug 14 10:25:08 2016 +0200

    Disconnect/reconnect model on clear
    
    https://bugzilla.gnome.org/show_bug.cgi?id=768651

 gitg/history/gitg-history.vala |   13 +++++++++++++
 libgitg/gitg-commit-model.vala |    7 +++++++
 2 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/gitg/history/gitg-history.vala b/gitg/history/gitg-history.vala
index 5fd0a36..2093226 100644
--- a/gitg/history/gitg-history.vala
+++ b/gitg/history/gitg-history.vala
@@ -296,6 +296,16 @@ namespace GitgHistory
                        scroll_into_view();
                }
 
+               private void on_commit_model_begin_clear(Gitg.CommitModel model)
+               {
+                       d_main.commit_list_view.model = null;
+               }
+
+               private void on_commit_model_end_clear(Gitg.CommitModel model)
+               {
+                       d_main.commit_list_view.model = d_commit_list_model;
+               }
+
                public bool available
                {
                        get { return true; }
@@ -563,6 +573,9 @@ namespace GitgHistory
                                                  BindingFlags.SYNC_CREATE);
 
                        d_main.commit_list_view.set_search_equal_func(search_filter_func);
+
+                       d_commit_list_model.begin_clear.connect(on_commit_model_begin_clear);
+                       d_commit_list_model.end_clear.connect(on_commit_model_end_clear);
                }
 
                private void update_walker_idle()
diff --git a/libgitg/gitg-commit-model.vala b/libgitg/gitg-commit-model.vala
index 9666a69..7964e51 100644
--- a/libgitg/gitg-commit-model.vala
+++ b/libgitg/gitg-commit-model.vala
@@ -119,6 +119,9 @@ namespace Gitg
                public signal void update(uint added);
                public signal void finished();
 
+               public signal void begin_clear();
+               public signal void end_clear();
+
                public CommitModel(Repository? repository)
                {
                        Object(repository: repository);
@@ -470,6 +473,8 @@ namespace Gitg
 
                private void clear()
                {
+                       begin_clear();
+
                        // Remove all
                        var path = new Gtk.TreePath.from_indices(d_size);
 
@@ -482,6 +487,8 @@ namespace Gitg
                        }
 
                        ++d_stamp;
+
+                       end_clear();
                }
 
                private void emit_update(uint added)


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