From: Jose Dapena Paz Date: Tue, 17 Mar 2009 09:34:09 +0000 (+0000) Subject: Proper insertion of resolved addresses in recpt editor X-Git-Tag: git_migration_finished~314 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=fa28d428bc92c3dfb30c38ff31e7929af414aa5b Proper insertion of resolved addresses in recpt editor pmo-trunk-r8061 --- diff --git a/src/hildon2/modest-address-book.c b/src/hildon2/modest-address-book.c index 6a057ce..366c4e6 100644 --- a/src/hildon2/modest-address-book.c +++ b/src/hildon2/modest-address-book.c @@ -806,6 +806,14 @@ static void clean_check_names_banner (CheckNamesInfo *info) } } +void free_resolved_addresses_list (gpointer data, + gpointer ignored) +{ + GSList *list = (GSList *)data; + g_slist_foreach (list, (GFunc) g_free, NULL); + g_slist_free (list); +} + gboolean modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean update_addressbook) { @@ -875,30 +883,13 @@ modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean updat if (result) { gint new_length; - GSList *contact_ids_node, *resolved_addresses_node; - - contact_ids_node = contact_ids; - resolved_addresses_node = resolved_addresses; - - while (contact_ids_node != NULL) { - gchar *contact_id = (gchar *) contact_ids_node->data; - GSList *resolved_addresses_for_contact = - (GSList *) resolved_addresses_node->data; - - /* replace string */ - modest_recpt_editor_replace_with_resolved_recipient - (recpt_editor, - &start_iter, &end_iter, - resolved_addresses_for_contact, - contact_id); - - g_free (contact_id); - g_slist_foreach (resolved_addresses_for_contact, (GFunc) g_free, NULL); - g_slist_free (resolved_addresses_for_contact); - - contact_ids_node = g_slist_next (contact_ids_node); - resolved_addresses_node = g_slist_next (resolved_addresses_node); - } + + modest_recpt_editor_replace_with_resolved_recipients (recpt_editor, + &start_iter, &end_iter, + resolved_addresses, + contact_ids); + g_slist_foreach (contact_ids, (GFunc) g_free, NULL); + g_slist_foreach (resolved_addresses, free_resolved_addresses_list, NULL); g_slist_free (contact_ids); g_slist_free (resolved_addresses); diff --git a/src/widgets/modest-recpt-editor.c b/src/widgets/modest-recpt-editor.c index fad88cc..b0a4bc9 100644 --- a/src/widgets/modest-recpt-editor.c +++ b/src/widgets/modest-recpt-editor.c @@ -264,6 +264,25 @@ modest_recpt_editor_replace_with_resolved_recipient (ModestRecptEditor *recpt_ed GtkTextIter *start, GtkTextIter *end, GSList *email_list, const gchar * recipient_id) { + GSList *email_lists_list; + GSList *recipient_ids_list; + + email_lists_list = g_slist_append (NULL, email_list); + recipient_ids_list = g_slist_append (NULL, (gpointer) recipient_id); + + modest_recpt_editor_replace_with_resolved_recipients (recpt_editor, start, end, + email_lists_list, recipient_ids_list); + + g_slist_free (email_lists_list); + g_slist_free (recipient_ids_list); + +} + +void +modest_recpt_editor_replace_with_resolved_recipients (ModestRecptEditor *recpt_editor, + GtkTextIter *start, GtkTextIter *end, + GSList *email_lists_list, GSList * recipient_ids_list) +{ ModestRecptEditorPrivate *priv; GtkTextBuffer *buffer; GtkTextTag *tag; @@ -282,7 +301,10 @@ modest_recpt_editor_replace_with_resolved_recipient (ModestRecptEditor *recpt_ed gtk_text_buffer_delete (buffer, start, end); - if (email_list) { + while (email_lists_list) { + gchar *recipient_id = (gchar *) recipient_ids_list->data; + GSList *email_list = (GSList *) email_lists_list->data; + tag = gtk_text_buffer_create_tag (buffer, NULL, "underline", PANGO_UNDERLINE_SINGLE, @@ -307,6 +329,9 @@ modest_recpt_editor_replace_with_resolved_recipient (ModestRecptEditor *recpt_ed is_first_recipient = FALSE; } } + + email_lists_list = g_slist_next (email_lists_list); + recipient_ids_list = g_slist_next (recipient_ids_list); } g_signal_handlers_unblock_by_func (buffer, modest_recpt_editor_on_insert_text, recpt_editor); diff --git a/src/widgets/modest-recpt-editor.h b/src/widgets/modest-recpt-editor.h index c4049d3..3cc172c 100644 --- a/src/widgets/modest-recpt-editor.h +++ b/src/widgets/modest-recpt-editor.h @@ -76,6 +76,11 @@ void modest_recpt_editor_replace_with_resolved_recipient (ModestRecptEditor *rec GSList *email_list, const gchar *recipient_id); +void modest_recpt_editor_replace_with_resolved_recipients (ModestRecptEditor *recpt_editor, + GtkTextIter *start, GtkTextIter *end, + GSList *email_lists_list, + GSList *recipient_ids_list); + void modest_recpt_editor_set_field_size_group (ModestRecptEditor *recpt_editor, GtkSizeGroup *size_group); GtkTextBuffer *modest_recpt_editor_get_buffer (ModestRecptEditor *recpt_editor); void modest_recpt_editor_grab_focus (ModestRecptEditor *recpt_editor);