aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/ChangeLog10
-rw-r--r--mail/mail-accounts.c10
-rw-r--r--mail/mail-config-druid.c2
-rw-r--r--mail/mail-config.c18
-rw-r--r--mail/mail-config.h2
5 files changed, 35 insertions, 7 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 8ccd4fc80f..d5f13a7764 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,5 +1,15 @@
2001-01-13 Jeffrey Stedfast <fejj@ximian.com>
+ * mail-config-druid.c (druid_finish): Fixed mail_load_storages to
+ make a mini GSList of the account, not the account->source. Oops.
+
+ * mail-accounts.c (news_delete): Updated to use the remove_news()
+ function.
+
+ * mail-config.c (mail_config_remove_news): New convenience
+ function for removing news accounts.
+ (mail_config_remove_account): Pretty much the same thing.
+
* mail-ops.c (do_send_queue): Get the X-Evolution-Transport URL
and use that if it exists, else fall back on the default
transport.
diff --git a/mail/mail-accounts.c b/mail/mail-accounts.c
index dcedd6de84..29353fea63 100644
--- a/mail/mail-accounts.c
+++ b/mail/mail-accounts.c
@@ -214,13 +214,12 @@ mail_delete (GtkButton *button, gpointer data)
sel = dialog->accounts_row;
account = gtk_clist_get_row_data (dialog->mail_accounts, sel);
- g_slist_remove ((GSList *) dialog->accounts, account);
- account_destroy (account);
+ dialog->accounts = mail_config_remove_account (account);
mail_config_write ();
gtk_clist_remove (dialog->mail_accounts, sel);
- len = g_slist_length ((GSList *) dialog->accounts);
+ len = dialog->accounts ? g_slist_length ((GSList *) dialog->accounts) : 0;
if (len > 0) {
row = sel >= len ? len - 1 : sel;
gtk_clist_select_row (dialog->mail_accounts, row, 0);
@@ -305,13 +304,12 @@ news_delete (GtkButton *button, gpointer data)
int row, len;
server = gtk_clist_get_row_data (dialog->news_accounts, dialog->news_row);
- g_slist_remove ((GSList *) dialog->news, server);
- service_destroy (server);
+ dialog->news = mail_config_remove_news (server);
mail_config_write ();
gtk_clist_remove (dialog->news_accounts, dialog->news_row);
- len = g_slist_length ((GSList *) dialog->news);
+ len = dialog->news ? g_slist_length ((GSList *) dialog->news) : 0;
if (len > 0) {
row = dialog->news_row;
row = row >= len ? len - 1 : row;
diff --git a/mail/mail-config-druid.c b/mail/mail-config-druid.c
index faf2e7f2f8..67c1663839 100644
--- a/mail/mail-config-druid.c
+++ b/mail/mail-config-druid.c
@@ -224,7 +224,7 @@ druid_finish (GnomeDruidPage *page, gpointer arg1, gpointer user_data)
mail_config_add_account (account);
mail_config_write ();
- mini = g_slist_prepend (NULL, account->source);
+ mini = g_slist_prepend (NULL, account);
mail_load_storages (druid->shell, mini, TRUE);
g_slist_free (mini);
diff --git a/mail/mail-config.c b/mail/mail-config.c
index 55862acc09..04d59f7f17 100644
--- a/mail/mail-config.c
+++ b/mail/mail-config.c
@@ -576,6 +576,15 @@ mail_config_add_account (MailConfigAccount *account)
config->accounts = g_slist_append (config->accounts, account);
}
+const GSList *
+mail_config_remove_account (MailConfigAccount *account)
+{
+ config->accounts = g_slist_remove (config->accounts, account);
+ account_destroy (account);
+
+ return config->accounts;
+}
+
void
mail_config_set_default_account (const MailConfigAccount *account)
{
@@ -637,6 +646,15 @@ mail_config_add_news (MailConfigService *news)
config->news = g_slist_append (config->news, news);
}
+const GSList *
+mail_config_remove_news (MailConfigService *news)
+{
+ config->news = g_slist_remove (config->news, news);
+ service_destroy (news);
+
+ return config->news;
+}
+
GSList *
mail_config_get_sources (void)
{
diff --git a/mail/mail-config.h b/mail/mail-config.h
index cc8e9b7cbe..8998893e3b 100644
--- a/mail/mail-config.h
+++ b/mail/mail-config.h
@@ -97,6 +97,7 @@ const MailConfigAccount *mail_config_get_default_account (void);
const MailConfigAccount *mail_config_get_account_by_name (const char *account_name);
const GSList *mail_config_get_accounts (void);
void mail_config_add_account (MailConfigAccount *account);
+const GSList *mail_config_remove_account (MailConfigAccount *account);
void mail_config_set_default_account (const MailConfigAccount *account);
const MailConfigIdentity *mail_config_get_default_identity (void);
@@ -105,6 +106,7 @@ const MailConfigService *mail_config_get_default_transport (void);
const MailConfigService *mail_config_get_default_news (void);
const GSList *mail_config_get_news (void);
void mail_config_add_news (MailConfigService *news);
+const GSList *mail_config_remove_news (MailConfigService *news);
/* convenience functions to help ease the transition over to the new codebase */
GSList *mail_config_get_sources (void);