aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog6
-rw-r--r--mail/mail-config-druid.c39
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;
}