+ public void load ()
+ {
+ //this.insert(citer,iter,0);
+ print("getting list");
+ var tr = GitRepo.list();
+
+ this.el.clear();
+
+ // fixme .. sort by last updated ...
+
+
+ for(var i =0 ; i < tr.length; i++) {
+ var repo = tr.index(i);
+ // 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 hi;
+ //try {
+ //tr[i].debug=1;
+ // hi = tr[i].history('/', 1, 'branch', tr[i].currentBranch.name );
+ // print(JSON.stringify(hi,null,4));
+ // } catch(e) { print(e);}
+
+ this.el.set_value(iter, 0, repo.name );
+ this.el.set_value( iter, 1, repo.getCurrentBranch().name );
+ this.el.set_value( iter, 2, repo.branchesToString() );
+ // this.el.set_value(ret.iter, 2, '' + repo.branches.map(
+ // function(e) { return e.name;
+ // }).join(', ')
+ // );
+ // this.el.set_value(iter, 3, '' + (!hi ? '??' : hi[0].changed_raw));
+ this.el.set_value(iter, 4, repo.is_autocommit() );
+ this.el.set_value(iter, 5, repo.is_autopush() );
+ this.el.set_value(iter, 6, repo.git_working_dir );
+ // highlight color.
+ var cb = repo.getCurrentBranch();
+ //print(JSON.stringify(cb,null,4));
+ var col = "#ffffff";
+
+ if (cb.lastrev != cb.remoterev) {
+ col = "#f2dede";
+ this.el.set_value( iter, 1, repo.getCurrentBranch().name +"\n" +
+ (repo.ahead_or_behind == "B" ? "Local is BEHIND remote" : "Local is AHEAD of remote")
+
+ );
+ }
+ if (repo.has_local_changes) {
+ col = "#d9edf7";
+ this.el.set_value( iter, 1, repo.getCurrentBranch().name +"\nHas uncommitted changes" );
+ }
+ if ((cb.lastrev != cb.remoterev) && (repo.has_local_changes)) {
+ col = "#fcf8e3";
+ this.el.set_value( iter, 1, repo.getCurrentBranch().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;
+
+ this.el.set_value(iter, 8, repo.is_auto_branch() );
+ this.el.set_value(iter, 9, ticket == null ? "" : ticket.id );
+
+
+ }
+ this.el.set_sort_column_id (0, Gtk.SortType.ASCENDING);
+ }