aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-config.c
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2001-03-29 01:48:07 +0800
committerDan Winship <danw@src.gnome.org>2001-03-29 01:48:07 +0800
commitb38a35a5187475b13210474cea7140025793b502 (patch)
tree3508123310f89e26c0d4f93e6d764fd6ccf7a6ac /mail/mail-config.c
parent34ea3020395002ea43ddad071db305b4a35c51cc (diff)
downloadgsoc2013-evolution-b38a35a5187475b13210474cea7140025793b502.tar.gz
gsoc2013-evolution-b38a35a5187475b13210474cea7140025793b502.tar.zst
gsoc2013-evolution-b38a35a5187475b13210474cea7140025793b502.zip
Set up the sent/drafts folder buttons. (folder_picker_clicked): Pop up the
* mail-account-gui.c (mail_account_gui_new): Set up the sent/drafts folder buttons. (folder_picker_clicked): Pop up the folder selector when sent or drafts is clicked. (mail_account_gui_save): Save the sent/drafts folders. * mail-config.c (account_copy): copy sent/drafts info (config_read): read sent/drafts info (mail_config_write): write sent/drafts info * mail-callbacks.c (composer_send_cb, composer_postpone_cb): split out some common code here (and fix inconsistencies). Always set headers on the message giving the account name, transport, and sent folder to use. * mail-ops.c (mail_send_message): If the message has an X-Evolution-Account header, use the transport/sent folder info for that account (assuming it still exists). Otherwise, if it has X-Evolution-Transport and/or X-Evolution-Fcc, use those. If not, use the default transport and sent folder. FIXME: Falls back silently to the default sent folder if it can't open the account-specific one... (send_queue_send): remove the X-Evolution-Transport, etc processing here, as it gets done by mail_send_message now. FIXME: We only sync the default sent folder. * component-factory.c (owner_set_cb): While setting up the standard folders, also record their URIs. svn path=/trunk/; revision=8991
Diffstat (limited to 'mail/mail-config.c')
-rw-r--r--mail/mail-config.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/mail/mail-config.c b/mail/mail-config.c
index 41b1b482bf..00e0c8e7d0 100644
--- a/mail/mail-config.c
+++ b/mail/mail-config.c
@@ -141,6 +141,11 @@ account_copy (const MailConfigAccount *account)
new->source = service_copy (account->source);
new->transport = service_copy (account->transport);
+ new->drafts_folder_name = g_strdup (account->drafts_folder_name);
+ new->drafts_folder_uri = g_strdup (account->drafts_folder_uri);
+ new->sent_folder_name = g_strdup (account->sent_folder_name);
+ new->sent_folder_uri = g_strdup (account->sent_folder_uri);
+
return new;
}
@@ -231,6 +236,19 @@ config_read (void)
have_default = TRUE;
g_free (path);
+ path = g_strdup_printf ("account_drafts_folder_name_%d", i);
+ account->drafts_folder_name = gnome_config_get_string (path);
+ g_free (path);
+ path = g_strdup_printf ("account_drafts_folder_uri_%d", i);
+ account->drafts_folder_uri = gnome_config_get_string (path);
+ g_free (path);
+ path = g_strdup_printf ("account_sent_folder_name_%d", i);
+ account->sent_folder_name = gnome_config_get_string (path);
+ g_free (path);
+ path = g_strdup_printf ("account_sent_folder_uri_%d", i);
+ account->sent_folder_uri = gnome_config_get_string (path);
+ g_free (path);
+
/* get the identity info */
id = g_new0 (MailConfigIdentity, 1);
path = g_strdup_printf ("identity_name_%d", i);
@@ -423,6 +441,18 @@ mail_config_write (void)
path = g_strdup_printf ("account_is_default_%d", i);
gnome_config_set_bool (path, account->default_account);
g_free (path);
+ path = g_strdup_printf ("account_drafts_folder_name_%d", i);
+ gnome_config_set_string (path, account->drafts_folder_name);
+ g_free (path);
+ path = g_strdup_printf ("account_drafts_folder_uri_%d", i);
+ gnome_config_set_string (path, account->drafts_folder_uri);
+ g_free (path);
+ path = g_strdup_printf ("account_sent_folder_name_%d", i);
+ gnome_config_set_string (path, account->sent_folder_name);
+ g_free (path);
+ path = g_strdup_printf ("account_sent_folder_uri_%d", i);
+ gnome_config_set_string (path, account->sent_folder_uri);
+ g_free (path);
/* identity info */
path = g_strdup_printf ("identity_name_%d", i);