+ public void updateMerges()
+ {
+ // show a list of possible merges on the menu.
+ foreach (var m in this.merge_items) {
+ this.remove(m);
+ }
+ foreach(var r in GitRepo.singleton().cache.values ) {
+ GLib.debug("checking %s for branch = %s", r.name, r.currentBranch.name);
+ if (r.is_master_branch()) {
+ continue;
+ }
+ GLib.debug("checking for activeTicket");
+ var t = r.activeTicket;
+ if (t == null) {
+ continue;
+ }
+ var mi = new MergeMenuItem(r,t);
+ this.insert (mi,4); //backwards.
+ this.merge_items.add(mi);
+
+ }
+
+ }
+
+
+ class MergeMenuItem : Gtk.MenuItem {
+
+ GitRepo repo;
+ RooTicket ticket;
+
+ public MergeMenuItem(GitRepo r, RooTicket t)
+ {
+ this.repo = r;
+ this.ticket = t;
+
+ this.label = ("Merge [%s] #%s %s".printf(r.name, t.id , t.summary));
+
+ this.activate.connect(() => {
+ MergeBranch.singleton().show(this.ticket, null);
+ // show merge dialog..
+ });
+
+ }
+
+ }
+
+
+ class MenuItemPause : ImageMenuItem {