From ac5ce8f17de76f45659ab9b36108028fdf14fa0b Mon Sep 17 00:00:00 2001 From: Alan Knowles Date: Wed, 27 Sep 2017 14:33:40 +0800 Subject: [PATCH] StatusIcon.vala --- StatusIcon.vala | 77 ++++++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 40 deletions(-) diff --git a/StatusIcon.vala b/StatusIcon.vala index feace504..a4f5cfdd 100644 --- a/StatusIcon.vala +++ b/StatusIcon.vala @@ -301,60 +301,57 @@ public class StatusIconA : StatusIcon { GitMonitor.gitmonitor.stop(); - var total = tr.length; + this.total = tr.length; for (var i= 0; i< tr.length;i++) { statusicon.set_from_stock( i%2 == 0 ? Gtk.Stock.FULLSCREEN : Gtk.Stock.LEAVE_FULLSCREEN ); var repo = tr.index(i); - //if (!repo.autocommit()) { - //??? should we ignore ones not on autocommit.. - // continue; - //} - //try { - statusicon.set_tooltip_text("pull: " + repo.name); - var str = ""; - repo.pull_async((res) => { - - total--; - if (!Regex.match_simple ("Already up-to-date", res) ) { - - - str += str.length > 0 ? "\n" : ""; - str += "Updated: " +repo.name + "\n" + res +"\n"; - } - if (total < 1) { - var notification = new Notify.Notification( - "Pull completed ", - str, - "dialog-information" - ); - notification.set_timeout(20); - notification.show(); - statusicon.set_tooltip_text("Gitlive"); - - - GitMonitor.gitmonitor.start(); - } - }); - // do not care if it's already in sycn.. - + //repo.ref(); + //this.ref(); - - - //} catch(Error e) { - // print("notification or push errror- probably to many in queue.."); - // statusicon.set_from_stock( Gtk.Stock.MEDIA_RECORD ); - // print(e.message); + statusicon.set_tooltip_text("pull: " + repo.name); + + repo.pull_async(this.pullAllCallback); + // do not care if it's already in sycn.. - // } + } + } + uint total = 0; + + + void pullAllCallback(GitRepo repo, string res) + { + this.total--; + if (!Regex.match_simple ("Already up-to-date", res) ) { + + + ret_str += ret_str.length > 0 ? "\n" : ""; + ret_str += "Updated: " +repo.name + "\n" + res +"\n"; + } + if (this.total < 1) { + var notification = new Notify.Notification( + "Pull completed ", + ret_str, + "dialog-information" + ); + notification.set_timeout(20); + notification.show(); + statusicon.set_tooltip_text("Gitlive"); + + + GitMonitor.gitmonitor.start(); + //this.unref(); + //repo.unref(); + } + } -- 2.39.2