this.el.label = "Pull";
//listeners
- this.el.clicked.connect( () => {
-
+ this.el.clicked.connect( () => {
+
+ var rv = _this.reposView;
+ var rs = _this.reposStore;
+ var s =rv.el.get_selection();
+ if (s.count_selected_rows() != 1) {
+ return;
+ }
+ Gtk.TreeIter iter;
+ Gtk.TreeModel tm;
+ s.get_selected(out tm, out iter);
+ GLib.Value val;
+ tm.get_value(iter, 6, out val);
+ var git_working_dir = (string)val;
+ var repo = GitRepo.singleton().get(git_working_dir);
+ GitMonitor.gitmonitor.pause();
+ repo.pull();
+ repo.loadStatus();
+ _this.reposStore.load();
+ GitMonitor.gitmonitor.start();
+
-
-
});
}
//listeners
this.el.row_activated.connect( (path, col) => {
- GLib.debug("row activated: %s", col.title);
+
if (col.title != "Current Branch") {
return;
}
if (cb.lastrev != cb.remoterev) {
col = "#f2dede";
- this.el.set_value( iter, 1, repo.currentBranch.name +"\nRemote != Local" );
+ this.el.set_value( iter, 1, repo.currentBranch.name +"\n" +
+ (repo.ahead_or_behind == "B" ? "Local is BEHIND remote" : "Local is AHEAD of remote")
+
+ );
}
if (repo.has_local_changes) {
col = "#d9edf7";
}
if ((cb.lastrev != cb.remoterev) && (repo.has_local_changes)) {
col = "#fcf8e3";
- this.el.set_value( iter, 1, repo.currentBranch.name +"\nRemote != Local\nHas uncommitted changes" );
+ this.el.set_value( iter, 1, repo.currentBranch.name +"\n" +
+ (repo.ahead_or_behind == "B" ? "Local is BEHIND remote" : "Local is AHEAD of remote") +
+ "\nHas uncommitted changes" );
}
this.el.set_value(iter, 7, col );