[gitg] Disconnect/reconnect model on clear
- From: Jesse van den Kieboom <jessevdk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gitg] Disconnect/reconnect model on clear
- Date: Sun, 14 Aug 2016 08:26:58 +0000 (UTC)
commit 2b9fade23bc3dc0d2d0e3c2b3f5c0b44684bb452
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]