X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=NewBranch.vala;h=d5a5c23a229a0bb608a795cf43c450f2a278460e;hb=01af28a18150e1c30fd20ef32da736c7ceee80ef;hp=6b2c345542c8978998cd2991045edff8eb7ef59f;hpb=7787e7058c952459a07f64edaa20d5e7778dc1fa;p=gitlive diff --git a/NewBranch.vala b/NewBranch.vala index 6b2c3455..d5a5c23a 100644 --- a/NewBranch.vala +++ b/NewBranch.vala @@ -19,10 +19,14 @@ 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; public Xcls_view view; + public Xcls_label_select_ticket label_select_ticket; + public Xcls_label_crete_ticket label_crete_ticket; + public Xcls_label_quick_commit label_quick_commit; // my vars (def) public GitRepo? repo; @@ -49,6 +53,9 @@ public class NewBranch : Object var child_0 = new Xcls_Box2( _this ); child_0.ref(); this.el.get_content_area().add ( child_0.el ); + var child_1 = new Xcls_Notebook22( _this ); + child_1.ref(); + this.el.add ( child_1.el ); //listeners this.el.delete_event.connect( (self, event) => { @@ -59,11 +66,9 @@ 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.. // make that the current active ticket? @@ -72,6 +77,14 @@ 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. + + + if (response_id < 1) { + _this.el.hide(); + this.running = false; + return; + } + var ticket_id = _this.ticketsel.selectedTicketId(); if (this.repo != null) { @@ -86,7 +99,7 @@ public class NewBranch : Object } } - + this.running = false; @@ -127,13 +140,15 @@ public class NewBranch : Object _this.prmodel.loadProjects(curproj == null ? "" : curproj.id); _this.dbmodel.loadTickets(curproj == null ? "": curproj.id, tid); - - if (tid != "") { + _this.createbtn.updateState(); + + _this.ticketsel.el.get_child().get_style_context().remove_class("warning"); + if (tid != "") { var name = RooTicket.singleton().usernameLocal(); var ticket = RooTicket.singleton().getById(tid); _this.name.el.set_text("wip_%s_T%s_%s".printf(name,ticket.id, ticket.summaryToBranchName())); - - + } else { + _this.ticketsel.el.get_child().get_style_context().add_class("warning"); } _this.view.loadTicket(tid); this.el.run(); @@ -208,7 +223,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 ); @@ -461,6 +476,7 @@ public class NewBranch : Object //this.el.add_attribute(_this.dbcellrenderer.el , "markup", 1 ); this.el.set_entry_text_column(1); + this.el.get_child().set_sensitive(false); //listeners this.el.changed.connect( () => { @@ -471,11 +487,15 @@ public class NewBranch : Object var name = RooTicket.singleton().usernameLocal(); + this.el.get_child().get_style_context().remove_class("warning"); if (ticket_id == "" || ticket_id == null) { var dt = new DateTime.now_local(); _this.name.el.set_text("wip_%s_%s".printf(name,dt.format("%Y_%b_%d"))); _this.view.loadTicket(""); + + this.el.get_child().get_style_context().add_class("warning"); + _this.createbtn.updateState(); return; } @@ -486,6 +506,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); }); } @@ -582,7 +604,7 @@ public class NewBranch : Object el.append(out iter); el.set_value(iter, 0, ticket.id); - el.set_value(iter, 1, "#%s [%s] %s".printf( ticket.id, ticket.project_id_name , ticket.summary)); + el.set_value(iter, 1, "#%s %s".printf( ticket.id, ticket.summary)); if (ticket.id == tid) { _this.ticketsel.el.set_active_iter(iter); @@ -677,7 +699,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; @@ -686,9 +708,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) @@ -704,12 +727,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 @@ -920,4 +964,102 @@ public class NewBranch : Object + public class Xcls_Notebook22 : Object + { + public Gtk.Notebook el; + private NewBranch _this; + + + // my vars (def) + + // ctor + public Xcls_Notebook22(NewBranch _owner ) + { + _this = _owner; + this.el = new Gtk.Notebook(); + + // my vars (dec) + + // set gobject values + this.el.vexpand = true; + var child_0 = new Xcls_label_select_ticket( _this ); + child_0.ref(); + var child_1 = new Xcls_label_crete_ticket( _this ); + child_1.ref(); + var child_2 = new Xcls_label_quick_commit( _this ); + child_2.ref(); + } + + // user defined functions + } + public class Xcls_label_select_ticket : Object + { + public Gtk.Label el; + private NewBranch _this; + + + // my vars (def) + + // ctor + public Xcls_label_select_ticket(NewBranch _owner ) + { + _this = _owner; + _this.label_select_ticket = this; + this.el = new Gtk.Label( "Select Existing Ticket to work on" ); + + // my vars (dec) + + // set gobject values + } + + // user defined functions + } + + public class Xcls_label_crete_ticket : Object + { + public Gtk.Label el; + private NewBranch _this; + + + // my vars (def) + + // ctor + public Xcls_label_crete_ticket(NewBranch _owner ) + { + _this = _owner; + _this.label_crete_ticket = this; + this.el = new Gtk.Label( "Create a new Ticket" ); + + // my vars (dec) + + // set gobject values + } + + // user defined functions + } + + public class Xcls_label_quick_commit : Object + { + public Gtk.Label el; + private NewBranch _this; + + + // my vars (def) + + // ctor + public Xcls_label_quick_commit(NewBranch _owner ) + { + _this = _owner; + _this.label_quick_commit = this; + this.el = new Gtk.Label( "Quick Commit" ); + + // my vars (dec) + + // set gobject values + } + + // user defined functions + } + + }