From f2f85fb554572fa18695ab7b60c6143347c92d92 Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz Date: Wed, 1 Aug 2007 09:16:47 +0000 Subject: [PATCH] * src/widgets/modest-msg-view.c: * Modified the html adjustment change handler to prevent some infinite recursions. In particular one happening on removing attachments. * src/widgets/modest-attachment-view.c: * Add support for showing purged attached messages. * src/modest-ui-dimming-rules.c: * Now we don't dim remove attachments for message attachments in view, as we now support this (fixes NB#64068). pmo-trunk-r2884 --- src/modest-ui-dimming-rules.c | 19 +++++++++++-------- src/widgets/modest-attachment-view.c | 27 +++++++++++++++------------ src/widgets/modest-msg-view.c | 4 ++++ 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/src/modest-ui-dimming-rules.c b/src/modest-ui-dimming-rules.c index 4dcd268..bf6c2b9 100644 --- a/src/modest-ui-dimming-rules.c +++ b/src/modest-ui-dimming-rules.c @@ -44,7 +44,9 @@ static gboolean _folder_is_any_of_type (TnyFolder *folder, TnyFolderType types[], guint ntypes); static gboolean _invalid_msg_selected (ModestMainWindow *win, gboolean unique, ModestDimmingRule *rule); -static gboolean _invalid_attach_selected (ModestWindow *win, gboolean unique, gboolean for_view, ModestDimmingRule *rule); +static gboolean _invalid_attach_selected (ModestWindow *win, + gboolean unique, gboolean for_view, gboolean for_remove, + ModestDimmingRule *rule); static gboolean _purged_attach_selected (ModestWindow *win, gboolean all, ModestDimmingRule *rule); static gboolean _clipboard_is_empty (ModestWindow *win); static gboolean _invalid_clipboard_selected (ModestWindow *win, ModestDimmingRule *rule); @@ -785,7 +787,7 @@ modest_ui_dimming_rules_on_view_attachments (ModestWindow *win, gpointer user_da /* Check dimmed rule */ if (!dimmed) - dimmed = _invalid_attach_selected (win, TRUE, TRUE, rule); + dimmed = _invalid_attach_selected (win, TRUE, TRUE, FALSE, rule); if (!dimmed) { dimmed = _purged_attach_selected (win, FALSE, NULL); @@ -809,7 +811,7 @@ modest_ui_dimming_rules_on_save_attachments (ModestWindow *win, gpointer user_da /* Check dimmed rule */ if (!dimmed) - dimmed = _invalid_attach_selected (win, FALSE, FALSE, rule); + dimmed = _invalid_attach_selected (win, FALSE, FALSE, FALSE, rule); if (!dimmed) { dimmed = _purged_attach_selected (win, FALSE, NULL); @@ -838,7 +840,7 @@ modest_ui_dimming_rules_on_remove_attachments (ModestWindow *win, gpointer user_ /* Check in view window if there's any attachment selected */ if (!dimmed && MODEST_IS_MSG_VIEW_WINDOW (win)) { - dimmed = _invalid_attach_selected (win, FALSE, FALSE, NULL); + dimmed = _invalid_attach_selected (win, FALSE, FALSE, TRUE, NULL); if (dimmed) modest_dimming_rule_set_notification (rule, _("FIXME:no attachment selected")); } @@ -1485,6 +1487,7 @@ static gboolean _invalid_attach_selected (ModestWindow *win, gboolean unique, gboolean for_view, + gboolean for_remove, ModestDimmingRule *rule) { GList *attachments, *node; @@ -1519,14 +1522,14 @@ _invalid_attach_selected (ModestWindow *win, for (node = attachments; node != NULL && !result; node = g_list_next (node)) { TnyMimePart *mime_part = TNY_MIME_PART (node->data); TnyList *nested_list = tny_simple_list_new (); - if (TNY_IS_MSG (mime_part)) { + if (!for_remove && TNY_IS_MSG (mime_part)) { selected_messages = TRUE; result = TRUE; } tny_mime_part_get_parts (mime_part, nested_list); - if (tny_list_get_length (nested_list) > 0) { - nested_attachments = TRUE; - result = TRUE; + if (!for_remove && tny_list_get_length (nested_list) > 0) { + nested_attachments = TRUE; + result = TRUE; } g_object_unref (nested_list); } diff --git a/src/widgets/modest-attachment-view.c b/src/widgets/modest-attachment-view.c index e972f79..2fedbf3 100644 --- a/src/widgets/modest-attachment-view.c +++ b/src/widgets/modest-attachment-view.c @@ -173,27 +173,30 @@ modest_attachment_view_set_part_default (TnyMimePartView *self, TnyMimePart *mim priv->size = 0; priv->is_purged = tny_mime_part_is_purged (mime_part); - - if (priv->is_purged) { - filename = g_strdup( tny_mime_part_get_filename (mime_part)); - if (filename == NULL) - filename = g_strdup (""); - file_icon_name = modest_platform_get_file_icon_name (NULL, NULL, NULL); - } else if (TNY_IS_MSG (mime_part)) { + + if (TNY_IS_MSG (mime_part)) { TnyHeader *header = tny_msg_get_header (TNY_MSG (mime_part)); if (TNY_IS_HEADER (header)) { filename = g_strdup (tny_header_get_subject (header)); if (filename == NULL) filename = g_strdup (_("mail_va_no_subject")); - file_icon_name = modest_platform_get_file_icon_name (NULL, tny_mime_part_get_content_type (mime_part), NULL); + if (priv->is_purged) + file_icon_name = modest_platform_get_file_icon_name (NULL, NULL, NULL); + else + file_icon_name = + modest_platform_get_file_icon_name ( + NULL, tny_mime_part_get_content_type (mime_part), NULL); g_object_unref (header); } } else { filename = g_strdup (tny_mime_part_get_filename (mime_part)); - file_icon_name = modest_platform_get_file_icon_name (filename, - tny_mime_part_get_content_type (mime_part), - NULL); - show_size = TRUE; + if (priv->is_purged) { + file_icon_name = modest_platform_get_file_icon_name (NULL, NULL, NULL); + } else { + file_icon_name = modest_platform_get_file_icon_name ( + filename, tny_mime_part_get_content_type (mime_part), NULL); + show_size = TRUE; + } } if (file_icon_name) { diff --git a/src/widgets/modest-msg-view.c b/src/widgets/modest-msg-view.c index 276f2f1..de775b1 100644 --- a/src/widgets/modest-msg-view.c +++ b/src/widgets/modest-msg-view.c @@ -831,7 +831,11 @@ html_adjustment_changed (GtkAdjustment *adj, gboolean vadj_changed; gint new_height; + g_signal_stop_emission_by_name (G_OBJECT (adj), "changed"); + priv->html_scroll->requisition.height = html_vadj->upper; + if (html_vadj->upper == priv->html_scroll->allocation.height) + return; priv->html_scroll->allocation.height = html_vadj->upper; set_vadjustment_values (msg_view, &vadj_changed); -- 1.7.9.5