X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=NewBranch.vala;h=836eee16c3b9e5cdc896ad7c8ad8bb5f0e1b6655;hb=cd28d47e64896611081eb62496d65d3cae7e90e8;hp=6866b45adec0d4bf4868b82fc5b928ca95933701;hpb=4dd3e0b44d03390b86be8cd0919786dd77f9abf1;p=gitlive diff --git a/NewBranch.vala b/NewBranch.vala index 6866b45a..836eee16 100644 --- a/NewBranch.vala +++ b/NewBranch.vala @@ -12,12 +12,13 @@ public class NewBranch : Object } return _NewBranch; } - public Xcls_build_module build_module; + public Xcls_ticketsel ticketsel; public Xcls_dbcellrenderer dbcellrenderer; public Xcls_dbmodel dbmodel; public Xcls_name name; // my vars (def) + public GitRepo? repo; // ctor public NewBranch() @@ -26,6 +27,7 @@ public class NewBranch : Object this.el = new Gtk.Dialog(); // my vars (dec) + this.repo = null; // set gobject values this.el.title = "Create a working branch "; @@ -51,7 +53,36 @@ public class NewBranch : Object }); this.el.response.connect( (self, response_id) => { - GLib.debug("got %d", (int) response_id); + GLib.debug("got %d", (int) response_id); + if (response_id == 0) { + _this.el.hide(); + return; + } + // have they selected a ticket.. + // make that the current active ticket? + // we really need to store locally what ticket is being worked on.. + // in theory we could be working on multiple project and not merging.. + // -- each repo would have their active ticket (only one per repo) + // -- so we could just store that in there + // -- initial load can check the contents of the ticket files on first scan. + var ticket_id = _this.ticketsel.selectedTicketId(); + + if (this.repo != null) { + var bn = _this.name.el.get_text(); + if (ticket_id != "" ) { + this.repo.setActiveTicket( RooTicket.singleton().getById(ticket_id), bn); + } else { + this.repo.createBranchNamed(bn); + } + } + + + + + + + + }); this.el.show.connect( (self) => { @@ -61,10 +92,12 @@ public class NewBranch : Object } // user defined functions - public void show ( ) + public void show ( GitRepo repo ) { // this.el.set_gravity(Gdk.Gravity.NORTH); - + + this.repo = repo; + this.el.move((Gdk.Screen.width() / 2)- 250 ,0); GLib.debug("Loading tickets"); _this.dbmodel.loadTickets(); @@ -122,7 +155,7 @@ public class NewBranch : Object var child_0 = new Xcls_Label4( _this ); child_0.ref(); this.el.attach_defaults ( child_0.el , 0,1,0,1 ); - var child_1 = new Xcls_build_module( _this ); + var child_1 = new Xcls_ticketsel( _this ); child_1.ref(); this.el.attach_defaults ( child_1.el , 1,2,0,1 ); var child_2 = new Xcls_Label8( _this ); @@ -160,7 +193,7 @@ public class NewBranch : Object // user defined functions } - public class Xcls_build_module : Object + public class Xcls_ticketsel : Object { public Gtk.ComboBox el; private NewBranch _this; @@ -169,10 +202,10 @@ public class NewBranch : Object // my vars (def) // ctor - public Xcls_build_module(NewBranch _owner ) + public Xcls_ticketsel(NewBranch _owner ) { _this = _owner; - _this.build_module = this; + _this.ticketsel = this; this.el = new Gtk.ComboBox(); // my vars (dec) @@ -191,15 +224,8 @@ public class NewBranch : Object //listeners this.el.changed.connect( () => { - Gtk.TreeIter iter; - Value val1; - Value val2; - - this.el.get_active_iter (out iter); - _this.dbmodel.el.get_value (iter, 0, out val1); - _this.dbmodel.el.get_value (iter, 1, out val2); - var ticket_id = (string) val1; + var ticket_id = this.selectedTicketId(); var name = RooTicket.singleton().usernameLocal(); @@ -219,6 +245,21 @@ public class NewBranch : Object } // user defined functions + public string selectedTicketId () { + Gtk.TreeIter iter; + Value val1; + + + this.el.get_active_iter (out iter); + _this.dbmodel.el.get_value (iter, 0, out val1); + + + return (string) val1; + + + + + } } public class Xcls_dbcellrenderer : Object { @@ -280,7 +321,7 @@ public class NewBranch : Object el.set_value(iter, 0, ""); el.set_value(iter, 1, "-- select a ticket --"); - _this.build_module.el.set_active_iter(iter); + _this.ticketsel.el.set_active_iter(iter); var tickets = RooTicket.singleton().tickets; foreach(var ticket in tickets) {