diff options
-rw-r--r-- | mail/ChangeLog | 6 | ||||
-rw-r--r-- | mail/mail-account-editor.c | 33 |
2 files changed, 38 insertions, 1 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index db02cf0c80..07bfc4b533 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,9 @@ +2001-02-12 Jeffrey Stedfast <fejj@ximian.com> + + * mail-account-editor.c (construct): Strip the leading "/" from + the Namespace/Path entry if the provider doesn't require absolute + pathnames. + 2001-02-12 Kjartan Maraas <kmaraas@gnome.org> * Makefile.am: xml-i18n-tools setup. diff --git a/mail/mail-account-editor.c b/mail/mail-account-editor.c index 886b696218..5ce5db255b 100644 --- a/mail/mail-account-editor.c +++ b/mail/mail-account-editor.c @@ -708,7 +708,38 @@ construct (MailAccountEditor *editor, const MailConfigAccount *account) editor->source_passwd = GTK_ENTRY (glade_xml_get_widget (gui, "txtSourcePasswd")); gtk_entry_set_text (editor->source_passwd, url && url->passwd ? url->passwd : ""); editor->source_path = GTK_ENTRY (glade_xml_get_widget (gui, "txtSourcePath")); - gtk_entry_set_text (editor->source_path, url && url->path ? url->path : ""); + if (url && url->path && *(url->path)) { + GList *providers; + CamelProvider *provider = NULL; + + providers = camel_session_list_providers (session, TRUE); + while (providers) { + provider = providers->data; + + if (strcmp (provider->domain, "mail")) { + provider = NULL; + providers = providers->next; + continue; + } + + if (provider->object_types[CAMEL_PROVIDER_STORE] && provider->flags & CAMEL_PROVIDER_IS_SOURCE) + if (!url || !g_strcasecmp (provider->protocol, url->protocol)) + break; + + provider = NULL; + providers = providers->next; + } + + if (provider) { + if (provider->url_flags & CAMEL_URL_PATH_IS_ABSOLUTE) + gtk_entry_set_text (editor->source_path, url->path); + else + gtk_entry_set_text (editor->source_path, url->path + 1); + } else { + /* we've got a serious problem if we ever get to here */ + g_assert_not_reached (); + } + } editor->save_passwd = GTK_CHECK_BUTTON (glade_xml_get_widget (gui, "chkSavePasswd")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->save_passwd), account->source->save_passwd); editor->source_auth = GTK_OPTION_MENU (glade_xml_get_widget (gui, "omenuSourceAuth")); |