menu.ref();
this.button_press_event.connect( ( ev ) =>{
print("button press event called\n");
-
+ menu.updateMerges();
menu.show_all();
if (this.paused) {
//print(Array.prototype.slice.call(arguments).join(','));
print("menu activiate called\n");
+ menu.updateMerges();
//var menu = this.get('menu');
menu.show_all();
this.append(this.after_seperator);
//this.append(new MenuItemUpdateTimesheet());
this.append(new MenuItemManageClones());
+ this.append(new MenuItemNewTicket());
this.append(new MenuItemAbout());
this.append(new MenuItemQuit());
this.merge_items = new Gee.ArrayList<Gtk.MenuItem>();
}
public Gee.ArrayList<Gtk.MenuItem> merge_items;
+
+
public void updateMerges()
{
// show a list of possible merges on the menu.
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_wip_branch()) {
continue;
}
+ GLib.debug("checking for activeTicket");
var t = r.activeTicket;
if (t == null) {
continue;
}
- var mi = new Gtk.MenuItem.with_label ("Merge [%s] #%s %s".printf(r.name, t.id , t.summary));
- this.insert (mi,4);
+ 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 {
var image = new Gtk.Image();
image.set_from_stock(Gtk.Stock.SAVE,Gtk.IconSize.MENU );
- this.set_image (image);
+ this.set_image (image);
this.label= "Update Timesheet";
this.always_show_image = true;
this.accel_group = null;
this.accel_group = null;
this.activate.connect( () => {
- Clones.singleton().show();
+ GitRepo.updateAll("show_clones");
+
+ // Clones.singleton().show();
});
}
}
+ class MenuItemNewTicket : ImageMenuItem {
+
+ public MenuItemNewTicket()
+ {
+
+ var image = new Gtk.Image();
+ image.set_from_stock(Gtk.Stock.FULLSCREEN,Gtk.IconSize.MENU );
+ this.set_image (image);
+ this.label= "New Ticket";
+ this.always_show_image = true;
+ this.accel_group = null;
+
+ this.activate.connect( () => {
+ Ticket.singleton().show(null);
+
+
+ // Clones.singleton().show();
+ });
+ }
+
+
+ }
+
+
class MenuItemAbout : ImageMenuItem {
public MenuItemAbout()