From 5f289fa0cd1e8dc0d226350bf167e2bc120d60c9 Mon Sep 17 00:00:00 2001 From: Sergio Villar Senin Date: Wed, 15 Apr 2009 08:07:19 +0000 Subject: [PATCH] * Fixes NB#110316, hide "Move" & "Delete" menu options if there are no messages * Update the header window view when the folder refresh finishes pmo-trunk-r8802 --- src/hildon2/modest-header-window.c | 15 ++++++++++++--- src/modest-ui-actions.c | 8 +++++--- src/modest-ui-dimming-rules.c | 6 ++++-- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/hildon2/modest-header-window.c b/src/hildon2/modest-header-window.c index 1b08bdc..8924cc7 100644 --- a/src/hildon2/modest-header-window.c +++ b/src/hildon2/modest-header-window.c @@ -358,15 +358,24 @@ connect_signals (ModestHeaderWindow *self) G_CALLBACK (modest_ui_actions_on_new_msg), self); } +static void +folder_refreshed_cb (ModestMailOperation *mail_op, + TnyFolder *folder, + gpointer user_data) +{ + /* Update the view (folder could be empty) */ + update_view (MODEST_HEADER_WINDOW (user_data), NULL); +} + static GtkWidget * create_header_view (ModestWindow *self, TnyFolder *folder) { GtkWidget *header_view; header_view = modest_header_view_new (NULL, MODEST_HEADER_VIEW_STYLE_TWOLINES); - modest_header_view_set_folder (MODEST_HEADER_VIEW (header_view), folder, - TRUE, self, NULL, NULL); - modest_header_view_set_filter (MODEST_HEADER_VIEW (header_view), + modest_header_view_set_folder (MODEST_HEADER_VIEW (header_view), folder, + TRUE, self, folder_refreshed_cb, self); + modest_header_view_set_filter (MODEST_HEADER_VIEW (header_view), MODEST_HEADER_VIEW_FILTER_NONE); modest_widget_memory_restore (modest_runtime_get_conf (), G_OBJECT(header_view), MODEST_CONF_HEADER_VIEW_KEY); diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index 0ca05dd..0fae3f9 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -2578,7 +2578,7 @@ folder_refreshed_cb (ModestMailOperation *mail_op, gpointer user_data) { ModestMainWindow *win = NULL; - GtkWidget *folder_view; + GtkWidget *folder_view, *header_view; const GError *error; g_return_if_fail (TNY_IS_FOLDER (folder)); @@ -2597,6 +2597,8 @@ folder_refreshed_cb (ModestMailOperation *mail_op, folder_view = modest_main_window_get_child_widget(win, MODEST_MAIN_WINDOW_WIDGET_TYPE_FOLDER_VIEW); + header_view = + modest_main_window_get_child_widget(win, MODEST_MAIN_WINDOW_WIDGET_TYPE_HEADER_VIEW); if (folder_view) { TnyFolderStore *current_folder; @@ -2611,10 +2613,10 @@ folder_refreshed_cb (ModestMailOperation *mail_op, } /* Check if folder is empty and set headers view contents style */ - if (tny_folder_get_all_count (folder) == 0) + if ((tny_folder_get_all_count (folder) == 0) || + modest_header_view_is_empty (MODEST_HEADER_VIEW (header_view))) modest_main_window_set_contents_style (win, MODEST_MAIN_WINDOW_CONTENTS_STYLE_EMPTY); - } void diff --git a/src/modest-ui-dimming-rules.c b/src/modest-ui-dimming-rules.c index 794c0fa..9db4991 100644 --- a/src/modest-ui-dimming-rules.c +++ b/src/modest-ui-dimming-rules.c @@ -490,7 +490,8 @@ modest_ui_dimming_rules_on_delete (ModestWindow *win, gpointer user_data) header_view = GTK_WIDGET (modest_header_window_get_header_view (MODEST_HEADER_WINDOW (win))); folder = modest_header_view_get_folder (MODEST_HEADER_VIEW (header_view)); if (folder) { - dimmed = (tny_folder_get_all_count (TNY_FOLDER (folder)) == 0); + dimmed = (tny_folder_get_all_count (TNY_FOLDER (folder)) == 0) || + modest_header_view_is_empty (MODEST_HEADER_VIEW (header_view)); if (!dimmed && (tny_folder_get_folder_type (TNY_FOLDER (folder)) == TNY_FOLDER_TYPE_OUTBOX)) { @@ -3103,7 +3104,8 @@ modest_ui_dimming_rules_on_header_window_move_to (ModestWindow *win, gpointer us header_view = GTK_WIDGET (modest_header_window_get_header_view (MODEST_HEADER_WINDOW (win))); folder = modest_header_view_get_folder (MODEST_HEADER_VIEW (header_view)); if (folder) { - dimmed = (tny_folder_get_all_count (TNY_FOLDER (folder)) == 0); + dimmed = (tny_folder_get_all_count (TNY_FOLDER (folder)) == 0) || + modest_header_view_is_empty (MODEST_HEADER_VIEW (header_view)); if (!dimmed && (tny_folder_get_folder_type (TNY_FOLDER (folder)) == TNY_FOLDER_TYPE_OUTBOX)) { -- 1.7.9.5