From 7c88ed1c3e46d48e519190754bad185ad726858f Mon Sep 17 00:00:00 2001 From: Sergio Villar Senin Date: Thu, 25 Jun 2009 11:46:40 +0200 Subject: [PATCH] Changed modest_address_book_check_names() API Do not commit contacts in check_names() but return them --- src/hildon2/modest-address-book.c | 29 ++++++++++++++--------------- src/hildon2/modest-msg-edit-window.c | 9 ++++++--- src/maemo/modest-address-book.c | 13 +++++++------ src/maemo/modest-msg-edit-window.c | 9 ++++++--- src/modest-address-book-dummy.c | 3 ++- src/modest-address-book.h | 8 +++++--- 6 files changed, 40 insertions(+), 31 deletions(-) diff --git a/src/hildon2/modest-address-book.c b/src/hildon2/modest-address-book.c index 225e3f1..30ccccb 100644 --- a/src/hildon2/modest-address-book.c +++ b/src/hildon2/modest-address-book.c @@ -710,11 +710,12 @@ void free_resolved_addresses_list (gpointer data, } gboolean -modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean update_addressbook) +modest_address_book_check_names (ModestRecptEditor *recpt_editor, + GSList **address_list) { const gchar *recipients = NULL; GSList *start_indexes = NULL, *end_indexes = NULL; - GSList *current_start, *current_end, *to_commit_addresses; + GSList *current_start, *current_end; gboolean result = TRUE; GtkTextBuffer *buffer; gint offset_delta = 0; @@ -739,7 +740,8 @@ modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean updat current_start = start_indexes; current_end = end_indexes; buffer = modest_recpt_editor_get_buffer (recpt_editor); - to_commit_addresses = NULL; + if (address_list) + *address_list = NULL; while (current_start != NULL) { gchar *address; @@ -828,14 +830,14 @@ modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean updat } g_slist_free (tags); if (!has_recipient) { - GSList * address_list = NULL; + GSList * addr_list = NULL; - address_list = g_slist_prepend (address_list, address); + addr_list = g_slist_prepend (addr_list, address); modest_recpt_editor_replace_with_resolved_recipient (recpt_editor, &start_iter, &end_iter, - address_list, + addr_list, ""); - g_slist_free (address_list); + g_slist_free (addr_list); store_address = TRUE; } } @@ -843,8 +845,8 @@ modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean updat /* so, it seems a valid address */ /* note: adding it the to the addressbook if it did not exist yet, * and adding it to the recent_list */ - if (result && update_addressbook && store_address) - to_commit_addresses = g_slist_prepend (to_commit_addresses, address); + if (result && address_list && store_address) + *address_list = g_slist_prepend (*address_list, address); else g_free (address); @@ -855,12 +857,9 @@ modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean updat current_end = g_slist_next (current_end); } - /* Add addresses to address-book */ - if (to_commit_addresses) { - to_commit_addresses = modest_text_utils_remove_duplicate_addresses_list (to_commit_addresses); - if (to_commit_addresses) - modest_address_book_add_address_list (to_commit_addresses); - } + /* Remove dup's */ + if (address_list && *address_list) + *address_list = modest_text_utils_remove_duplicate_addresses_list (*address_list); if (current_start == NULL) { gtk_text_buffer_get_end_iter (buffer, &end_iter); diff --git a/src/hildon2/modest-msg-edit-window.c b/src/hildon2/modest-msg-edit-window.c index fb0b072..d77a975 100644 --- a/src/hildon2/modest-msg-edit-window.c +++ b/src/hildon2/modest-msg-edit-window.c @@ -3437,17 +3437,20 @@ modest_msg_edit_window_check_names (ModestMsgEditWindow *window, gboolean add_to } g_object_ref (window); - if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->to_field), add_to_addressbook)) { +/* if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->to_field), add_to_addressbook)) { */ + if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->to_field), NULL)) { modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->to_field)); g_object_unref (window); return FALSE; } - if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->cc_field), add_to_addressbook)) { +/* if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->cc_field), add_to_addressbook)) { */ + if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->cc_field), NULL)) { modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->cc_field)); g_object_unref (window); return FALSE; } - if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->bcc_field), add_to_addressbook)) { +/* if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->bcc_field), add_to_addressbook)) { */ + if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->bcc_field), NULL)) { modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->bcc_field)); g_object_unref (window); return FALSE; diff --git a/src/maemo/modest-address-book.c b/src/maemo/modest-address-book.c index 5d4ff9b..a34123b 100644 --- a/src/maemo/modest-address-book.c +++ b/src/maemo/modest-address-book.c @@ -700,7 +700,8 @@ hide_check_names_banner (GtkWidget **banner, guint banner_timeout) } gboolean -modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean update_addressbook) +modest_address_book_check_names (ModestRecptEditor *recpt_editor, + GSList **address_list) { const gchar *recipients = NULL; GSList *start_indexes = NULL, *end_indexes = NULL; @@ -801,14 +802,14 @@ modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean updat } g_slist_free (tags); if (!has_recipient) { - GSList * address_list = NULL; + GSList * addr_list = NULL; - address_list = g_slist_prepend (address_list, address); + addr_list = g_slist_prepend (addr_list, address); modest_recpt_editor_replace_with_resolved_recipient (recpt_editor, &start_iter, &end_iter, - address_list, + addr_list, ""); - g_slist_free (address_list); + g_slist_free (addr_list); store_address = TRUE; } } @@ -816,7 +817,7 @@ modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean updat /* so, it seems a valid address */ /* note: adding it the to the addressbook if it did not exist yet, * and adding it to the recent_list */ - if (result && update_addressbook && store_address) + if (result && store_address) add_to_address_book (address); g_free (address); diff --git a/src/maemo/modest-msg-edit-window.c b/src/maemo/modest-msg-edit-window.c index 1fad332..6e7907e 100644 --- a/src/maemo/modest-msg-edit-window.c +++ b/src/maemo/modest-msg-edit-window.c @@ -3191,15 +3191,18 @@ modest_msg_edit_window_check_names (ModestMsgEditWindow *window, gboolean add_to return FALSE; } - if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->to_field), add_to_addressbook)) { +/* if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->to_field), add_to_addressbook)) { */ + if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->to_field), NULL)) { modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->to_field)); return FALSE; } - if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->cc_field), add_to_addressbook)) { +/* if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->cc_field), add_to_addressbook)) { */ + if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->cc_field), NULL)) { modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->cc_field)); return FALSE; } - if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->bcc_field), add_to_addressbook)) { +/* if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->bcc_field), add_to_addressbook)) { */ + if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->bcc_field), NULL)) { modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->bcc_field)); return FALSE; } diff --git a/src/modest-address-book-dummy.c b/src/modest-address-book-dummy.c index aff172e..a48dd36 100644 --- a/src/modest-address-book-dummy.c +++ b/src/modest-address-book-dummy.c @@ -47,7 +47,8 @@ void modest_address_book_select_addresses (ModestRecptEditor *editor, return; } -gboolean modest_address_book_check_names (ModestRecptEditor *editor, gboolean update_addressbook) +gboolean modest_address_book_check_names (ModestRecptEditor *editor, + GSList **address_list) { /* let's be optimistic */ return TRUE; diff --git a/src/modest-address-book.h b/src/modest-address-book.h index 7fd41cb..f39b98d 100644 --- a/src/modest-address-book.h +++ b/src/modest-address-book.h @@ -67,15 +67,17 @@ modest_address_book_select_addresses (ModestRecptEditor *editor, /** * modest_address_book_check_names: * @editor: a #ModestRecptEditor - * @update_addressbook: if TRUE, add valid addresses to the addressbook, recent list - * + * @address_list: if it is not NULL, this list is filled with the + * valid addresses ready to be added to the address book + * * Performs verification of addresses in a recipient editor. * * Returns: %TRUE if all recipients are valid or there are * no recipients, %FALSE otherwise. */ gboolean -modest_address_book_check_names (ModestRecptEditor *editor, gboolean update_addressbook); +modest_address_book_check_names (ModestRecptEditor *editor, + GSList **address_list); /** * modest_address_book_has_address: -- 1.7.9.5