From 7106f6baae38de104de66667d4a318d851758dbe Mon Sep 17 00:00:00 2001 From: Hylke Bons Date: Sat, 27 Aug 2011 20:57:34 +0200 Subject: [PATCH] Add nicer error reporting --- SparkleLib/SparkleFetcherBase.cs | 8 +-- SparkleShare/SparkleController.cs | 4 +- SparkleShare/SparkleSetup.cs | 68 +++++++++++++++++-------- SparkleShare/SparkleSetupController.cs | 11 +++- SparkleShare/SparkleSetupWindow.cs | 4 +- data/icons/Makefile.am | 1 + data/icons/list-point-16.png | Bin 0 -> 676 bytes 7 files changed, 66 insertions(+), 30 deletions(-) create mode 100644 data/icons/list-point-16.png diff --git a/SparkleLib/SparkleFetcherBase.cs b/SparkleLib/SparkleFetcherBase.cs index 654fd2c9..6c7fccc0 100644 --- a/SparkleLib/SparkleFetcherBase.cs +++ b/SparkleLib/SparkleFetcherBase.cs @@ -40,11 +40,10 @@ namespace SparkleLib { protected string target_folder; protected string remote_url; + private Thread thread; - public abstract bool Fetch (); - - + public SparkleFetcherBase (string server, string remote_folder, string target_folder) { this.target_folder = target_folder; @@ -52,6 +51,9 @@ namespace SparkleLib { } + public abstract bool Fetch (); + + // Clones the remote repository public void Start () { diff --git a/SparkleShare/SparkleController.cs b/SparkleShare/SparkleController.cs index be12ee68..1f361a10 100644 --- a/SparkleShare/SparkleController.cs +++ b/SparkleShare/SparkleController.cs @@ -45,7 +45,7 @@ namespace SparkleShare { public delegate void FolderFetchedEventHandler (); public event FolderFetchErrorEventHandler FolderFetchError; - public delegate void FolderFetchErrorEventHandler (); + public delegate void FolderFetchErrorEventHandler (string remote_url); public event FolderFetchingEventHandler FolderFetching; public delegate void FolderFetchingEventHandler (double percentage); @@ -1051,7 +1051,7 @@ namespace SparkleShare { this.fetcher.Failed += delegate { if (FolderFetchError != null) - FolderFetchError (); + FolderFetchError (this.fetcher.RemoteUrl); this.fetcher.Dispose (); diff --git a/SparkleShare/SparkleSetup.cs b/SparkleShare/SparkleSetup.cs index 72000dbe..53c4cfc3 100644 --- a/SparkleShare/SparkleSetup.cs +++ b/SparkleShare/SparkleSetup.cs @@ -331,29 +331,55 @@ namespace SparkleShare { case PageType.Error: { - string n = Environment.NewLine; - Header = _("Something went wrong") + "…"; - Description = "We don't know exactly what the problem is, " + - "but we can try to help you pinpoint it."; + + VBox points = new VBox (false, 0); + Image list_point_one = new Image (SparkleUIHelpers.GetIcon ("list-point", 16)) { }; + Image list_point_two = new Image (SparkleUIHelpers.GetIcon ("list-point", 16)) { }; + Image list_point_three = new Image (SparkleUIHelpers.GetIcon ("list-point", 16)) { }; + + Label label_one = new Label () { + Text = "First, have you tried turning it off and on again?", + Wrap = true, + Xalign = 0 + }; + + Label label_two = new Label () { + Markup = "" + Controller.PreviousUrl + " is the address we've compiled. " + + "Does this look allright?", + Wrap = true, + Xalign = 0 + }; + + Label label_three = new Label () { + Text = "The host needs to know who you are. Did you upload the key that's in " + + "your SparkleShare folder?", + Wrap = true, + Xalign = 0 + }; + + + points.PackStart (new Label ("Please check the following:") { Xalign = 0 }, false, false, 6); + + HBox point_one = new HBox (false, 0); + point_one.PackStart (list_point_one, false, false, 0); + point_one.PackStart (label_one, true, true, 12); + points.PackStart (point_one, false, false, 12); + + HBox point_two = new HBox (false, 0); + point_two.PackStart (list_point_two, false, false, 0); + point_two.PackStart (label_two, true, true, 12); + points.PackStart (point_two, false, false, 12); + + HBox point_three = new HBox (false, 0); + point_three.PackStart (list_point_three, false, false, 0); + point_three.PackStart (label_three, true, true, 12); + points.PackStart (point_three, false, false, 12); + + points.PackStart (new Label (""), true, true, 0); - Label l = new Label ( - "First, have you tried turning it off and on again?" + n + - n + - Controller.SyncingFolder +" is the address we've compiled from the information " + - "you entered. Does this look correct?" + n + - n + - "The host needs to know who you are. Have you uploaded the key that sits in your SparkleShare folder?"); - - - - l.Xpad = 12; - l.Wrap = true; - - - - Button try_again_button = new Button (_("Try Again")) { + Button try_again_button = new Button (_("Try Again…")) { Sensitive = true }; @@ -362,7 +388,7 @@ namespace SparkleShare { }; AddButton (try_again_button); - Add (l); + Add (points); break; } diff --git a/SparkleShare/SparkleSetupController.cs b/SparkleShare/SparkleSetupController.cs index b314b6a9..3ff5e43f 100644 --- a/SparkleShare/SparkleSetupController.cs +++ b/SparkleShare/SparkleSetupController.cs @@ -37,6 +37,12 @@ namespace SparkleShare { public event UpdateProgressBarEventHandler UpdateProgressBarEvent; public delegate void UpdateProgressBarEventHandler (double percentage); + public string PreviousUrl { + get { + return this.previous_url; + } + } + public string PreviousServer { get { return this.previous_server; @@ -63,6 +69,7 @@ namespace SparkleShare { private string previous_server = ""; private string previous_folder = ""; + private string previous_url = ""; private string syncing_folder = ""; private PageType previous_page; @@ -117,7 +124,9 @@ namespace SparkleShare { this.syncing_folder = ""; }; - SparkleShare.Controller.FolderFetchError += delegate { + SparkleShare.Controller.FolderFetchError += delegate (string remote_url) { + this.previous_url = remote_url; + if (ChangePageEvent != null) ChangePageEvent (PageType.Error); diff --git a/SparkleShare/SparkleSetupWindow.cs b/SparkleShare/SparkleSetupWindow.cs index ea3fe6a5..856576e3 100644 --- a/SparkleShare/SparkleSetupWindow.cs +++ b/SparkleShare/SparkleSetupWindow.cs @@ -149,9 +149,7 @@ namespace SparkleShare { new public void ShowAll () { - - Present (); - + Present (); base.ShowAll (); } diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am index 79026af3..d09cc805 100644 --- a/data/icons/Makefile.am +++ b/data/icons/Makefile.am @@ -35,6 +35,7 @@ app_theme_icons = \ status,document-deleted-12.png \ status,document-moved-12.png \ status,dialog-error-16.png \ + status,list-point-16.png \ status,dialog-error-24.png install_icon_exec = $(top_srcdir)/build/icon-theme-installer \ diff --git a/data/icons/list-point-16.png b/data/icons/list-point-16.png new file mode 100644 index 0000000000000000000000000000000000000000..6ef8de76e0f5bf01c09da24a07c61cfe558d7a4b GIT binary patch literal 676 zcmV;V0$crwP)5 zl1oTbVI0MO-{a21M#B_R#9l-oXcPp6(?)2~B7y{4Mu9@O$#RS~LMu0okc%jC6BNCq zMPfd15iMrWDWnuP(IPA}ow0!)<9P4f`?UyPGZWN-v-$pq!}*{8hcSkHhP!mEu~WAd zo8?nd1jeIrclCk3aF;a@j#!~$nl%(P0Jzf98$5aR>}dqE;fU4n-v&x*nhu}wwKrd{ z4f;b9;fU2%OeY#6`YVQ=TOJkJo9%;vsn26nmF>ePxAA!V*2;(ZnPFo%AB#FaHw-$p z>A83xDHKX5gpddX0EtgSc(|1Lcd)Cxp7`{*Gd4M}fH9|HQD+7~1Grv}*vDrmsZm0K z5C{Q60m5V1o+G_9&%wGQR!!BO+NWc8C&Ce{BNlb~H9*c=C7oHocC*-S7Ns<$C1sQZ zLijB|M!48sj(1C=)P(9pYjao0(5pv%$FEw)G{Dl2Io>Bnm(2P=eF~WywGEfv2*dEE+1BNH1p0gO_(!va6Ym6#!ZeU0XL$ zmOyFA$XqYlC#eqYr*8WRCf~&E#M}5+`DMhod1o}n6nu_w#4?v#yZPlMNv2Zf#pvLQ?bsc$8%}?|wxEMGI60fdRAO~{ zc52bv6uF?Yza^+BugrY=o*FhT7dA)!rvyS0Urwj)#iE6g^YI%&-U+mBcICDJ0000< KMNUMnLSTZVNH5j^ literal 0 HcmV?d00001