protected virtual void OnButtonRefreshClicked(object sender, System.EventArgs e) { Gtk.Builder builder = new Gtk.Builder(null, "Mono.Addins.GuiGtk3.interfaces.ProgressDialog.ui", null); ProgressDialog pdlg = new ProgressDialog(builder, builder.GetObject("ProgressDialog").Handle); pdlg.Show(); pdlg.SetMessage(AddinManager.CurrentLocalizer.GetString("Updating repository")); bool updateDone = false; Thread t = new Thread(delegate() { try { service.Repositories.UpdateAllRepositories(pdlg); } finally { updateDone = true; } }); t.Start(); while (!updateDone) { while (Gtk.Application.EventsPending()) { Gtk.Application.RunIteration(); } Thread.Sleep(50); } pdlg.Destroy(); LoadGallery(); LoadUpdates(); }
protected virtual void OnButtonRefreshClicked(object sender, System.EventArgs e) { Gtk.Builder builder = new Gtk.Builder (null, "Mono.Addins.GuiGtk3.interfaces.ProgressDialog.ui", null); ProgressDialog pdlg = new ProgressDialog (builder, builder.GetObject ("ProgressDialog").Handle); pdlg.Show (); pdlg.SetMessage (AddinManager.CurrentLocalizer.GetString ("Updating repository")); bool updateDone = false; Thread t = new Thread (delegate () { try { service.Repositories.UpdateAllRepositories (pdlg); } finally { updateDone = true; } }); t.Start (); while (!updateDone) { while (Gtk.Application.EventsPending ()) Gtk.Application.RunIteration (); Thread.Sleep (50); } pdlg.Destroy (); LoadGallery (); LoadUpdates (); }
protected void OnAdd (object sender, EventArgs e) { Gtk.Builder builder = new Gtk.Builder (null, "Mono.Addins.GuiGtk3.interfaces.NewSiteDialog.ui", null); NewSiteDialog dlg = new NewSiteDialog (builder, builder.GetObject ("NewSiteDialog").Handle); try { if (dlg.Run ()) { string url = dlg.Url; if (!url.StartsWith ("http://") && !url.StartsWith ("https://") && !url.StartsWith ("file://")) { url = "http://" + url; } try { new Uri (url); } catch { Services.ShowError (null, "Invalid url: " + url, null, true); } if (!service.Repositories.ContainsRepository (url)) { builder = new Gtk.Builder (null, "Mono.Addins.GuiGtk3.interfaces.ProgressDialog.ui", null); ProgressDialog pdlg = new ProgressDialog (builder, builder.GetObject ("ProgressDialog").Handle); pdlg.Show (); pdlg.SetMessage (AddinManager.CurrentLocalizer.GetString ("Registering repository")); bool done = false; AddinRepository rr = null; Exception error = null; ThreadPool.QueueUserWorkItem (delegate { try { rr = service.Repositories.RegisterRepository (pdlg, url, true); } catch (System.Exception ex) { error = ex; } finally { done = true; } }); while (!done) { if (Gtk.Application.EventsPending ()) Gtk.Application.RunIteration (); else Thread.Sleep (100); } pdlg.Destroy (); if (pdlg.HadError) { if (rr != null) service.Repositories.RemoveRepository (rr.Url); return; } if (error != null) { Services.ShowError (error, "The repository could not be registered", null, true); return; } AppendRepository (rr); } } } finally { dlg.Destroy (); } }
protected void OnAdd(object sender, EventArgs e) { Gtk.Builder builder = new Gtk.Builder(null, "Mono.Addins.GuiGtk3.interfaces.NewSiteDialog.ui", null); NewSiteDialog dlg = new NewSiteDialog(builder, builder.GetObject("NewSiteDialog").Handle); try { if (dlg.Run()) { string url = dlg.Url; if (!url.StartsWith("http://") && !url.StartsWith("https://") && !url.StartsWith("file://")) { url = "http://" + url; } try { new Uri(url); } catch { Services.ShowError(null, "Invalid url: " + url, null, true); } if (!service.Repositories.ContainsRepository(url)) { builder = new Gtk.Builder(null, "Mono.Addins.GuiGtk3.interfaces.ProgressDialog.ui", null); ProgressDialog pdlg = new ProgressDialog(builder, builder.GetObject("ProgressDialog").Handle); pdlg.Show(); pdlg.SetMessage(AddinManager.CurrentLocalizer.GetString("Registering repository")); bool done = false; AddinRepository rr = null; Exception error = null; ThreadPool.QueueUserWorkItem(delegate { try { rr = service.Repositories.RegisterRepository(pdlg, url, true); } catch (System.Exception ex) { error = ex; } finally { done = true; } }); while (!done) { if (Gtk.Application.EventsPending()) { Gtk.Application.RunIteration(); } else { Thread.Sleep(100); } } pdlg.Destroy(); if (pdlg.HadError) { if (rr != null) { service.Repositories.RemoveRepository(rr.Url); } return; } if (error != null) { Services.ShowError(error, "The repository could not be registered", null, true); return; } AppendRepository(rr); } } } finally { dlg.Destroy(); } }