From 5b68f7c4a513a7a6f45549e7bf40838ce754db27 Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz Date: Wed, 26 Mar 2008 14:50:31 +0000 Subject: [PATCH] This patch addapts modest to the new API for TnyHeader in tinymail (offering dup methods instead of get methods for obtaining strings). * src/gnome/modest-msg-edit-window.c, src/gnome/modest-msg-view-window.c, src/widgets/modest-details-dialog.c, src/widgets/modest-attachment-view.c, src/widgets/modest-header-view.c, src/widgets/modest-mail-header-view.c, src/modest-tny-msg.c, src/modest-ui-actions.c, src/dbus_api/modest-dbus-callback.c, src/modest-tny-folder.c, src/modest-email-clipboard.c, src/maemo/modest-msg-edit-window.c, src/maemo/modest-platform.c, src/maemo/modest-msg-view-window.c, src/modest-formatter.c, src/modest-search.c, src/modest-tny-send-queue.c: * Use dup instead of get for TnyHeader strings. Other changes: * src/gnome/modest-account-settings-dialog.c: * Proper shadow for some tabs. * Use save password attribute properly. pmo-trunk-r4347 --- src/dbus_api/modest-dbus-callbacks.c | 12 +++++--- src/gnome/modest-account-settings-dialog.c | 17 +++++++++-- src/gnome/modest-msg-edit-window.c | 17 +++++++---- src/gnome/modest-msg-view-window.c | 10 ++++--- src/maemo/modest-msg-edit-window.c | 31 +++++++++++++------- src/maemo/modest-msg-view-window.c | 20 +++++++------ src/maemo/modest-platform.c | 11 +++++-- src/modest-email-clipboard.c | 2 +- src/modest-formatter.c | 43 +++++++++++++++++++--------- src/modest-search.c | 34 +++++++++++++--------- src/modest-tny-folder.c | 5 ++-- src/modest-tny-msg.c | 22 +++++++++----- src/modest-tny-send-queue.c | 5 ++-- src/modest-ui-actions.c | 30 ++++++++++++------- src/widgets/modest-attachment-view.c | 2 +- src/widgets/modest-details-dialog.c | 8 +++--- src/widgets/modest-header-view-render.c | 1 + src/widgets/modest-header-view.c | 2 +- src/widgets/modest-mail-header-view.c | 17 +++++++---- 19 files changed, 190 insertions(+), 99 deletions(-) diff --git a/src/dbus_api/modest-dbus-callbacks.c b/src/dbus_api/modest-dbus-callbacks.c index 241221a..2a6f156 100644 --- a/src/dbus_api/modest-dbus-callbacks.c +++ b/src/dbus_api/modest-dbus-callbacks.c @@ -636,7 +636,8 @@ on_idle_delete_message (gpointer user_data) TnyHeader *header = NULL, *msg_header = NULL; TnyMsg *msg = NULL; TnyAccount *account = NULL; - const char *uri = NULL, *uid = NULL; + const char *uri = NULL; + gchar *uid = NULL; gint res = 0; ModestMailOperation *mail_op = NULL; ModestWindow *main_win = NULL, *msg_view = NULL; @@ -655,7 +656,6 @@ on_idle_delete_message (gpointer user_data) FALSE); /* don't create */ msg_header = tny_msg_get_header (msg); - uid = tny_header_get_uid (msg_header); folder = tny_msg_get_folder (msg); if (!folder) { @@ -665,22 +665,25 @@ on_idle_delete_message (gpointer user_data) return OSSO_ERROR; } + uid = tny_header_dup_uid (msg_header); headers = tny_simple_list_new (); tny_folder_get_headers (folder, headers, TRUE, NULL); iter = tny_list_create_iterator (headers); header = NULL; while (!tny_iterator_is_done (iter)) { - const char *cur_id = NULL; + gchar *cur_id = NULL; header = TNY_HEADER (tny_iterator_get_current (iter)); if (header) - cur_id = tny_header_get_uid (header); + cur_id = tny_header_dup_uid (header); if (cur_id && uid && g_str_equal (cur_id, uid)) { + g_free (cur_id); /* g_debug ("Found corresponding header from folder"); */ break; } + g_free (cur_id); if (header) { g_object_unref (header); @@ -689,6 +692,7 @@ on_idle_delete_message (gpointer user_data) tny_iterator_next (iter); } + g_free (uid); g_object_unref (iter); iter = NULL; diff --git a/src/gnome/modest-account-settings-dialog.c b/src/gnome/modest-account-settings-dialog.c index ac04625..1c095b6 100644 --- a/src/gnome/modest-account-settings-dialog.c +++ b/src/gnome/modest-account-settings-dialog.c @@ -387,7 +387,7 @@ create_page_account_details (ModestAccountSettingsDialog *self) gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrollwin), box); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_NONE); - gtk_viewport_set_shadow_type (GTK_VIEWPORT (gtk_bin_get_child (scrollwin)), GTK_SHADOW_NONE); + gtk_viewport_set_shadow_type (GTK_VIEWPORT (gtk_bin_get_child (GTK_BIN (scrollwin))), GTK_SHADOW_NONE); gtk_widget_show (scrollwin); focus_adjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrollwin)); @@ -1115,8 +1115,9 @@ on_response (GtkDialog *wizard_dialog, } g_object_unref (store_settings); g_object_unref (transport_settings); - - modest_platform_information_banner(NULL, NULL, _("mcen_ib_advsetup_settings_saved")); + + if (!self->save_password) + modest_platform_information_banner(NULL, NULL, _("mcen_ib_advsetup_settings_saved")); } } else { modest_platform_information_banner (NULL, NULL, _("mail_ib_setting_failed")); @@ -1177,6 +1178,7 @@ modest_account_settings_dialog_init (ModestAccountSettingsDialog *self) G_CALLBACK (on_response), self); self->modified = FALSE; + self->save_password; /* When this window is shown, hibernation should not be possible, * because there is no sensible way to save the state: */ @@ -1602,6 +1604,15 @@ enable_buttons (ModestAccountSettingsDialog *self) enable_ok); } +void +modest_account_settings_dialog_save_password (ModestAccountSettingsDialog *dialog) +{ + g_return_if_fail (MODEST_IS_ACCOUNT_SETTINGS_DIALOG (dialog)); + + dialog->save_password = TRUE; + dialog->modified = TRUE; +} + static void modest_account_settings_dialog_class_init (ModestAccountSettingsDialogClass *klass) { diff --git a/src/gnome/modest-msg-edit-window.c b/src/gnome/modest-msg-edit-window.c index ecff6bb..0f3a7d2 100644 --- a/src/gnome/modest-msg-edit-window.c +++ b/src/gnome/modest-msg-edit-window.c @@ -381,7 +381,7 @@ set_msg (ModestMsgEditWindow *self, TnyMsg *msg) { TnyHeader *header; TnyFolder *msg_folder; - const gchar *to, *cc, *bcc, *subject; + gchar *to, *cc, *bcc, *subject; ModestMsgEditWindowPrivate *priv; gchar *body; @@ -391,10 +391,10 @@ set_msg (ModestMsgEditWindow *self, TnyMsg *msg) priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (self); header = tny_msg_get_header (msg); - to = tny_header_get_to (header); - cc = tny_header_get_cc (header); - bcc = tny_header_get_bcc (header); - subject = tny_header_get_subject (header); + to = tny_header_dup_to (header); + cc = tny_header_dup_cc (header); + bcc = tny_header_dup_bcc (header); + subject = tny_header_dup_subject (header); if (to) gtk_entry_set_text (GTK_ENTRY(priv->to_field), to); @@ -440,6 +440,11 @@ set_msg (ModestMsgEditWindow *self, TnyMsg *msg) } g_object_unref (msg_folder); } + + g_free (subject); + g_free (to); + g_free (cc); + g_free (bcc); } @@ -796,7 +801,7 @@ modest_msg_edit_window_remove_attachments (ModestMsgEditWindow *window, if (TNY_IS_MSG (part)) { TnyHeader *header = tny_msg_get_header (TNY_MSG (part)); if (header) { - filename = g_strdup (tny_header_get_subject (header)); + filename = tny_header_dup_subject (header); g_object_unref (header); } if (filename == NULL) { diff --git a/src/gnome/modest-msg-view-window.c b/src/gnome/modest-msg-view-window.c index 9900219..172bb0f 100644 --- a/src/gnome/modest-msg-view-window.c +++ b/src/gnome/modest-msg-view-window.c @@ -215,7 +215,7 @@ modest_msg_view_window_new_for_attachment (TnyMsg *msg, GtkActionGroup *action_group; GError *error = NULL; TnyHeader *header = NULL; - const gchar *subject = NULL; + gchar *subject = NULL; ModestDimmingRulesGroup *menu_rules_group = NULL; ModestDimmingRulesGroup *toolbar_rules_group = NULL; ModestDimmingRulesGroup *clipboard_rules_group = NULL; @@ -284,12 +284,13 @@ modest_msg_view_window_new_for_attachment (TnyMsg *msg, header = tny_msg_get_header (msg); if (header) - subject = tny_header_get_subject (header); + subject = tny_header_dup_subject (header); if (subject != NULL) gtk_window_set_title (GTK_WINDOW (obj), subject); else gtk_window_set_title (GTK_WINDOW(obj), "Modest"); + g_free (subject); if (header) g_object_unref (header); @@ -356,13 +357,14 @@ modest_msg_view_window_get_message_uid (ModestMsgViewWindow *self) return NULL; header = tny_msg_get_header (msg); + g_free (priv->msg_uid); if (header) { - retval = tny_header_get_uid (header); + priv->msg_uid = tny_header_dup_uid (header); g_object_unref (header); } g_object_unref (msg); - return retval; + return priv->msg_uid; } ModestWindow* diff --git a/src/maemo/modest-msg-edit-window.c b/src/maemo/modest-msg-edit-window.c index 78a5ba9..a9fd316 100644 --- a/src/maemo/modest-msg-edit-window.c +++ b/src/maemo/modest-msg-edit-window.c @@ -508,15 +508,21 @@ get_transports (void) static ModestPair * find_transport_from_message_sender (ModestPairList *transports, TnyMsg *msg) { + ModestPair *account_pair = NULL; + gchar *from; + TnyHeader *header; + g_return_val_if_fail (transports, NULL); g_return_val_if_fail (msg, NULL); - ModestPair *account_pair = NULL; - TnyHeader *header = tny_msg_get_header (msg); + header = tny_msg_get_header (msg); - if (header != NULL && tny_header_get_from (header)) { - char *from_addr = modest_text_utils_get_email_address (tny_header_get_from (header)); + if (header != NULL && (from = tny_header_dup_from (header))) { GSList *iter; + char *from_addr; + + from_addr = modest_text_utils_get_email_address (from); + g_free (from); for (iter = transports; iter && !account_pair; iter = iter->next) { ModestPair *pair = (ModestPair *) iter->data; char *account_addr = modest_text_utils_get_email_address ((char *) pair->second); @@ -1174,7 +1180,7 @@ static void set_msg (ModestMsgEditWindow *self, TnyMsg *msg, gboolean preserve_is_rich) { TnyHeader *header; - const gchar *to, *cc, *bcc, *subject; + gchar *to, *cc, *bcc, *subject; gchar *body; ModestMsgEditWindowPrivate *priv; GtkTextIter iter; @@ -1188,10 +1194,10 @@ set_msg (ModestMsgEditWindow *self, TnyMsg *msg, gboolean preserve_is_rich) priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (self); header = tny_msg_get_header (msg); - to = tny_header_get_to (header); - cc = tny_header_get_cc (header); - bcc = tny_header_get_bcc (header); - subject = tny_header_get_subject (header); + to = tny_header_dup_to (header); + cc = tny_header_dup_cc (header); + bcc = tny_header_dup_bcc (header); + subject = tny_header_dup_subject (header); priority_flags = tny_header_get_priority (header); if (to) @@ -1299,6 +1305,11 @@ set_msg (ModestMsgEditWindow *self, TnyMsg *msg, gboolean preserve_is_rich) } g_object_unref (msg_folder); } + + g_free (to); + g_free (subject); + g_free (cc); + g_free (bcc); } static void @@ -2397,7 +2408,7 @@ modest_msg_edit_window_remove_attachments (ModestMsgEditWindow *window, if (TNY_IS_MSG (part)) { TnyHeader *header = tny_msg_get_header (TNY_MSG (part)); if (header) { - filename = g_strdup (tny_header_get_subject (header)); + filename = tny_header_dup_subject (header); g_object_unref (header); } if (filename == NULL) { diff --git a/src/maemo/modest-msg-view-window.c b/src/maemo/modest-msg-view-window.c index 45d7a90..6152030 100644 --- a/src/maemo/modest-msg-view-window.c +++ b/src/maemo/modest-msg-view-window.c @@ -2749,7 +2749,7 @@ modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window, gboolean n_attachments = tny_list_get_length (mime_parts); if (n_attachments == 1) { - const gchar *filename; + gchar *filename; TnyMimePart *part; iter = tny_list_create_iterator (mime_parts); @@ -2758,14 +2758,15 @@ modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window, gboolean if (modest_tny_mime_part_is_msg (part)) { TnyHeader *header; header = tny_msg_get_header (TNY_MSG (part)); - filename = tny_header_get_subject (header); + filename = tny_header_dup_subject (header); g_object_unref (header); if (filename == NULL) - filename = _("mail_va_no_subject"); + filename = g_strdup (_("mail_va_no_subject")); } else { - filename = tny_mime_part_get_filename (TNY_MIME_PART (part)); + filename = g_strdup (tny_mime_part_get_filename (TNY_MIME_PART (part))); } confirmation_message = g_strdup_printf (_("mcen_nc_purge_file_text"), filename); + g_free (filename); g_object_unref (part); } else { confirmation_message = g_strdup_printf (ngettext("mcen_nc_purge_file_text", @@ -2828,18 +2829,21 @@ update_window_title (ModestMsgViewWindow *window) ModestMsgViewWindowPrivate *priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window); TnyMsg *msg = NULL; TnyHeader *header = NULL; - const gchar *subject = NULL; + gchar *subject = NULL; msg = tny_msg_view_get_msg (TNY_MSG_VIEW (priv->msg_view)); if (msg != NULL) { header = tny_msg_get_header (msg); - subject = tny_header_get_subject (header); + subject = tny_header_dup_subject (header); + g_object_unref (header); g_object_unref (msg); } - if ((subject == NULL)||(subject[0] == '\0')) - subject = _("mail_va_no_subject"); + if ((subject == NULL)||(subject[0] == '\0')) { + g_free (subject); + subject = g_strdup (_("mail_va_no_subject")); + } gtk_window_set_title (GTK_WINDOW (window), subject); } diff --git a/src/maemo/modest-platform.c b/src/maemo/modest-platform.c index 2881ffb..ae0c3a4 100644 --- a/src/maemo/modest-platform.c +++ b/src/maemo/modest-platform.c @@ -1439,21 +1439,26 @@ modest_platform_on_new_headers_received (TnyList *header_list, TnyFolder *folder = tny_header_get_folder (header); gboolean first_notification = TRUE; gint notif_id; + gchar *str; /* constant string, don't free */ display_date = modest_text_utils_get_display_date (tny_header_get_date_received (header)); - display_address = g_strdup(tny_header_get_from (header)); + display_address = tny_header_dup_from (header); modest_text_utils_get_display_address (display_address); /* string is changed in-place */ summary = g_strdup_printf ("%s - %s", display_date, display_address); + str = tny_header_dup_subject (header); notification = hildon_notification_new (summary, - tny_header_get_subject (header), + str, "qgn_list_messagin", "email.arrive"); + g_free (str); /* Create the message URL */ + str = tny_header_dup_uid (header); url = g_strdup_printf ("%s/%s", tny_folder_get_url_string (folder), - tny_header_get_uid (header)); + str); + g_free (str); hildon_notification_add_dbus_action(notification, "default", diff --git a/src/modest-email-clipboard.c b/src/modest-email-clipboard.c index 878718a..ea34a99 100644 --- a/src/modest-email-clipboard.c +++ b/src/modest-email-clipboard.c @@ -195,7 +195,7 @@ modest_email_clipboard_set_data (ModestEmailClipboard *self, while (!tny_iterator_is_done (iter)) { obj = tny_iterator_get_current (iter); if (obj && TNY_IS_HEADER (obj)) - id = g_strdup(tny_header_get_message_id (TNY_HEADER (obj))); + id = tny_header_dup_message_id (TNY_HEADER (obj)); priv->hidding[i++] = id; tny_iterator_next (iter); diff --git a/src/modest-formatter.c b/src/modest-formatter.c index 932c99c..8eb4c75 100644 --- a/src/modest-formatter.c +++ b/src/modest-formatter.c @@ -278,28 +278,40 @@ static gchar * modest_formatter_wrapper_cite (ModestFormatter *self, const gchar *text, TnyHeader *header, GList *attachments) { + gchar *result, *from; ModestFormatterPrivate *priv = MODEST_FORMATTER_GET_PRIVATE (self); - return modest_text_utils_cite (text, - priv->content_type, - priv->signature, - tny_header_get_from (header), - tny_header_get_date_sent (header)); + from = tny_header_dup_from (header); + result = modest_text_utils_cite (text, + priv->content_type, + priv->signature, + from, + tny_header_get_date_sent (header)); + g_free (from); + return result; } static gchar * modest_formatter_wrapper_inline (ModestFormatter *self, const gchar *text, TnyHeader *header, GList *attachments) { + gchar *result, *from, *to, *subject; ModestFormatterPrivate *priv = MODEST_FORMATTER_GET_PRIVATE (self); - return modest_text_utils_inline (text, - priv->content_type, - priv->signature, - tny_header_get_from (header), - tny_header_get_date_sent (header), - tny_header_get_to (header), - tny_header_get_subject (header)); + from = tny_header_dup_from (header); + to = tny_header_dup_to (header); + subject = tny_header_dup_subject (header); + result = modest_text_utils_inline (text, + priv->content_type, + priv->signature, + from, + tny_header_get_date_sent (header), + to, + subject); + g_free (subject); + g_free (to); + g_free (from); + return result; } static gchar * @@ -310,6 +322,7 @@ modest_formatter_wrapper_quote (ModestFormatter *self, const gchar *text, TnyHea GList *filenames = NULL; GList *node = NULL; gchar *result = NULL; + gchar *from; /* First we need a GList of attachments filenames */ for (node = attachments; node != NULL; node = g_list_next (node)) { @@ -317,7 +330,7 @@ modest_formatter_wrapper_quote (ModestFormatter *self, const gchar *text, TnyHea gchar *filename = NULL; if (TNY_IS_MSG (part)) { TnyHeader *header = tny_msg_get_header (TNY_MSG (part)); - filename = g_strdup (tny_header_get_subject (header)); + filename = tny_header_dup_subject (header); if ((filename == NULL)||(filename[0] == '\0')) { g_free (filename); filename = g_strdup (_("mail_va_no_subject")); @@ -333,13 +346,15 @@ modest_formatter_wrapper_quote (ModestFormatter *self, const gchar *text, TnyHea filenames = g_list_reverse (filenames); /* TODO: get 80 from the configuration */ + from = tny_header_dup_from (header); result = modest_text_utils_quote (text, priv->content_type, priv->signature, - tny_header_get_from (header), + from, tny_header_get_date_sent (header), filenames, 80); + g_free (from); g_list_foreach (filenames, (GFunc) g_free, NULL); g_list_free (filenames); diff --git a/src/modest-search.c b/src/modest-search.c index 3c0effc..68d02a4 100644 --- a/src/modest-search.c +++ b/src/modest-search.c @@ -91,9 +91,9 @@ add_hit (GList *list, TnyHeader *header, TnyFolder *folder) TnyHeaderFlags flags; char *furl; char *msg_url; - const char *uid; - const char *subject; - const char *sender; + char *uid; + char *subject; + char *sender; hit = g_slice_new0 (ModestSearchResultHit); @@ -107,22 +107,25 @@ add_hit (GList *list, TnyHeader *header, TnyFolder *folder) * and/or find out what UID form is used when finding, in camel_data_cache_get(). * so we can find what we get. Philip is working on this. */ - uid = tny_header_get_uid (header); + uid = tny_header_dup_uid (header); if (!furl) { - g_warning ("%s: tny_header_get_uid(): returned NULL for message with subject=%s\n", __FUNCTION__, tny_header_get_subject (header)); + gchar *subject = tny_header_dup_subject (header); + g_warning ("%s: tny_header_get_uid(): returned NULL for message with subject=%s\n", __FUNCTION__, subject); + g_free (subject); } msg_url = g_strdup_printf ("%s/%s", furl, uid); g_free (furl); + g_free (uid); - subject = tny_header_get_subject (header); - sender = tny_header_get_from (header); + subject = tny_header_dup_subject (header); + sender = tny_header_dup_from (header); flags = tny_header_get_flags (header); hit->msgid = msg_url; - hit->subject = g_strdup_or_null (subject); - hit->sender = g_strdup_or_null (sender); + hit->subject = subject; + hit->sender = sender; hit->folder = g_strdup_or_null (tny_folder_get_name (folder)); hit->msize = tny_header_get_message_size (header); hit->has_attachment = flags & TNY_HEADER_FLAG_ATTACHMENTS; @@ -418,15 +421,16 @@ modest_search_folder_get_headers_cb (TnyFolder *folder, goto go_next; if (helper->search->flags & MODEST_SEARCH_SUBJECT) { - const char *str = tny_header_get_subject (cur); + char *str = tny_header_dup_subject (cur); if ((found = search_string (helper->search->subject, str, helper->search))) { helper->msg_hits = add_hit (helper->msg_hits, cur, folder); } + g_free (str); } if (!found && helper->search->flags & MODEST_SEARCH_SENDER) { - char *str = g_strdup (tny_header_get_from (cur)); + char *str = tny_header_dup_from (cur); if ((found = search_string (helper->search->from, (const gchar *) str, helper->search))) { helper->msg_hits = add_hit (helper->msg_hits, cur, folder); @@ -435,11 +439,12 @@ modest_search_folder_get_headers_cb (TnyFolder *folder, } if (!found && helper->search->flags & MODEST_SEARCH_RECIPIENT) { - const char *str = tny_header_get_to (cur); + char *str = tny_header_dup_to (cur); if ((found = search_string (helper->search->recipient, str, helper->search))) { helper->msg_hits = add_hit (helper->msg_hits, cur, folder); } + g_free (str); } if (!found && helper->search->flags & MODEST_SEARCH_BODY) { @@ -463,7 +468,10 @@ modest_search_folder_get_headers_cb (TnyFolder *folder, g_object_unref (msg); } } else { - g_debug ("Searching in %s\n", tny_header_get_subject (cur)); + gchar *str; + str = tny_header_dup_subject (cur); + g_debug ("Searching in %s\n", str); + g_free (str); found = search_mime_part_and_child_parts (TNY_MIME_PART (msg), helper->search); diff --git a/src/modest-tny-folder.c b/src/modest-tny-folder.c index e8d37da..381cc64 100644 --- a/src/modest-tny-folder.c +++ b/src/modest-tny-folder.c @@ -328,7 +328,7 @@ modest_tny_folder_get_header_unique_id (TnyHeader *header) { TnyFolder *folder; gchar *url, *retval; - const gchar *uid; + gchar *uid; g_return_val_if_fail (TNY_IS_HEADER (header), NULL); @@ -337,9 +337,10 @@ modest_tny_folder_get_header_unique_id (TnyHeader *header) return NULL; url = tny_folder_get_url_string (folder); - uid = tny_header_get_uid (header); + uid = tny_header_dup_uid (header); retval = g_strjoin ("/", url, uid, NULL); + g_free (uid); g_free (url); g_object_unref (folder); diff --git a/src/modest-tny-msg.c b/src/modest-tny-msg.c index 8680c82..4a9c6b8 100644 --- a/src/modest-tny-msg.c +++ b/src/modest-tny-msg.c @@ -532,6 +532,7 @@ create_reply_forward_mail (TnyMsg *msg, TnyHeader *header, const gchar *from, { TnyMsg *new_msg; TnyHeader *new_header; + gchar *old_subject; gchar *new_subject; TnyMimePart *body = NULL; ModestFormatter *formatter; @@ -587,9 +588,11 @@ create_reply_forward_mail (TnyMsg *msg, TnyHeader *header, const gchar *from, subject_prefix = g_strconcat (_("mail_va_re"), ":", NULL); else subject_prefix = g_strconcat (_("mail_va_fw"), ":", NULL); + old_subject = tny_header_dup_subject (header); new_subject = - (gchar *) modest_text_utils_derived_subject (tny_header_get_subject(header), + (gchar *) modest_text_utils_derived_subject (old_subject, subject_prefix); + g_free (old_subject); g_free (subject_prefix); tny_header_set_subject (new_header, (const gchar *) new_subject); g_free (new_subject); @@ -703,7 +706,7 @@ get_new_to (TnyMsg *msg, TnyHeader *header, const gchar* from, ModestTnyMsgReplyMode reply_mode) { const gchar* old_reply_to; - const gchar* old_from; + gchar* old_from; gchar* new_to; /* according to RFC2369 (http://www.faqs.org/rfcs/rfc2369.html), we @@ -721,7 +724,7 @@ get_new_to (TnyMsg *msg, TnyHeader *header, const gchar* from, //old_reply_to = tny_header_get_replyto (header); old_reply_to = modest_tny_mime_part_get_header_value (TNY_MIME_PART(msg), "Reply-To"); - old_from = tny_header_get_from (header); + old_from = tny_header_dup_from (header); if (!old_from && !old_reply_to) { g_warning ("%s: failed to get either Reply-To: or From: from header", @@ -738,10 +741,11 @@ get_new_to (TnyMsg *msg, TnyHeader *header, const gchar* from, else /* otherwise use either Reply-To: (preferred) or From: */ new_to = g_strdup (old_reply_to ? old_reply_to : old_from); + g_free (old_from); /* in case of ReplyAll, we need to add the Recipients in the old To: */ if (reply_mode == MODEST_TNY_MSG_REPLY_MODE_ALL) { - const gchar *old_to = tny_header_get_to (header); + gchar *old_to = tny_header_dup_to (header); if (!old_to) g_warning ("%s: no To: address found in source mail", __FUNCTION__); @@ -750,6 +754,7 @@ get_new_to (TnyMsg *msg, TnyHeader *header, const gchar* from, gchar *tmp = g_strjoin (",", new_to, old_to, NULL); g_free (new_to); new_to = tmp; + g_free (old_to); } /* remove duplicate entries */ @@ -775,14 +780,17 @@ get_new_to (TnyMsg *msg, TnyHeader *header, const gchar* from, static gchar* get_new_cc (TnyHeader *header, const gchar* from) { - const gchar *old_cc; + gchar *old_cc; + gchar *result; - old_cc = tny_header_get_cc (header); + old_cc = tny_header_dup_cc (header); if (!old_cc) return NULL; /* remove me (the new From:) from the Cc: list */ - return modest_text_utils_remove_address (old_cc, from); + result = modest_text_utils_remove_address (old_cc, from); + g_free (old_cc); + return result; } diff --git a/src/modest-tny-send-queue.c b/src/modest-tny-send-queue.c index fc77575..b18c964 100644 --- a/src/modest-tny-send-queue.c +++ b/src/modest-tny-send-queue.c @@ -506,16 +506,17 @@ gchar * modest_tny_send_queue_get_msg_id (TnyHeader *header) { gchar* msg_uid = NULL; - const gchar *subject; + gchar *subject; time_t date_received; g_return_val_if_fail (header && TNY_IS_HEADER(header), NULL); /* Get message uid */ - subject = tny_header_get_subject (header); + subject = tny_header_dup_subject (header); date_received = tny_header_get_date_received (header); msg_uid = g_strdup_printf ("%s %d", subject, (int) date_received); + g_free (subject); return msg_uid; } diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index 1959b40..9290abe 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -440,7 +440,10 @@ modest_ui_actions_on_delete_message (GtkAction *action, ModestWindow *win) iter = tny_list_create_iterator (header_list); header = TNY_HEADER (tny_iterator_get_current (iter)); if (header) { - desc = g_strdup_printf ("%s", tny_header_get_subject (header)); + gchar *subject; + subject = tny_header_dup_subject (header); + desc = g_strdup_printf ("%s", subject); + g_free (subject); g_object_unref (header); } @@ -907,13 +910,14 @@ open_msg_cb (ModestMailOperation *mail_op, if (open_in_editor) { ModestAccountMgr *mgr = modest_runtime_get_account_mgr (); - const gchar *from_header = NULL; + gchar *from_header = NULL; - from_header = tny_header_get_from (header); + from_header = tny_header_dup_from (header); /* we cannot edit without a valid account... */ if (!modest_account_mgr_has_accounts(mgr, TRUE)) { if (!modest_ui_actions_run_account_setup_wizard(parent_win)) + g_free (from_header); goto cleanup; } @@ -931,6 +935,7 @@ open_msg_cb (ModestMailOperation *mail_op, } g_free (from); } + g_free (from_header); g_slist_foreach (accounts, (GFunc) g_free, NULL); g_slist_free (accounts); } @@ -1143,8 +1148,10 @@ open_msgs_performer(gboolean canceled, } else if (proto == MODEST_PROTOCOL_STORE_IMAP) { TnyIterator *iter = tny_list_create_iterator (not_opened_headers); TnyHeader *header = TNY_HEADER (tny_iterator_get_current (iter)); + gchar *subject = tny_header_dup_subject (header); error_msg = g_strdup_printf (_("emev_ni_ui_imap_message_not_available_in_server"), - tny_header_get_subject (header)); + subject); + g_free (subject); g_object_unref (header); g_object_unref (iter); } else { @@ -4951,21 +4958,21 @@ on_move_folder_cb (gboolean canceled, GError *err, GtkWindow *parent_window, /* modest_folder_view_select_folder (MODEST_FOLDER_VIEW(folder_view), */ /* TNY_FOLDER (src_folder), TRUE); */ + modest_folder_view_select_folder (MODEST_FOLDER_VIEW(info->folder_view), + TNY_FOLDER (info->dst_folder), TRUE); modest_mail_operation_xfer_folder (mail_op, TNY_FOLDER (info->src_folder), info->dst_folder, info->delete_original, folder_move_to_cb, helper); + g_object_unref (G_OBJECT (info->src_folder)); - if (modest_mail_operation_get_status (mail_op) == MODEST_MAIL_OPERATION_STATUS_SUCCESS) { - modest_folder_view_select_folder (MODEST_FOLDER_VIEW(info->folder_view), - TNY_FOLDER (info->dst_folder), TRUE); - } + /* if (modest_mail_operation_get_status (mail_op) == MODEST_MAIL_OPERATION_STATUS_SUCCESS) { */ + /* } */ /* Unref mail operation */ g_object_unref (G_OBJECT (mail_op)); - g_object_unref (G_OBJECT (info->src_folder)); g_object_unref (G_OBJECT (info->dst_folder)); g_free (user_data); } @@ -5719,8 +5726,11 @@ modest_ui_actions_get_msg_already_deleted_error_msg (ModestWindow *win) if (proto == MODEST_PROTOCOL_STORE_POP) { msg = g_strdup (_("emev_ni_ui_pop3_msg_recv_error")); } else if (proto == MODEST_PROTOCOL_STORE_IMAP) { + gchar *subject; + subject = tny_header_dup_subject (header); msg = g_strdup_printf (_("emev_ni_ui_imap_message_not_available_in_server"), - tny_header_get_subject (header)); + subject); + g_free (subject); } else { msg = g_strdup_printf (_("mail_ni_ui_folder_get_msg_folder_error")); } diff --git a/src/widgets/modest-attachment-view.c b/src/widgets/modest-attachment-view.c index 3d724ac..7c7cae4 100644 --- a/src/widgets/modest-attachment-view.c +++ b/src/widgets/modest-attachment-view.c @@ -249,7 +249,7 @@ modest_attachment_view_set_part_default (TnyMimePartView *self, TnyMimePart *mim if (TNY_IS_HEADER (header)) { filename = g_strdup (tny_mime_part_get_filename (mime_part)); if (!filename) - filename = g_strdup (tny_header_get_subject (header)); + filename = tny_header_dup_subject (header); if (filename == NULL || filename[0] == '\0') filename = g_strdup (_("mail_va_no_subject")); if (priv->is_purged) diff --git a/src/widgets/modest-details-dialog.c b/src/widgets/modest-details-dialog.c index e3b7278..ebc7959 100644 --- a/src/widgets/modest-details-dialog.c +++ b/src/widgets/modest-details-dialog.c @@ -207,10 +207,10 @@ modest_details_dialog_set_header_default (ModestDetailsDialog *self, g_return_if_fail (folder_type != TNY_FOLDER_TYPE_INVALID); /* Get header data */ - from = g_strdup (tny_header_get_from (header)); - to = g_strdup (tny_header_get_to (header)); - subject = g_strdup (tny_header_get_subject (header)); - cc = g_strdup (tny_header_get_cc (header)); + from = tny_header_dup_from (header); + to = tny_header_dup_to (header); + subject = tny_header_dup_subject (header); + cc = tny_header_dup_cc (header); received = tny_header_get_date_received (header); sent = tny_header_get_date_sent (header); size = tny_header_get_message_size (header); diff --git a/src/widgets/modest-header-view-render.c b/src/widgets/modest-header-view-render.c index 1728532..a1a8299 100644 --- a/src/widgets/modest-header-view-render.c +++ b/src/widgets/modest-header-view-render.c @@ -344,6 +344,7 @@ _modest_header_view_compact_header_cell_data (GtkTreeViewColumn *column, GtkCe * theme (gtkrc file) */ modest_text_utils_get_display_address (address); /* changed in-place */ set_cell_text (recipient_cell, address, flags, RENDER_CELL_STYLE_GREY); + g_free (address); if (header_mode == MODEST_HEADER_VIEW_COMPACT_HEADER_MODE_OUTBOX) { ModestTnySendQueueStatus status = MODEST_TNY_SEND_QUEUE_UNKNOWN; diff --git a/src/widgets/modest-header-view.c b/src/widgets/modest-header-view.c index 99788a1..f46f2a7 100644 --- a/src/widgets/modest-header-view.c +++ b/src/widgets/modest-header-view.c @@ -1994,7 +1994,7 @@ filter_row (GtkTreeModel *model, /* Check hiding */ if (priv->hidding_ids != NULL) { - id = g_strdup(tny_header_get_message_id (header)); + id = tny_header_dup_message_id (header); for (i=0; i < priv->n_selected && !found; i++) if (priv->hidding_ids[i] != NULL && id != NULL) found = (!strcmp (priv->hidding_ids[i], id)); diff --git a/src/widgets/modest-mail-header-view.c b/src/widgets/modest-mail-header-view.c index 245307e..7a9ad29 100644 --- a/src/widgets/modest-mail-header-view.c +++ b/src/widgets/modest-mail-header-view.c @@ -241,7 +241,7 @@ modest_mail_header_view_set_header_default (TnyHeaderView *self, TnyHeader *head if (header && G_IS_OBJECT (header)) { - const gchar *to, *from, *subject, *bcc, *cc; + gchar *to, *from, *subject, *bcc, *cc; GtkWidget *subject_label; g_object_ref (G_OBJECT (header)); @@ -250,11 +250,11 @@ modest_mail_header_view_set_header_default (TnyHeaderView *self, TnyHeader *head modest_mail_header_view_update_is_outgoing (self); - to = tny_header_get_to (header); - from = tny_header_get_from (header); - subject = tny_header_get_subject (header); - cc = tny_header_get_cc (header); - bcc = tny_header_get_bcc (header); + to = tny_header_dup_to (header); + from = tny_header_dup_from (header); + subject = tny_header_dup_subject (header); + cc = tny_header_dup_cc (header); + bcc = tny_header_dup_bcc (header); priv->subject_box = gtk_hbox_new (FALSE, 0); subject_label = gtk_label_new (NULL); @@ -307,6 +307,11 @@ modest_mail_header_view_set_header_default (TnyHeaderView *self, TnyHeader *head add_date_time_header (MODEST_MAIL_HEADER_VIEW (self), _("mail_va_date"), tny_header_get_date_received (header)); } + g_free (subject); + g_free (to); + g_free (from); + g_free (cc); + g_free (bcc); } gtk_widget_show_all (GTK_WIDGET (self)); -- 1.7.9.5