From: Jose Dapena Paz Date: Fri, 3 Aug 2007 21:45:58 +0000 (+0000) Subject: * src/maemo/modest-msg-view-window.c: X-Git-Tag: git_migration_finished~2630 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=a0650f62b794cd6a50ef3d9a064653dcecb9be27 * src/maemo/modest-msg-view-window.c: * Now the removing attachments banner is shown after 2 seconds of progress of the operation, and not at the end of the operation (fixes NB#63026). pmo-trunk-r2931 --- diff --git a/src/maemo/modest-msg-view-window.c b/src/maemo/modest-msg-view-window.c index 45cc3f7..ef442c1 100644 --- a/src/maemo/modest-msg-view-window.c +++ b/src/maemo/modest-msg-view-window.c @@ -169,6 +169,9 @@ struct _ModestMsgViewWindowPrivate { guint queue_change_handler; guint account_removed_handler; + guint purge_timeout; + GtkWidget *remove_attachment_banner; + guint progress_bar_timeout; gchar *msg_uid; @@ -271,6 +274,8 @@ modest_msg_view_window_init (ModestMsgViewWindow *obj) priv->optimized_view = FALSE; priv->progress_bar_timeout = 0; + priv->purge_timeout = 0; + priv->remove_attachment_banner = NULL; priv->msg_uid = NULL; } @@ -490,6 +495,17 @@ modest_msg_view_window_finalize (GObject *obj) priv->progress_bar_timeout = 0; } + if (priv->remove_attachment_banner) { + gtk_widget_destroy (priv->remove_attachment_banner); + g_object_unref (priv->remove_attachment_banner); + priv->remove_attachment_banner = NULL; + } + + if (priv->purge_timeout > 0) { + g_source_remove (priv->purge_timeout); + priv->purge_timeout = 0; + } + if (priv->row_reference) { gtk_tree_row_reference_free (priv->row_reference); priv->row_reference = NULL; @@ -2054,6 +2070,23 @@ modest_msg_view_window_save_attachments (ModestMsgViewWindow *window, GList *mim } } +static gboolean +show_remove_attachment_information (gpointer userdata) +{ + ModestMsgViewWindow *window = (ModestMsgViewWindow *) userdata; + ModestMsgViewWindowPrivate *priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window); + + if (priv->remove_attachment_banner != NULL) { + gtk_widget_destroy (priv->remove_attachment_banner); + g_object_unref (priv->remove_attachment_banner); + } + + priv->remove_attachment_banner = g_object_ref ( + hildon_banner_show_animation (NULL, NULL, _("mcen_ib_removing_attachment"))); + + return FALSE; +} + void modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window, gboolean get_all) { @@ -2117,13 +2150,12 @@ modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window, gboolean if (response != GTK_RESPONSE_OK) return; + priv->purge_timeout = g_timeout_add (2000, show_remove_attachment_information, window); /* folder = tny_msg_get_folder (msg); */ /* tny_msg_uncache_attachments (msg); */ /* tny_folder_refresh (folder, NULL); */ /* g_object_unref (folder); */ - modest_platform_information_banner (NULL, NULL, _("mcen_ib_removing_attachment")); - for (node = mime_parts; node != NULL; node = g_list_next (node)) { tny_mime_part_set_purged (TNY_MIME_PART (node->data)); /* modest_msg_view_remove_attachment (MODEST_MSG_VIEW (priv->msg_view), node->data); */ @@ -2137,6 +2169,17 @@ modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window, gboolean g_list_foreach (mime_parts, (GFunc) g_object_unref, NULL); g_list_free (mime_parts); + if (priv->purge_timeout > 0) { + g_source_remove (priv->purge_timeout); + priv->purge_timeout = 0; + } + + if (priv->remove_attachment_banner) { + gtk_widget_destroy (priv->remove_attachment_banner); + g_object_unref (priv->remove_attachment_banner); + priv->remove_attachment_banner = NULL; + } + }