diff options
-rw-r--r-- | mail/ChangeLog | 6 | ||||
-rw-r--r-- | mail/mail-config-druid.c | 39 |
2 files changed, 40 insertions, 5 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 6f9901fcbc..670a739b5f 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,5 +1,11 @@ 2001-01-11 Jeffrey Stedfast <fejj@helixcode.com> + * mail-config-druid.c (transport_next): If the service_check + fails, pop-up a warning dialog letting the user know he or she may + have problems and then let them continue on with their lives. + (incoming_next): Same (+ jump them over the auth page to the + transport page). + * mail-account-editor.c (apply_changes): Eek! Don't destroy the account if the connection fails, duh. This is what is causing the segfaults. diff --git a/mail/mail-config-druid.c b/mail/mail-config-druid.c index 6982965105..cc0413fe03 100644 --- a/mail/mail-config-druid.c +++ b/mail/mail-config-druid.c @@ -346,9 +346,28 @@ incoming_next (GnomeDruidPage *page, GnomeDruid *druid, gpointer data) url = camel_url_new (source_url, NULL); g_free (source_url); - /* If we can't connect, don't let them continue. */ + /* If we can't connect, warn them and continue on to the Transport page. */ if (!mail_config_check_service (url, CAMEL_PROVIDER_STORE, &authtypes)) { + GtkWidget *dialog; + char *source, *warning; + + source = camel_url_to_string (url, FALSE); camel_url_free (url); + + warning = g_strdup_printf (_("Failed to verify the incoming mail configuration.\n" + "You may experience problems retrieving your mail from %s"), + source); + g_free (source); + dialog = gnome_warning_dialog_parented (warning, GTK_WINDOW (config)); + g_free (warning); + + gnome_dialog_run_and_close (GNOME_DIALOG (dialog)); + + /* Skip to transport page. */ + config->have_auth_page = FALSE; + transport_page = glade_xml_get_widget (config->gui, "druidTransportPage"); + gnome_druid_set_page (config->druid, GNOME_DRUID_PAGE (transport_page)); + return TRUE; } camel_url_free (url); @@ -588,12 +607,22 @@ transport_next (GnomeDruidPage *page, GnomeDruid *druid, gpointer data) /* If we can't connect, don't let them continue. */ if (!mail_config_check_service (url, CAMEL_PROVIDER_TRANSPORT, NULL)) { - camel_url_free (url); - return TRUE; + GtkWidget *dialog; + char *transport, *warning; + + transport = camel_url_to_string (url, FALSE); + + warning = g_strdup_printf (_("Failed to verify the outgoing mail configuration.\n" + "You may experience problems sending your mail using %s"), + transport); + g_free (transport); + dialog = gnome_warning_dialog_parented (warning, GTK_WINDOW (config)); + g_free (warning); + + gnome_dialog_run_and_close (GNOME_DIALOG (dialog)); } - camel_url_free (url); - /* FIXME: check if we need auth; */ + camel_url_free (url); return FALSE; } |