private void Main_UpdateCheckerCheckResult(object sender, EventArgs ea) { clsUpdate.CheckEventArgs e = (clsUpdate.CheckEventArgs)ea; if (e.Error != null) { if (e.Error.Message.Contains("The remote name could not be resolved")) { SetUpdateValue("Unable to Connect: Server not Found", false); if (tReset != 0) { GLib.Source.Remove(tReset); tReset = 0; } tReset = GLib.Timeout.Add(3500, ResetUpdate); } else { SetUpdateValue(e.Error.Message, false); RestartReset(); } } else if (e.Cancelled) { SetUpdateValue("Update Check Cancelled", false); RestartReset(); } else { AppSettings mySettings = new AppSettings(); dlgUpdate fUpdate; switch (e.Result) { case ResultType.NewUpdate: SetButtonUpdate("_New Update Available", "Click to begin download."); System.Threading.Thread.Sleep(0); fUpdate = new dlgUpdate(); fUpdate.NewUpdate(e.Version, false); switch ((Gtk.ResponseType)fUpdate.Run()) { case Gtk.ResponseType.Yes: updateChecker.DownloadUpdate(sUpdatePath); break; case Gtk.ResponseType.No: break; case Gtk.ResponseType.Ok: updateChecker.DownloadUpdate(sUpdatePath); mySettings.UpdateBETA = false; mySettings.Save(); break; case Gtk.ResponseType.Cancel: mySettings.UpdateBETA = false; mySettings.Save(); break; default: break; } fUpdate.Destroy(); fUpdate.Dispose(); fUpdate = null; break; case ResultType.NewBeta: if (mySettings.UpdateBETA) { SetButtonUpdate("_New BETA Available", "Click to begin download."); System.Threading.Thread.Sleep(0); fUpdate = new dlgUpdate(); fUpdate.NewUpdate(e.Version, true); switch ((Gtk.ResponseType)fUpdate.Run()) { case Gtk.ResponseType.Yes: updateChecker.DownloadUpdate(sUpdatePath); break; case Gtk.ResponseType.No: break; case Gtk.ResponseType.Ok: updateChecker.DownloadUpdate(sUpdatePath); mySettings.UpdateBETA = false; mySettings.Save(); break; case Gtk.ResponseType.Cancel: mySettings.UpdateBETA = false; mySettings.Save(); SetUpdateValue("No New Updates", false); break; default: break; } fUpdate.Destroy(); fUpdate.Dispose(); fUpdate = null; } else { SetUpdateValue("No New Updates", false); RestartReset(); } break; case ResultType.NoUpdate: SetUpdateValue("No New Updates", false); RestartReset(); break; } mySettings = null; } }
protected void updateChecker_CheckResult(object sender, clsUpdate.CheckEventArgs e) { Gtk.Application.Invoke(sender, (EventArgs)e, Main_UpdateCheckerCheckResult); }