sync
[gitlive] / Clones.vala
index 12b5325..3a91a66 100644 (file)
@@ -37,6 +37,14 @@ public class Clones : Object
         this.el = new Gtk.Dialog();
 
         // my vars (dec)
+
+        // set gobject values
+        this.el.title = "Manage Clones";
+        this.el.border_width = 3;
+        this.el.default_height = 500;
+        this.el.default_width = 800;
+        this.el.deletable = true;
+        this.el.modal = true;
         var child_0 = new Xcls_Box2( _this );
         child_0.ref();
         this.el.get_content_area().add (  child_0.el  );
@@ -62,7 +70,10 @@ public class Clones : Object
     
         
         this.el.set_deletable(false);
+        this.el.set_gravity(Gdk.Gravity.NORTH);
+        this.el.move((Gdk.Screen.width() / 2 ) -400 ,0);
         this.el.show_all();
+        _this.reposStore.load();
         // load clones..
     //     this.get('/reposStore').load();
         
@@ -91,9 +102,11 @@ public class Clones : Object
         public Xcls_Box2(Clones _owner )
         {
             _this = _owner;
-            this.el = new Gtk.Box();
+            this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
 
             // my vars (dec)
+
+            // set gobject values
             var child_0 = new Xcls_Box3( _this );
             child_0.ref();
             this.el.pack_start (  child_0.el , false,false,0 );
@@ -116,9 +129,11 @@ public class Clones : Object
         public Xcls_Box3(Clones _owner )
         {
             _this = _owner;
-            this.el = new Gtk.Box();
+            this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
 
             // my vars (dec)
+
+            // set gobject values
             var child_0 = new Xcls_Button4( _this );
             child_0.ref();
             this.el.add (  child_0.el  );
@@ -154,6 +169,9 @@ public class Clones : Object
 
             // my vars (dec)
 
+            // set gobject values
+            this.el.label = "Remotes / Clones";
+
             //listeners
             this.el.clicked.connect( () => {
             
@@ -219,8 +237,15 @@ public class Clones : Object
 
             // my vars (dec)
 
+            // set gobject values
+            this.el.label = "Branches";
+
             //listeners
             this.el.clicked.connect( () => {
+            // 
+            
+               //NewBranch.singleton().show();
+            
             /*
                 var rv = this.get('/reposView');
                 var rs = this.get('/reposStore');
@@ -285,6 +310,9 @@ public class Clones : Object
 
             // my vars (dec)
 
+            // set gobject values
+            this.el.label = "Merge";
+
             //listeners
             this.el.clicked.connect( () =>  {
             /*
@@ -352,6 +380,9 @@ public class Clones : Object
 
             // my vars (dec)
 
+            // set gobject values
+            this.el.label = "Switch Branch";
+
             //listeners
             this.el.clicked.connect( () => {
                 
@@ -382,6 +413,9 @@ public class Clones : Object
 
             // my vars (dec)
 
+            // set gobject values
+            this.el.label = "Pull";
+
             //listeners
             this.el.clicked.connect( () => {
                 
@@ -409,9 +443,14 @@ public class Clones : Object
         public Xcls_ScrolledWindow9(Clones _owner )
         {
             _this = _owner;
-            this.el = new Gtk.ScrolledWindow();
+            this.el = new Gtk.ScrolledWindow( null, null );
 
             // my vars (dec)
+
+            // set gobject values
+            this.el.expand = true;
+            this.el.hexpand = true;
+            this.el.shadow_type = Gtk.ShadowType.IN;
             var child_0 = new Xcls_reposView( _this );
             child_0.ref();
             this.el.add (  child_0.el  );
@@ -442,6 +481,8 @@ public class Clones : Object
             this.el = new Gtk.TreeView();
 
             // my vars (dec)
+
+            // set gobject values
             var child_0 = new Xcls_reposStore( _this );
             child_0.ref();
             this.el.set_model (  child_0.el  );
@@ -474,6 +515,7 @@ public class Clones : Object
                 var description = new Pango.FontDescription();
                 description.set_size(10000);
                 this.el.override_font(description);
+             
             }
 
             //listeners
@@ -522,12 +564,82 @@ public class Clones : Object
         {
             _this = _owner;
             _this.reposStore = this;
-            this.el = new Gtk.ListStore();
+            this.el = new Gtk.ListStore( 8,      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?
+       );
 
             // my vars (dec)
+
+            // set gobject values
         }
 
         // user defined functions
+        public void load ()
+        {
+            //this.insert(citer,iter,0);
+            print("getting list");
+            var tr = GitRepo.list();
+            
+            this.el.clear();
+            
+            // fixme .. sort by last updated ...
+            
+            
+            for(var i =0 ; i < tr.length; i++) {
+                   var repo = tr.index(i);
+                   repo.loadBranches();
+                   
+                   Gtk.TreeIter iter;
+                   this.el.append(out iter);
+             
+                
+                //print(JSON.stringify(ret,null,4));
+                 //tr[i].getBranches();
+                 //tr[i].getStatus();
+                 //var hi;
+                 //try {
+                     //tr[i].debug=1;
+                 //     hi = tr[i].history('/', 1, 'branch', tr[i].currentBranch.name );
+        //             print(JSON.stringify(hi,null,4));
+                // } catch(e) { print(e);}
+                  
+                this.el.set_value(iter, 0,   repo.name );
+                this.el.set_value( iter, 1, repo.currentBranch.name   );
+                this.el.set_value( iter, 2,  repo.branchesToString()   );
+        //        this.el.set_value(ret.iter, 2, '' + repo.branches.map(
+        //                        function(e) { return e.name; 
+        //                    }).join(', ') 
+         //        );
+        //        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 );  
+                // highlight color.
+                var cb = repo.currentBranch;
+                //print(JSON.stringify(cb,null,4));
+                var col = "#ffffff";
+                /*
+                if (cb.lastrev != cb.remoterev) {
+                    col =  '#ff0000';
+                }
+                if (tr[i].hasLocalChanges) {
+                    col =  '#0000ff';
+                }
+                if  ((cb.lastrev != cb.remoterev) && (tr[i].hasLocalChanges)) {
+                    col =  '#ff00ff';
+                }
+                */
+                this.el.set_value(iter, 7, col  );      
+                
+            }     
+            this.el.set_sort_column_id (0, Gtk.SortType.ASCENDING);
+        }
     }
 
     public class Xcls_tv_autocommit : Object
@@ -546,6 +658,10 @@ public class Clones : Object
             this.el = new Gtk.TreeViewColumn();
 
             // my vars (dec)
+
+            // set gobject values
+            this.el.title = "Auto Commit";
+            this.el.min_width = 50;
             var child_0 = new Xcls_cr_autocommit( _this );
             child_0.ref();
             this.el.pack_start (  child_0.el , false );
@@ -575,6 +691,9 @@ public class Clones : Object
 
             // my vars (dec)
 
+            // set gobject values
+            this.el.mode = Gtk.CellRendererMode.ACTIVATABLE;
+
             //listeners
             this.el.toggled.connect( (self, path)  => {
             /*    var ret ={} ;
@@ -615,6 +734,10 @@ public class Clones : Object
             this.el = new Gtk.TreeViewColumn();
 
             // my vars (dec)
+
+            // set gobject values
+            this.el.title = "Auto Push";
+            this.el.min_width = 50;
             var child_0 = new Xcls_cr_autopush( _this );
             child_0.ref();
             this.el.pack_start (  child_0.el , false );
@@ -644,6 +767,9 @@ public class Clones : Object
 
             // my vars (dec)
 
+            // set gobject values
+            this.el.mode = Gtk.CellRendererMode.ACTIVATABLE;
+
             //listeners
             this.el.toggled.connect( (self, path)  => {
             /*    var ret ={} ;
@@ -681,6 +807,13 @@ public class Clones : Object
             this.el = new Gtk.TreeViewColumn();
 
             // my vars (dec)
+
+            // set gobject values
+            this.el.sort_column_id = 0;
+            this.el.title = "Repo";
+            this.el.min_width = 200;
+            this.el.sort_order = Gtk.SortType.ASCENDING;
+            this.el.resizable = true;
             var child_0 = new Xcls_cr_repo( _this );
             child_0.ref();
             this.el.pack_start (  child_0.el , false );
@@ -708,6 +841,8 @@ public class Clones : Object
             this.el = new Gtk.CellRendererText();
 
             // my vars (dec)
+
+            // set gobject values
         }
 
         // user defined functions
@@ -730,6 +865,10 @@ public class Clones : Object
             this.el = new Gtk.TreeViewColumn();
 
             // my vars (dec)
+
+            // set gobject values
+            this.el.title = "Current Branch";
+            this.el.min_width = 50;
             var child_0 = new Xcls_cr_current_branch( _this );
             child_0.ref();
             this.el.pack_start (  child_0.el , false );
@@ -758,6 +897,8 @@ public class Clones : Object
             this.el = new Gtk.CellRendererText();
 
             // my vars (dec)
+
+            // set gobject values
         }
 
         // user defined functions
@@ -780,6 +921,10 @@ public class Clones : Object
             this.el = new Gtk.TreeViewColumn();
 
             // my vars (dec)
+
+            // set gobject values
+            this.el.title = "Last updated";
+            this.el.min_width = 50;
             var child_0 = new Xcls_cr_last_updated( _this );
             child_0.ref();
             this.el.pack_start (  child_0.el , false );
@@ -807,6 +952,8 @@ public class Clones : Object
             this.el = new Gtk.CellRendererText();
 
             // my vars (dec)
+
+            // set gobject values
         }
 
         // user defined functions
@@ -829,6 +976,11 @@ public class Clones : Object
             this.el = new Gtk.TreeViewColumn();
 
             // my vars (dec)
+
+            // set gobject values
+            this.el.title = "All Branches";
+            this.el.min_width = 50;
+            this.el.resizable = false;
             var child_0 = new Xcls_cr_all_branches( _this );
             child_0.ref();
             this.el.pack_start (  child_0.el , false );
@@ -856,6 +1008,8 @@ public class Clones : Object
             this.el = new Gtk.CellRendererText();
 
             // my vars (dec)
+
+            // set gobject values
         }
 
         // user defined functions
@@ -881,6 +1035,10 @@ public class Clones : Object
             this.el = new Gtk.Button();
 
             // my vars (dec)
+
+            // set gobject values
+            this.el.expand = false;
+            this.el.label = "Close";
         }
 
         // user defined functions