diff options
-rw-r--r-- | mail/ChangeLog | 17 | ||||
-rw-r--r-- | mail/mail-config.c | 8 | ||||
-rw-r--r-- | mail/mail-config.h | 23 | ||||
-rw-r--r-- | mail/mail-ops.c | 29 |
4 files changed, 51 insertions, 26 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index cd37b902aa..6afe0bc924 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,11 @@ +2000-08-09 Jeffrey Stedfast <fejj@helixcode.com> + + * mail-ops.c (composer_send_cb): Get the from address set in the + composer, if that fails ONLY THEN get the default from mail config + + * mail-config.c (mail_config_get_identities): New convenience + function for getting a list of the configured identities + 2000-08-09 Dan Winship <danw@helixcode.com> * mail-display.c (on_object_requested): Support controls as well @@ -28,11 +36,14 @@ 2000-08-09 Not Zed <NotZed@HelixCode.com> - * mail-autofilter.c (filter_gui_add_from_message): Helper function to add with confirm. - (rule_match_recipients): Dont set real name if its empty for the filter name. + * mail-autofilter.c (filter_gui_add_from_message): Helper function + to add with confirm. + (rule_match_recipients): Dont set real name if its empty for the + filter name. (rule_match_subject): was cutting ] off mailing list names. - * message-list.c (on_right_click): Added menu to install vfolders/filters from message. + * message-list.c (on_right_click): Added menu to install + vfolders/filters from message. 2000-08-09 Not Zed <NotZed@HelixCode.com> diff --git a/mail/mail-config.c b/mail/mail-config.c index fa131121bf..b3f8b6ea04 100644 --- a/mail/mail-config.c +++ b/mail/mail-config.c @@ -391,6 +391,12 @@ mail_config_get_default_identity () return (MailConfigIdentity *)config->ids->data; } +GSList * +mail_config_get_identities () +{ + return config->ids; +} + MailConfigService * mail_config_get_default_source () { @@ -441,3 +447,5 @@ mail_config_fetch (void) { return config; } + + diff --git a/mail/mail-config.h b/mail/mail-config.h index df46ae4356..fd1c0f3dda 100644 --- a/mail/mail-config.h +++ b/mail/mail-config.h @@ -68,17 +68,22 @@ void mail_config_read (void); void mail_config_write (void); void mail_config_write_on_exit (void); -/* Accessor functions */ -gboolean mail_config_is_configured (void); +/* General Accessor functions */ +gboolean mail_config_is_configured (void); +MailConfig *mail_config_fetch (void); +gboolean mail_config_send_html (void); +gboolean mail_config_thread_list (void); +gint mail_config_paned_size (void); +void mail_config_set_thread_list (gboolean value); +void mail_config_set_paned_size (gint size); + +/* Identity Accessor functions */ MailConfigIdentity *mail_config_get_default_identity (void); +GSList *mail_config_get_identities (void); + +/* Service Accessor functions */ MailConfigService *mail_config_get_default_source (void); -MailConfigService *mail_config_get_transport (void); -gboolean mail_config_send_html (void); -gboolean mail_config_thread_list (void); -gint mail_config_paned_size (void); -void mail_config_set_thread_list (gboolean value); -void mail_config_set_paned_size (gint size); -MailConfig *mail_config_fetch (void); +MailConfigService *mail_config_get_transport (void); #endif diff --git a/mail/mail-ops.c b/mail/mail-ops.c index 5cc426d2ad..77045cb79d 100644 --- a/mail/mail-ops.c +++ b/mail/mail-ops.c @@ -544,7 +544,7 @@ cleanup_send_mail (gpointer userdata) static void composer_send_cb (EMsgComposer *composer, gpointer data) { - const MailConfigIdentity *id = NULL; + const MailConfigIdentity *id = NULL; static CamelTransport *transport = NULL; struct post_send_data *psd = data; rsm_t *info; @@ -553,14 +553,14 @@ composer_send_cb (EMsgComposer *composer, gpointer data) CamelException *ex; CamelMimeMessage *message; char *name, *addr; - + ex = camel_exception_new (); - + id = mail_config_get_default_identity (); if (!check_configured() || !id) { GtkWidget *message; - + message = gnome_warning_dialog_parented (_("You need to configure an identity\n" "before you can send mail."), GTK_WINDOW (gtk_widget_get_ancestor (GTK_WIDGET (composer), @@ -568,32 +568,33 @@ composer_send_cb (EMsgComposer *composer, gpointer data) gnome_dialog_run_and_close (GNOME_DIALOG (message)); return; } - + + from = g_strdup (e_msg_composer_hdrs_get_from (E_MSG_COMPOSER_HDRS (composer->hdrs))); if (!from) { CamelInternetAddress *ciaddr; - + g_assert (id); name = id->name; g_assert (name); - + addr = id->address; g_assert (addr); - + ciaddr = camel_internet_address_new (); camel_internet_address_add (ciaddr, name, addr); from = camel_address_encode (CAMEL_ADDRESS (ciaddr)); } - + if (!transport) { MailConfigService *t; char *url; - + t = mail_config_get_transport (); url = t->url; g_assert (url); - + transport = camel_session_get_transport (session, url, ex); if (camel_exception_get_id (ex) != CAMEL_EXCEPTION_NONE) { mail_exception_dialog ("Could not load mail transport", @@ -602,9 +603,9 @@ composer_send_cb (EMsgComposer *composer, gpointer data) return; } } - + message = e_msg_composer_get_message (composer); - + subject = camel_mime_message_get_subject (message); if (!subject || !*subject) { if (!ask_confirm_for_empty_subject (composer)) { @@ -612,7 +613,7 @@ composer_send_cb (EMsgComposer *composer, gpointer data) return; } } - + info = g_new0 (rsm_t, 1); info->composer = composer; info->transport = transport; |