From 7701d36a65aba3e183fe30e6a0818c5405eb1f46 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 13 Aug 2007 07:27:27 +0000 Subject: 2007-08-13 mcrha Fix for bug #352346 svn path=/trunk/; revision=33995 --- mail/ChangeLog | 8 ++++++++ mail/em-account-editor.c | 14 ++++++++++++-- mail/em-migrate.c | 37 +++++++++++++++++++++++++++++++++++++ mail/mail-config.glade | 1 - 4 files changed, 57 insertions(+), 3 deletions(-) diff --git a/mail/ChangeLog b/mail/ChangeLog index 069f5910a9..44dd91a430 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,11 @@ +2007-08-13 Milan Crha + + ** Fix for bug #352346 + + * em-migrate.c (em_update_accounts_2_11), (em_migrate): + Added function to change "spool" to "spooldir" for those + spools which points on directories. + 2007-08-13 Johnny Jacob ** Fix for #458498 from Lucky Wankhede diff --git a/mail/em-account-editor.c b/mail/em-account-editor.c index ce82449fa7..5fd986d938 100644 --- a/mail/em-account-editor.c +++ b/mail/em-account-editor.c @@ -1665,8 +1665,18 @@ emae_setup_service(EMAccountEditor *emae, EMAccountEditorService *service, Glade } if (url->user) gtk_entry_set_text(service->username, url->user); - if (service->pathentry && url->path) - gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (service->pathentry), url->path); + if (service->pathentry) { + GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER; + + if (service->provider && (service->provider->url_flags & CAMEL_URL_NEED_PATH_DIR) == 0) + action = GTK_FILE_CHOOSER_ACTION_OPEN; + + if (action != gtk_file_chooser_get_action (GTK_FILE_CHOOSER (service->pathentry))) + gtk_file_chooser_set_action (GTK_FILE_CHOOSER (service->pathentry), action); + + if (url->path) + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (service->pathentry), url->path); + } tmp = camel_url_get_param(url, "use_ssl"); if (tmp == NULL) diff --git a/mail/em-migrate.c b/mail/em-migrate.c index 09aa497b61..82109a1f3c 100644 --- a/mail/em-migrate.c +++ b/mail/em-migrate.c @@ -2639,6 +2639,39 @@ em_migrate_1_4 (const char *evolution_dir, xmlDocPtr filters, xmlDocPtr vfolders return 0; } +static void +em_update_accounts_2_11 (void) +{ + EAccountList *accounts; + EIterator *iter; + gboolean changed = FALSE; + + if (!(accounts = mail_config_get_accounts ())) + return; + + iter = e_list_get_iterator ((EList *) accounts); + while (e_iterator_is_valid (iter)) { + EAccount *account = (EAccount *) e_iterator_get (iter); + + if (g_str_has_prefix (account->source->url, "spool://")) { + if (g_file_test (account->source->url + 8, G_FILE_TEST_IS_DIR)) { + char *str = g_strdup_printf ("spooldir://%s", account->source->url + 8); + + g_free (account->source->url); + account->source->url = str; + changed = TRUE; + } + } + + e_iterator_next (iter); + } + + g_object_unref (iter); + + if (changed) + mail_config_save_accounts (); +} + #endif static int @@ -2777,6 +2810,10 @@ em_migrate (const char *evolution_dir, int major, int minor, int revision, Camel g_free (path); } + + if (major < 2 || (major == 2 && minor < 12)) { + em_update_accounts_2_11 (); + } #endif /* !G_OS_WIN32 */ return 0; } diff --git a/mail/mail-config.glade b/mail/mail-config.glade index fc8699093f..d5e336f8cf 100644 --- a/mail/mail-config.glade +++ b/mail/mail-config.glade @@ -1354,7 +1354,6 @@ For example: "Work" or "Personal" 2 2 3 - fill -- cgit v1.2.3