X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmaemo%2Fmodest-address-book.c;h=c6a3d7671a4106fd9354260b4882e02fc3485041;hp=5d4ff9b88e0e25d83a4d7b1c3c6cc00063fe481a;hb=4927cb896fac6ab7438c56336313561800ff4308;hpb=b425d1a06addd5a5a3c83eb696bb45a82e4a439a diff --git a/src/maemo/modest-address-book.c b/src/maemo/modest-address-book.c index 5d4ff9b..c6a3d76 100644 --- a/src/maemo/modest-address-book.c +++ b/src/maemo/modest-address-book.c @@ -131,7 +131,8 @@ open_addressbook_sync () } void -modest_address_book_add_address (const gchar *address) +modest_address_book_add_address (const gchar *address, + GtkWindow *parent) { OssoABookAccount *account = NULL; GtkWidget *dialog = NULL; @@ -147,13 +148,18 @@ modest_address_book_add_address (const gchar *address) } email_address = modest_text_utils_get_email_address (address); - + account = osso_abook_account_get (EVC_EMAIL, NULL, email_address); g_free (email_address); if (account) { dialog = osso_abook_add_to_contacts_dialog_new (contact_model, account); g_object_unref (account); + + modest_window_mgr_set_modal (modest_runtime_get_window_mgr(), + (GtkWindow *) parent, + (GtkWindow *) dialog); + gtk_dialog_run (GTK_DIALOG (dialog)); if (contact_model) { @@ -700,7 +706,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 +808,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,10 +823,11 @@ 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) - 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; @@ -827,6 +835,10 @@ modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean updat 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);