From 190eb88cdc6438875a4434030c60346480cf89b1 Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Mon, 26 Jan 2004 22:45:48 +0000 Subject: Fixes for bug #53251. 2004-01-26 Jeffrey Stedfast Fixes for bug #53251. * mail-account-gui.c (mail_account_gui_new): Convert the account drafts/sent folder uris to camel uris. (mail_account_gui_save): Convert drafts/sent camel uris into mailer uris when setting them on the account. Also, don't compare against file: anymore since those uris don't exist anymore. * em-migrate.c (em_upgrade_accounts_1_4): Update the drafts/sent folder uris. svn path=/trunk/; revision=24452 --- mail/ChangeLog | 13 +++++++++++++ mail/em-migrate.c | 41 +++++++++++++++++++++++++++++++++++++++++ mail/mail-account-gui.c | 18 +++++++++--------- 3 files changed, 63 insertions(+), 9 deletions(-) (limited to 'mail') diff --git a/mail/ChangeLog b/mail/ChangeLog index b5ca55109a..2e5984f39a 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,16 @@ +2004-01-26 Jeffrey Stedfast + + Fixes for bug #53251. + + * mail-account-gui.c (mail_account_gui_new): Convert the account + drafts/sent folder uris to camel uris. + (mail_account_gui_save): Convert drafts/sent camel uris into + mailer uris when setting them on the account. Also, don't compare + against file: anymore since those uris don't exist anymore. + + * em-migrate.c (em_upgrade_accounts_1_4): Update the drafts/sent + folder uris. + 2004-01-26 Jeffrey Stedfast * em-folder-tree.c (tree_drag_begin): Set priv->drag_row. diff --git a/mail/em-migrate.c b/mail/em-migrate.c index 6ef3a3acf6..7e81d66047 100644 --- a/mail/em-migrate.c +++ b/mail/em-migrate.c @@ -54,7 +54,9 @@ #include #include "e-util/e-bconf-map.h" +#include "e-util/e-account-list.h" +#include "mail-config.h" #include "mail-component.h" /* for em_uri_from_camel() */ #include "em-migrate.h" #include "mail-vfolder.h" @@ -1749,6 +1751,42 @@ em_upgrade_xml_1_4 (xmlDocPtr doc) return upgrade_xml_uris (doc, upgrade_xml_uris_1_4); } +static int +em_upgrade_accounts_1_4 (void) +{ + EAccountList *accounts; + EIterator *iter; + + if (!(accounts = mail_config_get_accounts ())) + return 0; + + iter = e_list_get_iterator ((EList *) accounts); + while (e_iterator_is_valid (iter)) { + EAccount *account = (EAccount *) e_iterator_get (iter); + char *url; + + if (account->drafts_folder_uri) { + url = upgrade_xml_uris_1_4 (account->drafts_folder_uri); + g_free (account->drafts_folder_uri); + account->drafts_folder_uri = url; + } + + if (account->sent_folder_uri) { + url = upgrade_xml_uris_1_4 (account->sent_folder_uri); + g_free (account->sent_folder_uri); + account->sent_folder_uri = url; + } + + e_iterator_next (iter); + } + + g_object_unref (iter); + + mail_config_save_accounts (); + + return 0; +} + static int em_migrate_pop_uid_caches_1_4 (const char *evolution_dir, CamelException *ex) { @@ -2124,6 +2162,9 @@ em_migrate_1_4 (const char *evolution_dir, xmlDocPtr filters, xmlDocPtr vfolders camel_object_unref (session); + if (em_upgrade_accounts_1_4 () == -1) + return -1; + if (em_upgrade_xml_1_4 (filters) == -1) return -1; diff --git a/mail/mail-account-gui.c b/mail/mail-account-gui.c index 40858ec792..b2c35b3bfb 100644 --- a/mail/mail-account-gui.c +++ b/mail/mail-account-gui.c @@ -1585,7 +1585,7 @@ mail_account_gui_new (EAccount *account, EMAccountPrefs *dialog) gui->drafts_folder_button = GTK_BUTTON (glade_xml_get_widget (gui->xml, "drafts_button")); g_signal_connect (gui->drafts_folder_button, "selected", G_CALLBACK (folder_selected), &gui->drafts_folder_uri); if (account->drafts_folder_uri) - gui->drafts_folder_uri = g_strdup (account->drafts_folder_uri); + gui->drafts_folder_uri = em_uri_to_camel (account->drafts_folder_uri); else gui->drafts_folder_uri = g_strdup (default_drafts_folder_uri); em_folder_selection_button_set_selection((EMFolderSelectionButton *)gui->drafts_folder_button, gui->drafts_folder_uri); @@ -1594,7 +1594,7 @@ mail_account_gui_new (EAccount *account, EMAccountPrefs *dialog) gui->sent_folder_button = GTK_BUTTON (glade_xml_get_widget (gui->xml, "sent_button")); g_signal_connect (gui->sent_folder_button, "selected", G_CALLBACK (folder_selected), &gui->sent_folder_uri); if (account->sent_folder_uri) - gui->sent_folder_uri = g_strdup (account->sent_folder_uri); + gui->sent_folder_uri = em_uri_to_camel (account->sent_folder_uri); else gui->sent_folder_uri = g_strdup (default_sent_folder_uri); em_folder_selection_button_set_selection((EMFolderSelectionButton *)gui->sent_folder_button, gui->sent_folder_uri); @@ -2006,20 +2006,20 @@ mail_account_gui_save (MailAccountGui *gui) /* Check to make sure that the Drafts folder uri is "valid" before assigning it */ if (mail_config_get_account_by_source_url (gui->drafts_folder_uri) || - !strncmp (gui->drafts_folder_uri, "file:", 5)) { - new->drafts_folder_uri = g_strdup (gui->drafts_folder_uri); + !strncmp (gui->drafts_folder_uri, "mbox:", 5)) { + new->drafts_folder_uri = em_uri_from_camel (gui->drafts_folder_uri); } else { /* assign defaults - the uri is unknown to us (probably pointed to an old source url) */ - new->drafts_folder_uri = g_strdup (default_drafts_folder_uri); + new->drafts_folder_uri = em_uri_from_camel (default_drafts_folder_uri); } /* Check to make sure that the Sent folder uri is "valid" before assigning it */ if (mail_config_get_account_by_source_url (gui->sent_folder_uri) || - !strncmp (gui->sent_folder_uri, "file:", 5)) { - new->sent_folder_uri = g_strdup (gui->sent_folder_uri); + !strncmp (gui->sent_folder_uri, "mbox:", 5)) { + new->sent_folder_uri = em_uri_from_camel (gui->sent_folder_uri); } else { /* assign defaults - the uri is unknown to us (probably pointed to an old source url) */ - new->sent_folder_uri = g_strdup (default_sent_folder_uri); + new->sent_folder_uri = em_uri_from_camel (default_sent_folder_uri); } new->always_cc = gtk_toggle_button_get_active (gui->always_cc); @@ -2036,7 +2036,7 @@ mail_account_gui_save (MailAccountGui *gui) #if defined (HAVE_NSS) new->smime_sign_default = gtk_toggle_button_get_active (gui->smime_sign_default); new->smime_sign_key = g_strdup (gtk_entry_get_text (gui->smime_sign_key)); - + new->smime_encrypt_default = gtk_toggle_button_get_active (gui->smime_encrypt_default); new->smime_encrypt_key = g_strdup (gtk_entry_get_text (gui->smime_encrypt_key)); new->smime_encrypt_to_self = gtk_toggle_button_get_active (gui->smime_encrypt_to_self); -- cgit v1.2.3