Partial Fix #5560 - Gitlive - branching wip
[gitlive] / Clones.vala
index 3a91a66..d5e2918 100644 (file)
@@ -18,8 +18,12 @@ public class Clones : Object
     public Xcls_cr_autocommit cr_autocommit;
     public Xcls_tv_autopush tv_autopush;
     public Xcls_cr_autopush cr_autopush;
+    public Xcls_tv_autobranch tv_autobranch;
+    public Xcls_cr_autobranch cr_autobranch;
     public Xcls_tv_repo tv_repo;
     public Xcls_cr_repo cr_repo;
+    public Xcls_tv_active_ticket tv_active_ticket;
+    public Xcls_cr_active_ticket cr_active_ticket;
     public Xcls_tv_current_branch tv_current_branch;
     public Xcls_cr_current_branch cr_current_branch;
     public Xcls_tv_last_updated tv_last_updated;
@@ -492,18 +496,24 @@ public class Clones : Object
             var child_2 = new Xcls_tv_autopush( _this );
             child_2.ref();
             this.el.append_column (  child_2.el  );
-            var child_3 = new Xcls_tv_repo( _this );
+            var child_3 = new Xcls_tv_autobranch( _this );
             child_3.ref();
             this.el.append_column (  child_3.el  );
-            var child_4 = new Xcls_tv_current_branch( _this );
+            var child_4 = new Xcls_tv_repo( _this );
             child_4.ref();
             this.el.append_column (  child_4.el  );
-            var child_5 = new Xcls_tv_last_updated( _this );
+            var child_5 = new Xcls_tv_active_ticket( _this );
             child_5.ref();
             this.el.append_column (  child_5.el  );
-            var child_6 = new Xcls_tv_all_branches( _this );
+            var child_6 = new Xcls_tv_current_branch( _this );
             child_6.ref();
             this.el.append_column (  child_6.el  );
+            var child_7 = new Xcls_tv_last_updated( _this );
+            child_7.ref();
+            this.el.append_column (  child_7.el  );
+            var child_8 = new Xcls_tv_all_branches( _this );
+            child_8.ref();
+            this.el.append_column (  child_8.el  );
 
             // init method
 
@@ -564,14 +574,16 @@ public class Clones : Object
         {
             _this = _owner;
             _this.reposStore = this;
-            this.el = new Gtk.ListStore( 8,      typeof(string),  // 0 repo
+            this.el = new Gtk.ListStore( 10,      typeof(string),  // 0 repo
      typeof(string),  // 1 current branch
      typeof(string),  // 2 all branch
      typeof(string),  // 3 updated
      typeof(bool),   // 4 auto commit
      typeof(bool),   // 5 auto push
-     typeof(string),   // 7 repopath
-      typeof(string)   // 8 color highlighting?
+     typeof(string),   // 6 repopath
+      typeof(string),   // 7 color highlighting?
+       typeof(bool),   // 8 auto branch,
+      typeof(string)   // 9 active Ticket
        );
 
             // my vars (dec)
@@ -619,7 +631,7 @@ public class Clones : Object
         //        this.el.set_value(iter, 3, '' +  (!hi  ? '??' : hi[0].changed_raw));        
                 this.el.set_value(iter, 4, repo.is_autocommit() );                
                 this.el.set_value(iter, 5, repo.is_autopush() );                        
-                this.el.set_value(iter, 6,  repo.gitdir );  
+                this.el.set_value(iter, 6,  repo.git_working_dir );  
                 // highlight color.
                 var cb = repo.currentBranch;
                 //print(JSON.stringify(cb,null,4));
@@ -636,6 +648,11 @@ public class Clones : Object
                 }
                 */
                 this.el.set_value(iter, 7, col  );      
+                var ticket = repo.activeTicket;
+                
+                this.el.set_value(iter, 8, repo.is_auto_branch()  );      
+                this.el.set_value(iter, 9, ticket == null ? "" : ticket.id  );      
+                
                 
             }     
             this.el.set_sort_column_id (0, Gtk.SortType.ASCENDING);
@@ -696,21 +713,26 @@ public class Clones : Object
 
             //listeners
             this.el.toggled.connect( (self, path)  => {
-            /*    var ret ={} ;
-                var store = this.get('/reposStore');
-                store.el.get_iter_from_string(ret, path);
-                                                                             
-                var value =   store.el.get_value(ret.iter,4).value.get_boolean();
-                                                                             
-                //print(JSON.stringify(value));
-                store.el.set_value(ret.iter,4, !value);
-                
-                 var path =  store.el.get_value(ret.iter, 6).value.get_string();
-                 var repo = imports.Scm.Repo.Repo.get(path);
-                 repo.autocommit(!value);
-              */   
-                
-                
+              
+               Gtk.TreeIter iter;
+               _this.reposStore.el.get_iter_from_string(out iter, path);
+               
+               GLib.Value val;
+               GLib.Value rval;
+               _this.reposStore.el.get_value(iter, 4, out val);
+               _this.reposStore.el.get_value(iter, 6, out rval);
+               
+               var repopath = (string)rval;
+               var bval = (bool)val;
+               _this.reposStore.el.set_value(iter, 4, !bval);
+               GLib.debug("got repopath? %s", repopath);
+               
+               var repo = GitRepo.get(repopath);
+               repo.set_autocommit(!bval);
+               
+               
+               
+              
             });
         }
 
@@ -772,18 +794,103 @@ public class Clones : Object
 
             //listeners
             this.el.toggled.connect( (self, path)  => {
-            /*    var ret ={} ;
-                var store = this.get('/reposStore');
-                store.el.get_iter_from_string(ret, path);
-                                                                             
-                var value =   store.el.get_value(ret.iter,5).value.get_boolean();
-                                                                             
-                //print(JSON.stringify(value));
-                store.el.set_value(ret.iter,5, !value);
-                  var path =  store.el.get_value(ret.iter, 6).value.get_string();
-                 var repo = imports.Scm.Repo.Repo.get(path);
-                 repo.autopush(!value);
-                */
+              
+               Gtk.TreeIter iter;
+               _this.reposStore.el.get_iter_from_string(out iter, path);
+               
+               GLib.Value val;
+               GLib.Value rval;
+               _this.reposStore.el.get_value(iter, 5, out val);
+               _this.reposStore.el.get_value(iter, 6, out rval);
+               
+               var repopath = (string)rval;
+               var bval = (bool)val;
+               _this.reposStore.el.set_value(iter, 5, !bval);
+               var repo = GitRepo.get(repopath);
+               repo.set_autopush(!bval);
+               
+               
+               
+              
+            });
+        }
+
+        // user defined functions
+    }
+
+
+    public class Xcls_tv_autobranch : Object
+    {
+        public Gtk.TreeViewColumn el;
+        private Clones  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_tv_autobranch(Clones _owner )
+        {
+            _this = _owner;
+            _this.tv_autobranch = this;
+            this.el = new Gtk.TreeViewColumn();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.title = "Auto Branch";
+            this.el.min_width = 50;
+            var child_0 = new Xcls_cr_autobranch( _this );
+            child_0.ref();
+            this.el.pack_start (  child_0.el , false );
+
+            // init method
+
+            this.el.add_attribute(_this.cr_autobranch.el , "active", 8 );
+            //      this.items[0].el.set_activatable(true);
+        }
+
+        // user defined functions
+    }
+    public class Xcls_cr_autobranch : Object
+    {
+        public Gtk.CellRendererToggle el;
+        private Clones  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_cr_autobranch(Clones _owner )
+        {
+            _this = _owner;
+            _this.cr_autobranch = this;
+            this.el = new Gtk.CellRendererToggle();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.mode = Gtk.CellRendererMode.ACTIVATABLE;
+
+            //listeners
+            this.el.toggled.connect( (self, path)  => {
+              
+               Gtk.TreeIter iter;
+               _this.reposStore.el.get_iter_from_string(out iter, path);
+               
+               GLib.Value val;
+               GLib.Value rval;
+               _this.reposStore.el.get_value(iter, 8, out val);
+               _this.reposStore.el.get_value(iter, 6, out rval);
+               
+               var repopath = (string)rval;
+               var bval = (bool)val;
+               _this.reposStore.el.set_value(iter, 8, !bval);
+               var repo = GitRepo.get(repopath);
+               repo.set_auto_branch(!bval);
+               
+               
+               
+              
             });
         }
 
@@ -849,6 +956,61 @@ public class Clones : Object
     }
 
 
+    public class Xcls_tv_active_ticket : Object
+    {
+        public Gtk.TreeViewColumn el;
+        private Clones  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_tv_active_ticket(Clones _owner )
+        {
+            _this = _owner;
+            _this.tv_active_ticket = this;
+            this.el = new Gtk.TreeViewColumn();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.title = "Active Ticket";
+            this.el.min_width = 50;
+            var child_0 = new Xcls_cr_active_ticket( _this );
+            child_0.ref();
+            this.el.pack_start (  child_0.el , false );
+
+            // init method
+
+            this.el.add_attribute(_this.cr_active_ticket.el , "markup", 9 );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_cr_active_ticket : Object
+    {
+        public Gtk.CellRendererText el;
+        private Clones  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_cr_active_ticket(Clones _owner )
+        {
+            _this = _owner;
+            _this.cr_active_ticket = this;
+            this.el = new Gtk.CellRendererText();
+
+            // my vars (dec)
+
+            // set gobject values
+        }
+
+        // user defined functions
+    }
+
+
     public class Xcls_tv_current_branch : Object
     {
         public Gtk.TreeViewColumn el;