X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=NewBranch.vala;h=fbf036ddfc3c091b0f61f3ccf22dc2860518676a;hb=refs%2Fheads%2Fwip_alan_T5725_disable_create_branch_until_ticket;hp=1a3a0793fcae59235abe39dc83c5d653496ed528;hpb=48f4250d0b6d7d5b08c81514002948d44553173f;p=gitlive diff --git a/NewBranch.vala b/NewBranch.vala index 1a3a0793..fbf036dd 100644 --- a/NewBranch.vala +++ b/NewBranch.vala @@ -19,6 +19,7 @@ public class NewBranch : Object public Xcls_dbcellrenderer dbcellrenderer; public Xcls_dbmodel dbmodel; public Xcls_name name; + public Xcls_createbtn createbtn; public Xcls_btn_not_me btn_not_me; public Xcls_btn_closed btn_closed; public Xcls_scrolled_window scrolled_window; @@ -37,7 +38,7 @@ public class NewBranch : Object // my vars (dec) this.repo = null; - this.running = true; + this.running = false; this.queue = null; // set gobject values @@ -59,14 +60,8 @@ public class NewBranch : Object this.el.response.connect( (self, response_id) => { GLib.debug("got %d", (int) response_id); - if (response_id < 1) { - _this.el.hide(); - this.running = false; - return; - } - - + // have they selected a ticket.. @@ -76,13 +71,16 @@ public class NewBranch : Object // -- 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 (ticket_id == "") { - _this.ticketsel.el.get_child().get_style_context().add_class("warning"); - return; + + + if (response_id < 1) { + _this.el.hide(); + this.running = false; + return; } + var ticket_id = _this.ticketsel.selectedTicketId(); + if (this.repo != null) { var bn = _this.name.el.get_text(); @@ -95,7 +93,7 @@ public class NewBranch : Object } } - + this.running = false; @@ -136,6 +134,8 @@ public class NewBranch : Object _this.prmodel.loadProjects(curproj == null ? "" : curproj.id); _this.dbmodel.loadTickets(curproj == null ? "": curproj.id, tid); + _this.createbtn.updateState(); + _this.ticketsel.el.get_child().get_style_context().remove_class("warning"); if (tid != "") { var name = RooTicket.singleton().usernameLocal(); @@ -217,7 +217,7 @@ public class NewBranch : Object var child_6 = new Xcls_name( _this ); child_6.ref(); this.el.attach_defaults ( child_6.el , 0,4,4,5 ); - var child_7 = new Xcls_Button15( _this ); + var child_7 = new Xcls_createbtn( _this ); child_7.ref(); this.el.attach_defaults ( child_7.el , 4,5,4,5 ); var child_8 = new Xcls_Box16( _this ); @@ -489,7 +489,7 @@ public class NewBranch : Object _this.view.loadTicket(""); this.el.get_child().get_style_context().add_class("warning"); - + _this.createbtn.updateState(); return; } @@ -500,6 +500,8 @@ public class NewBranch : Object _this.scrolled_window.el.show(); _this.view.loadTicket(ticket.id); + _this.createbtn.updateState(); + //GLib.debug (//"Selection: %s, %s\n", (string) val1, (string) val2); }); } @@ -691,7 +693,7 @@ public class NewBranch : Object // user defined functions } - public class Xcls_Button15 : Object + public class Xcls_createbtn : Object { public Gtk.Button el; private NewBranch _this; @@ -700,9 +702,10 @@ public class NewBranch : Object // my vars (def) // ctor - public Xcls_Button15(NewBranch _owner ) + public Xcls_createbtn(NewBranch _owner ) { _this = _owner; + _this.createbtn = this; this.el = new Gtk.Button(); // my vars (dec) @@ -718,12 +721,33 @@ public class NewBranch : Object //listeners this.el.clicked.connect( () => { + GLib.debug("fire response = 1"); + + var ticket_id = _this.ticketsel.selectedTicketId(); + + if (ticket_id == "") { + _this.ticketsel.el.get_child().get_style_context().add_class("warning"); + return; + } + _this.el.response(1); }); } // user defined functions + public void updateState () { + + var ticket_id = _this.ticketsel.selectedTicketId(); + + if (ticket_id == "") { + this.el.set_sensitive(false); + return; + } + + this.el.set_sensitive(true); + + } } public class Xcls_Box16 : Object