NewBranch.bjs
[gitlive] / NewBranch.vala
index 836eee1..640ae38 100644 (file)
@@ -19,6 +19,7 @@ public class NewBranch : Object
 
         // my vars (def)
     public GitRepo? repo;
+    public bool running;
 
     // ctor
     public NewBranch()
@@ -28,6 +29,7 @@ public class NewBranch : Object
 
         // my vars (dec)
         this.repo = null;
+        this.running = true;
 
         // set gobject values
         this.el.title = "Create a working branch ";
@@ -55,7 +57,8 @@ 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..
@@ -76,7 +79,7 @@ public class NewBranch : Object
                        }
             }
         
-               
+                           this.running = false; 
         
                 
                 
@@ -95,19 +98,18 @@ public class NewBranch : Object
     public   void show ( GitRepo repo ) 
     {
          // this.el.set_gravity(Gdk.Gravity.NORTH);
-        
+        if (this.running) {
+               return;
+       }
         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
     {
@@ -200,6 +202,7 @@ public class NewBranch : Object
 
 
             // my vars (def)
+        public bool loading;
 
         // ctor
         public Xcls_ticketsel(NewBranch _owner )
@@ -209,6 +212,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 );
@@ -224,18 +228,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()));
@@ -309,7 +316,7 @@ public class NewBranch : Object
         
             RooTicket.singleton().loadTickets();
             
-            
+            _this.ticketsel.loading = true;
         
             this.el.clear();                                    
             Gtk.TreeIter iter;
@@ -325,7 +332,6 @@ public class NewBranch : Object
             var tickets = RooTicket.singleton().tickets;
             foreach(var ticket in tickets) {
             
-        
                 el.append(out iter);
                 
                 el.set_value(iter, 0, ticket.id);
@@ -336,6 +342,8 @@ public class NewBranch : Object
                // }
                 
             }
+            
+            _this.ticketsel.loading = false;
              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
                                              
         }