Partial Fix #5560 - Gitlive - branching wip
[gitlive] / NewBranch.vala
index f4df8dc..602922e 100644 (file)
@@ -19,6 +19,8 @@ public class NewBranch : Object
 
         // my vars (def)
     public GitRepo? repo;
+    public bool running;
+    public Gee.ArrayList<GitMonitorQueue> queue;
 
     // ctor
     public NewBranch()
@@ -28,6 +30,8 @@ public class NewBranch : Object
 
         // my vars (dec)
         this.repo = null;
+        this.running = false;
+        this.queue = null;
 
         // set gobject values
         this.el.title = "Create a working branch ";
@@ -55,9 +59,11 @@ public class NewBranch : Object
           
                GLib.debug("got %d", (int) response_id);
                if (response_id == 0) {
-                   _this.el.hide();     
+                   _this.el.hide();    
+                   this.running = false; 
                        return;
                }
+                
                // have they selected a ticket..
                // make that the current active ticket?
                // we really need to store locally what ticket is being worked on..
@@ -68,17 +74,17 @@ public class NewBranch : Object
                var ticket_id = _this.ticketsel.selectedTicketId();
                
             if (this.repo != null) {
-               var bn = _this.name.get_text();
+               var bn = _this.name.el.get_text();
                if (ticket_id != "" ) {
-                               this.repo.setActiveTicket( RooTicket.singleton.getById(ticket_id), bn);
+                               this.repo.setActiveTicket( RooTicket.singleton().getById(ticket_id), bn);
                        } else {
-                               this.repo.createBranchNamed(bn);
+                               this.repo.setActiveTicket( RooTicket.singleton().getById("-1"), bn);
                        }
             }
         
-               
+            this.running = false; 
         
-                
+               this.el.hide();
                 
                 
         
@@ -92,20 +98,26 @@ public class NewBranch : Object
     }
 
     // user defined functions
-    public   void show ( ) 
+    public   void show ( GitRepo repo, Gee.ArrayList<GitMonitorQueue> queue 
     {
          // this.el.set_gravity(Gdk.Gravity.NORTH);
-         
+        if (this.running) { // should not happen!!
+               GLib.error("new branch show called, when already being displayed?");
+       }
+       this.queue = queue;
+       
+       this.running  = true;
+       GitMonitor.gitmonitor.stop();
+       
+        this.repo = repo;
+        
        this.el.move((Gdk.Screen.width() / 2)- 250 ,0);
                GLib.debug("Loading tickets"); 
-       _this.dbmodel.loadTickets();
     
-        this.el.show_all();
     
+        this.el.show_all();
+       _this.dbmodel.loadTickets();
     
-     
-        
-          
     }
     public class Xcls_VBox2 : Object
     {
@@ -198,6 +210,7 @@ public class NewBranch : Object
 
 
             // my vars (def)
+        public bool loading;
 
         // ctor
         public Xcls_ticketsel(NewBranch _owner )
@@ -207,6 +220,7 @@ public class NewBranch : Object
             this.el = new Gtk.ComboBox();
 
             // my vars (dec)
+            this.loading = false;
 
             // set gobject values
             var child_0 = new Xcls_dbcellrenderer( _this );
@@ -222,18 +236,21 @@ public class NewBranch : Object
 
             //listeners
             this.el.changed.connect( () => {
-            
+               if (this.loading) {
+                       return;
+               }
                var ticket_id = this.selectedTicketId();
                
                var name = RooTicket.singleton().usernameLocal();
                
-               if (ticket_id == "") {
+               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")));
                        return;
                }
                
+               
                var ticket = RooTicket.singleton().getById(ticket_id);
                
                _this.name.el.set_text("wip_%s_T%s_%s".printf(name,ticket.id, ticket.summaryToBranchName()));
@@ -307,7 +324,7 @@ public class NewBranch : Object
         
             RooTicket.singleton().loadTickets();
             
-            
+            _this.ticketsel.loading = true;
         
             this.el.clear();                                    
             Gtk.TreeIter iter;
@@ -319,11 +336,10 @@ 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) {
             
-        
                 el.append(out iter);
                 
                 el.set_value(iter, 0, ticket.id);
@@ -334,6 +350,8 @@ public class NewBranch : Object
                // }
                 
             }
+            
+            _this.ticketsel.loading = false;
              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
                                              
         }