aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-send-recv.c
diff options
context:
space:
mode:
authorPeter Williams <peterw@ximian.com>2001-08-14 05:23:04 +0800
committerPeter Williams <peterw@src.gnome.org>2001-08-14 05:23:04 +0800
commite86531cbd14a2ac303a5744ab5eb99c0c214dc50 (patch)
treede52fac44bfed276ed932178cf09e78996bc14e1 /mail/mail-send-recv.c
parenta5facd0e78bda439cd4e72f50817fe5f5dbb910c (diff)
downloadgsoc2013-evolution-e86531cbd14a2ac303a5744ab5eb99c0c214dc50.tar.gz
gsoc2013-evolution-e86531cbd14a2ac303a5744ab5eb99c0c214dc50.tar.zst
gsoc2013-evolution-e86531cbd14a2ac303a5744ab5eb99c0c214dc50.zip
Break most of the functionality into a separate function.
2001-08-13 Peter Williams <peterw@ximian.com> * mail-send-recv.c (mail_autoreceive_setup): Break most of the functionality into a separate function. (autoreceive_setup_list): Rename of mail_autoreceive_setup that is passed a list of accounts. (mail_autoreceive_setup_account): New function. Set up a single account using autoreceive_setup_account. * mail-send-receive.h: Prototype mail_autoreceive_setup_account. * mail-account-gui.c (mail_account_gui_save): Instead of setting up all accounts, set up only this source with the new mail_autoreceive_setup_account. * mail-config-druid.c (druid_finish): ... which means we can call mail_config_add_account() after the MailConfigAccount has been created by mail_account_gui_save() because we no longer need the account to be in the list for mail_autoreceive_setup() * mail-config.c (mail_config_add_account): ... which means we can possibly add a shortcut to the account's sources's Inbox here. (maybe_add_shortcut): New function. If the store is a storage, add a shortcut to its inbox. Hope that /INBOX exists. (add_shortcut_entry): New function. Creates a shortcut if it doesn't yet exist. 2001-08-13 Peter Williams <peterw@ximian.com> * mail-account-gui.c (service_complete): Take account of the fact that service->path may be NULL (if service is a transport.) * mail-config-druid.c (druid_finish): Bleah, bugfix in case the account has no source. svn path=/trunk/; revision=11961
Diffstat (limited to 'mail/mail-send-recv.c')
-rw-r--r--mail/mail-send-recv.c26
1 files changed, 21 insertions, 5 deletions
diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c
index 7012b5fd35..e70eade3e5 100644
--- a/mail/mail-send-recv.c
+++ b/mail/mail-send-recv.c
@@ -696,13 +696,11 @@ static void auto_clean_set(void *key, struct _auto_data *info, GHashTable *set)
/* call to setup initial, and after changes are made to the config */
/* FIXME: Need a cleanup funciton for when object is deactivated */
-void
-mail_autoreceive_setup(void)
+static void
+autoreceive_setup_list(GSList *sources, gboolean clear_absent)
{
- GSList *sources;
GHashTable *set_hash;
- sources = mail_config_get_sources();
if (!sources)
return;
@@ -744,10 +742,28 @@ mail_autoreceive_setup(void)
sources = sources->next;
}
- g_hash_table_foreach(set_hash, (GHFunc)auto_clean_set, auto_active);
+ if (clear_absent)
+ g_hash_table_foreach(set_hash, (GHFunc)auto_clean_set, auto_active);
g_hash_table_destroy(set_hash);
}
+void
+mail_autoreceive_setup (void)
+{
+ autoreceive_setup_list (mail_config_get_sources(), TRUE);
+}
+
+void
+mail_autoreceive_setup_account (MailConfigService *service)
+{
+ GSList list;
+
+ list.data = service;
+ list.next = NULL;
+
+ autoreceive_setup_list (&list, FALSE);
+}
+
/* we setup the download info's in a hashtable, if we later need to build the gui, we insert
them in to add them. */
void mail_receive_uri(const char *uri, int keep)