Changed modest_address_book_check_names() API
authorSergio Villar Senin <svillar@igalia.com>
Thu, 25 Jun 2009 09:46:40 +0000 (11:46 +0200)
committerSergio Villar Senin <svillar@igalia.com>
Thu, 25 Jun 2009 10:39:42 +0000 (12:39 +0200)
Do not commit contacts in check_names() but return them

src/hildon2/modest-address-book.c
src/hildon2/modest-msg-edit-window.c
src/maemo/modest-address-book.c
src/maemo/modest-msg-edit-window.c
src/modest-address-book-dummy.c
src/modest-address-book.h

index 225e3f1..30ccccb 100644 (file)
@@ -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);
index fb0b072..d77a975 100644 (file)
@@ -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;
index 5d4ff9b..a34123b 100644 (file)
@@ -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);
index 1fad332..6e7907e 100644 (file)
@@ -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;
        }
index aff172e..a48dd36 100644 (file)
@@ -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;
index 7fd41cb..f39b98d 100644 (file)
@@ -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: