GitMonitor.vala
[gitlive] / StatusIcon.vala
index 74ef174..6419910 100644 (file)
@@ -39,7 +39,8 @@ public class StatusIconA : StatusIcon {
 
     public bool paused = false;
     public static StatusIconA statusicon;
-     
+    
     public StatusIconA() {
         
         statusicon = this;
@@ -56,7 +57,7 @@ public class StatusIconA : StatusIcon {
         menu.ref();       
                this.button_press_event.connect( ( ev ) =>{
              print("button press event called\n");
-             
             menu.show_all();
             
             if (this.paused) {
@@ -82,7 +83,7 @@ public class StatusIconA : StatusIcon {
            });
        this.popup_menu.connect( (  button,   time) =>{
        //this.button_press_event.connect( (  ) =>{
-               
             //print(Array.prototype.slice.call(arguments).join(','));
             print("menu activiate called\n");
             //var menu = this.get('menu');
@@ -303,7 +304,7 @@ public class StatusIconA : StatusIcon {
                 
                this.total = tr.length;
                 this.has_error = 0;
-                
+                this.pull_all_error_message = "";
                 for (var i= 0; i< tr.length;i++) {
                     statusicon.set_from_stock( 
                                i%2 == 0 ?  Gtk.Stock.FULLSCREEN : Gtk.Stock.LEAVE_FULLSCREEN );
@@ -326,15 +327,17 @@ public class StatusIconA : StatusIcon {
         
                }
                uint total = 0; 
-                       unit has_error = 0;
+                       uint has_error = 0;
+                       string pull_all_error_message = "";
                
                void pullAllCallback(GitRepo repo, int err, string res)
                {
                        this.total--;
                        
                        if (err > 0) {
-                       
-                       
+                               this.has_error = 1;
+                               this.pull_all_error_message += this.pull_all_error_message.length > 0 ? "\n" : "";
+                               this.pull_all_error_message += "Error Pulling " + repo.name +"\n" + res;
                        }
                        
                        if (!Regex.match_simple ("Already up-to-date", res) ) {
@@ -350,6 +353,10 @@ public class StatusIconA : StatusIcon {
  
                        }
                        if (this.total < 1) {
+                               if (this.has_error > 0) {
+                                       GitMonitor.gitmonitor.pauseError(this.pull_all_error_message);
+                                       return;
+                               }
                        
                                statusicon.set_tooltip_text("Gitlive");
                   
@@ -397,7 +404,7 @@ public class StatusIconA : StatusIcon {
                 this.accel_group = null;
                 
                 this.activate.connect( () => {
-                 //var ret = imports.Clones.Clones.show();
+                      Clones.singleton().show();
                 });
             }