current_start = start_indexes;
current_end = end_indexes;
buffer = modest_recpt_editor_get_buffer (recpt_editor);
- if (address_list)
- *address_list = NULL;
while (current_start != NULL) {
gchar *address;
modest_msg_edit_window_check_names (ModestMsgEditWindow *window, gboolean add_to_addressbook)
{
ModestMsgEditWindowPrivate *priv = NULL;
-
+ GSList *address_list = NULL;
+
g_return_val_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window), FALSE);
priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
return FALSE;
}
+ /* Check names */
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), NULL)) {
+ if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->to_field), &address_list)) {
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), NULL)) {
+ if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->cc_field), &address_list)) {
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), NULL)) {
+ if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->bcc_field), &address_list)) {
modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->bcc_field));
g_object_unref (window);
return FALSE;
}
+ /* Add contacts to address book */
+ if (address_list)
+ modest_address_book_add_address_list (address_list);
+
if (!modest_recpt_editor_has_focus (MODEST_RECPT_EDITOR (priv->cc_field)) &&
!modest_recpt_editor_has_focus (MODEST_RECPT_EDITOR (priv->bcc_field)))
modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->to_field));
/* 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 && store_address)
- add_to_address_book (address);
+ if (result && address_list && store_address)
+ *address_list = g_slist_prepend (*address_list, address);
+ else
+ g_free (address);
- g_free (address);
if (result == FALSE)
break;
current_end = g_slist_next (current_end);
}
+ /* 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);
gtk_text_buffer_place_cursor (buffer, &end_iter);
modest_msg_edit_window_check_names (ModestMsgEditWindow *window, gboolean add_to_addressbook)
{
ModestMsgEditWindowPrivate *priv = NULL;
-
+ GSList *address_list = NULL;
+
g_return_val_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window), FALSE);
priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
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), NULL)) {
+ /* Check names */
+ g_object_ref (window);
+ if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->to_field), &address_list)) {
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), NULL)) {
+ if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->cc_field), &address_list)) {
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), NULL)) {
+ if (!modest_address_book_check_names (MODEST_RECPT_EDITOR (priv->bcc_field), &address_list)) {
modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->bcc_field));
+ g_object_unref (window);
return FALSE;
}
+ /* Add contacts to address book */
+ if (address_list)
+ modest_address_book_add_address_list (address_list);
+
if (!modest_recpt_editor_has_focus (MODEST_RECPT_EDITOR (priv->cc_field)) &&
!modest_recpt_editor_has_focus (MODEST_RECPT_EDITOR (priv->bcc_field)))
modest_recpt_editor_grab_focus (MODEST_RECPT_EDITOR (priv->to_field));
+ g_object_unref (window);
return TRUE;