sync
[gitlive] / NewBranch.vala
index f4df8dc..74d09e0 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 = false;
 
         // set gobject values
         this.el.title = "Create a working branch ";
@@ -48,6 +50,7 @@ public class NewBranch : Object
         //listeners
         this.el.delete_event.connect( (self, event) => {
             this.el.hide();
+            this.running = false;
             return true; 
             //test  
         });
@@ -55,9 +58,12 @@ public class NewBranch : Object
           
                GLib.debug("got %d", (int) response_id);
                if (response_id == 0) {
-                   _this.el.hide();     
+                   _this.el.hide();    
+                   this.running = false; 
+                       GitMonitor.gitmonitor.start();      
                        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,15 +74,15 @@ 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);
                        }
             }
-        
-               
+               GitMonitor.gitmonitor.start();
+                           this.running = false; 
         
                 
                 
@@ -92,20 +98,24 @@ public class NewBranch : Object
     }
 
     // user defined functions
-    public   void show ( ) 
+    public   void show ( GitRepo repo 
     {
          // this.el.set_gravity(Gdk.Gravity.NORTH);
-         
+        if (this.running) {
+               return;
+       }
+       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 +208,7 @@ public class NewBranch : Object
 
 
             // my vars (def)
+        public bool loading;
 
         // ctor
         public Xcls_ticketsel(NewBranch _owner )
@@ -207,6 +218,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 +234,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 +322,7 @@ public class NewBranch : Object
         
             RooTicket.singleton().loadTickets();
             
-            
+            _this.ticketsel.loading = true;
         
             this.el.clear();                                    
             Gtk.TreeIter iter;
@@ -319,11 +334,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 +348,8 @@ public class NewBranch : Object
                // }
                 
             }
+            
+            _this.ticketsel.loading = false;
              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
                                              
         }