From: Jose Dapena Paz Date: Wed, 26 Nov 2008 11:55:49 +0000 (+0000) Subject: Moved all_recipients_list to be available in modest tny msg. X-Git-Tag: git_migration_finished~974 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=0fc66a08011b74fb3e5237173de377f59820be19 Moved all_recipients_list to be available in modest tny msg. pmo-trunk-r6413 --- diff --git a/src/hildon2/modest-msg-view-window.c b/src/hildon2/modest-msg-view-window.c index d7c6b7f..547eff2 100644 --- a/src/hildon2/modest-msg-view-window.c +++ b/src/hildon2/modest-msg-view-window.c @@ -3014,43 +3014,6 @@ on_fetch_image (ModestMsgView *msgview, return TRUE;; } -static GSList * -all_recipients_list (TnyMsg *msg) -{ - TnyHeader *header = NULL; - GSList *recipients = NULL; - gchar *from = NULL, *to = NULL, *cc = NULL, *bcc = NULL; - - if (msg == NULL) - return NULL; - - header = tny_msg_get_header (msg); - if (header == NULL) - return NULL; - - from = tny_header_dup_from (header); - to = tny_header_dup_to (header); - cc = tny_header_dup_cc (header); - bcc = tny_header_dup_bcc (header); - - recipients = NULL; - if (from) - recipients = g_slist_concat (recipients, modest_text_utils_split_addresses_list (from)); - if (to) - recipients = g_slist_concat (recipients, modest_text_utils_split_addresses_list (to)); - if (cc) - recipients = g_slist_concat (recipients, modest_text_utils_split_addresses_list (cc)); - if (bcc) - recipients = g_slist_concat (recipients, modest_text_utils_split_addresses_list (bcc)); - - g_free (from); - g_free (to); - g_free (cc); - g_free (bcc); - - return recipients; -} - void modest_msg_view_window_add_to_contacts (ModestMsgViewWindow *self) { @@ -3058,10 +3021,11 @@ modest_msg_view_window_add_to_contacts (ModestMsgViewWindow *self) priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (self); GSList *recipients = NULL; TnyMsg *msg = NULL; + gboolean contacts_to_add = FALSE; msg = tny_msg_view_get_msg (TNY_MSG_VIEW (priv->msg_view)); if (msg == NULL) return; - recipients = all_recipients_list (msg); + recipients = modest_tny_msg_get_all_recipients_list (msg); if (recipients != NULL) { GtkWidget *picker_dialog; @@ -3069,9 +3033,6 @@ modest_msg_view_window_add_to_contacts (ModestMsgViewWindow *self) GSList *node; gchar *selected; - picker_dialog = hildon_picker_dialog_new (GTK_WINDOW (self)); - gtk_window_set_title (GTK_WINDOW (picker_dialog), _("mcen_me_viewer_addtocontacts")); - selector = hildon_touch_selector_new_text (); for (node = recipients; node != NULL; node = g_slist_next (node)) { if (!modest_address_book_has_address ((const gchar *) node->data)) { @@ -3081,16 +3042,27 @@ modest_msg_view_window_add_to_contacts (ModestMsgViewWindow *self) } } - hildon_picker_dialog_set_selector (HILDON_PICKER_DIALOG (picker_dialog), - HILDON_TOUCH_SELECTOR (selector)); + if (contacts_to_add) { + + picker_dialog = hildon_picker_dialog_new (GTK_WINDOW (self)); + gtk_window_set_title (GTK_WINDOW (picker_dialog), _("mcen_me_viewer_addtocontacts")); + + hildon_picker_dialog_set_selector (HILDON_PICKER_DIALOG (picker_dialog), + HILDON_TOUCH_SELECTOR (selector)); + + gtk_dialog_run (GTK_DIALOG (picker_dialog)); + selected = hildon_touch_selector_get_current_text (HILDON_TOUCH_SELECTOR (selector)); + gtk_widget_destroy (picker_dialog); + + if (selected) + modest_address_book_add_address (selected); + g_free (selected); - gtk_dialog_run (GTK_DIALOG (picker_dialog)); - selected = hildon_touch_selector_get_current_text (HILDON_TOUCH_SELECTOR (selector)); - gtk_widget_destroy (picker_dialog); + } else { - if (selected) - modest_address_book_add_address (selected); - g_free (selected); + g_object_unref (selector); + + } } if (recipients) {g_slist_foreach (recipients, (GFunc) g_free, NULL); g_slist_free (recipients);} diff --git a/src/modest-tny-msg.c b/src/modest-tny-msg.c index 2790914..40ecc2f 100644 --- a/src/modest-tny-msg.c +++ b/src/modest-tny-msg.c @@ -957,3 +957,41 @@ modest_tny_msg_estimate_size (const gchar *plain_body, const gchar *html_body, return result; } + +GSList * +modest_tny_msg_get_all_recipients_list (TnyMsg *msg) +{ + TnyHeader *header = NULL; + GSList *recipients = NULL; + gchar *from = NULL, *to = NULL, *cc = NULL, *bcc = NULL; + + if (msg == NULL) + return NULL; + + header = tny_msg_get_header (msg); + if (header == NULL) + return NULL; + + from = tny_header_dup_from (header); + to = tny_header_dup_to (header); + cc = tny_header_dup_cc (header); + bcc = tny_header_dup_bcc (header); + + recipients = NULL; + if (from) + recipients = g_slist_concat (recipients, modest_text_utils_split_addresses_list (from)); + if (to) + recipients = g_slist_concat (recipients, modest_text_utils_split_addresses_list (to)); + if (cc) + recipients = g_slist_concat (recipients, modest_text_utils_split_addresses_list (cc)); + if (bcc) + recipients = g_slist_concat (recipients, modest_text_utils_split_addresses_list (bcc)); + + g_free (from); + g_free (to); + g_free (cc); + g_free (bcc); + + return recipients; +} + diff --git a/src/modest-tny-msg.h b/src/modest-tny-msg.h index a15372b..88d4532 100644 --- a/src/modest-tny-msg.h +++ b/src/modest-tny-msg.h @@ -197,4 +197,16 @@ modest_tny_msg_estimate_size (const gchar *plain_body, const gchar *html_body, guint64 parts_count, guint64 parts_size); +/** + * modest_tny_msg_get_all_recipients_list: + * @msg: a #TnyMsg + * + * Obtains a list of all the addresses available in a message header. + * + * Returns: a newly allocated #GSList of strings. Caller should free strings and list. + */ +GSList * +modest_tny_msg_get_all_recipients_list (TnyMsg *msg); + + #endif /* __MODEST_TNY_MSG_H__ */