[chronojump] Automatic ping on startup (nice with the GUI)



commit b219afacc1eb07a7c484f6b9c2a78b5fc2dc3448
Author: Xavier de Blas <xaviblas gmail com>
Date:   Mon Sep 12 20:00:37 2016 +0200

    Automatic ping on startup (nice with the GUI)

 src/gui/chronojump.cs |   55 +++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 44 insertions(+), 11 deletions(-)
---
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index 8d0c49e..f6f2c17 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -662,7 +662,11 @@ public partial class ChronoJumpWindow
                string buildDate = " (c)";
                label_version.Text = progVersion + buildDate;
                LogB.Information("Build date:" + buildDate);
-       
+
+               //send ping without freezing the interface
+               pingDoing = false;
+               GLib.Timeout.Add(2000, new GLib.TimeoutHandler(pingStart));
+
                //moveStartTestInitial();
        }
 
@@ -2542,6 +2546,10 @@ public partial class ChronoJumpWindow
                encoderRProcAnalyze.SendEndProcess();
 
                LogB.Information("Bye3!");
+
+               //exit start ping if has not ended
+               if(pingDoing)
+                       pingEnded = true;
                
                Log.End();
 
@@ -6587,25 +6595,50 @@ LogB.Debug("X");
                                        js.ResultMessage);
                }
        }
-       
-       private void on_menuitem_ping_activate (object o, EventArgs args) {
+
+       bool pingDoing;
+       bool pingEnded;
+       private bool pingStart ()
+       {
+               if(pingEnded)
+                       return false;
+
+               if(! pingDoing)
+                       pingDo(false);
+               
+               return true;
+       }
+
+       private void on_menuitem_ping_activate (object o, EventArgs args) 
+       {
+               pingDo(true);
+       }
+
+       private void pingDo(bool showInWindow)
+       {
+               pingEnded = false;
+
                Json js = new Json();
                bool success = js.Ping(UtilAll.GetOS(), UtilAll.ReadVersion(), preferences.machineID);
 
                if(success) {
                        LogB.Information(js.ResultMessage);
-                       new DialogMessage(
-                                       "Chronojump",
-                                       Constants.MessageTypes.INFO, 
-                                       js.ResultMessage);
+                       if(showInWindow)
+                               new DialogMessage(
+                                               "Chronojump",
+                                               Constants.MessageTypes.INFO, 
+                                               js.ResultMessage);
                }
                else {
                        LogB.Error(js.ResultMessage);
-                       new DialogMessage(
-                                       "Chronojump",
-                                       Constants.MessageTypes.WARNING, 
-                                       js.ResultMessage);
+                       if(showInWindow)
+                               new DialogMessage(
+                                               "Chronojump",
+                                               Constants.MessageTypes.WARNING, 
+                                               js.ResultMessage);
                }
+
+               pingEnded = true;
                /*
                new DialogMessage(
                                "Chronojump",


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]