this.el.set_default_size(
int.min(1024,Gdk.Screen.width()),
- int.max(500,Gdk.Screen.width() - 300)
+ int.max(500,Gdk.Screen.height() - 300)
);
-
+
this.el.show_all();
_this.reposStore.load();
this.el.set_keep_above(true);
// my vars (dec)
// set gobject values
- this.el.label = "Remotes / Clones";
+ this.el.label = "Add Repository";
//listeners
this.el.clicked.connect( () => {
// set gobject values
this.el.label = "Branches";
+ this.el.visible = false;
//listeners
this.el.clicked.connect( () => {
// set gobject values
this.el.label = "Switch Branch";
+ this.el.visible = false;
//listeners
this.el.clicked.connect( () => {
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();
+
-
-
});
}
// set gobject values
this.el.search_column = 0;
+ this.el.activate_on_single_click = true;
this.el.enable_grid_lines = Gtk.TreeViewGridLines.HORIZONTAL;
var child_0 = new Xcls_reposStore( _this );
child_0.ref();
}
//listeners
+ this.el.row_activated.connect( (path, col) => {
+
+ if (col.title != "Current Branch") {
+ return;
+ }
+
+ //
+
+ Gtk.TreeIter iter;
+ _this.reposStore.el.get_iter(out iter, path);
+ GLib.Value val;
+ _this.reposStore.el.get_value(iter, 6, out val);
+ var git_working_dir = (string)val;
+
+ var repo = GitRepo.singleton().get(git_working_dir);
+
+ Gdk.Rectangle rect;
+ _this.reposView.el.get_cell_area(path, col, out rect);
+ RepoStatusPopover.singleton().show(this.el, rect, repo);
+
+
+
+ });
this.el.cursor_changed.connect( () => {
// SEE SELECTION.CHANGED
/*
for(var i =0 ; i < tr.length; i++) {
var repo = tr.index(i);
- repo.loadBranches();
+ // this is done before we display stuff...
+ //repo.loadBranches();
+ //repo.loadStatus();
Gtk.TreeIter iter;
this.el.append(out iter);
-
//print(JSON.stringify(ret,null,4));
//tr[i].getBranches();
//tr[i].getStatus();
var cb = repo.currentBranch;
//print(JSON.stringify(cb,null,4));
var col = "#ffffff";
- /*
+
if (cb.lastrev != cb.remoterev) {
- col = '#ff0000';
+ col = "#f2dede";
+ 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 (tr[i].hasLocalChanges) {
- col = '#0000ff';
+ if (repo.has_local_changes) {
+ col = "#d9edf7";
+ this.el.set_value( iter, 1, repo.currentBranch.name +"\nHas uncommitted changes" );
}
- if ((cb.lastrev != cb.remoterev) && (tr[i].hasLocalChanges)) {
- col = '#ff00ff';
+ if ((cb.lastrev != cb.remoterev) && (repo.has_local_changes)) {
+ col = "#fcf8e3";
+ 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 );
var ticket = repo.activeTicket;