{
printf ("DEBUG: %s\n", __FUNCTION__);
gboolean folder_empty = FALSE;
+ gboolean all_marked_as_deleted = FALSE;
TnyFolderChangeChanged changed;
ModestMainWindowPrivate *priv;
modest_header_view_refilter (MODEST_HEADER_VIEW(priv->header_view));
}
+ /* Check if all messages are marked to be deleted */
+ all_marked_as_deleted = modest_header_view_is_empty (header_view);
+ folder_empty = folder_empty || all_marked_as_deleted ;
+
/* Set contents style of headers view */
if (folder_empty) {
modest_main_window_set_contents_style (main_window,
if (TNY_IS_CAMEL_IMAP_FOLDER (folder))
/* tny_folder_sync_async(folder, FALSE, NULL, NULL, NULL); /\* FALSE --> don't expunge *\/ */
tny_folder_sync (folder, FALSE, &err); /* FALSE --> don't expunge */
-/* else if (TNY_IS_CAMEL_POP_FOLDER (folder)) */
+ else if (TNY_IS_CAMEL_POP_FOLDER (folder))
/* tny_folder_sync_async(folder, FALSE, NULL, NULL, NULL); /\* TRUE --> dont expunge *\/ */
-/* tny_folder_sync (folder, TRUE, &err); /\* TRUE --> expunge *\/ */
+ tny_folder_sync (folder, TRUE, &err); /* TRUE --> expunge */
else
/* local folders */
/* tny_folder_sync_async(folder, TRUE, NULL, NULL, NULL); /\* TRUE --> expunge *\/ */
gpointer user_data)
{
ModestMainWindow *win = NULL;
+ GtkWidget *folder_view = NULL;
+ TnyFolderStore *folder = NULL;
gboolean folder_empty = FALSE;
g_return_if_fail (MODEST_IS_MAIN_WINDOW (user_data));
win = MODEST_MAIN_WINDOW (user_data);
- if (new_messages == 0)
- return;
-
/* Set contents style of headers view */
- folder_empty = modest_main_window_get_style (win);
- if (folder_empty) {
- modest_main_window_set_contents_style (win,
+ if (modest_main_window_get_contents_style (win) == MODEST_MAIN_WINDOW_CONTENTS_STYLE_EMPTY) {
+ folder_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (win),
+ MODEST_WIDGET_TYPE_FOLDER_VIEW);
+ folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view));
+
+
+ folder_empty = (tny_folder_get_all_count (TNY_FOLDER (folder)) == 0);
+
+ if (!folder_empty)
+ modest_main_window_set_contents_style (win,
MODEST_MAIN_WINDOW_CONTENTS_STYLE_HEADERS);
}
+ /* Notify new messages have been downloaded */
+ if (new_messages > 0)
+ modest_platform_on_new_msg ();
}
/*
_define_main_window_dimming_state (ModestMainWindow *window)
{
DimmedState *state = NULL;
+ GtkWidget *focused_widget = NULL;
GtkWidget *header_view = NULL;
TnyList *selected_headers = NULL;
TnyIterator *iter = NULL;
state->all_has_attachments = FALSE;
state->sent_in_progress = FALSE;
+ /* Get focused widget */
+ focused_widget = gtk_window_get_focus (GTK_WINDOW (window));
+ if (MODEST_IS_FOLDER_VIEW (focused_widget)) {
+ state->n_selected++;
+ return state;
+ }
+
/* Get header view and selected headers */
- header_view = modest_main_window_get_child_widget (window, MODEST_WIDGET_TYPE_HEADER_VIEW);
+/* header_view = modest_main_window_get_child_widget (window, MODEST_WIDGET_TYPE_HEADER_VIEW); */
+ header_view = focused_widget;
selected_headers = modest_header_view_get_selected_headers (MODEST_HEADER_VIEW(header_view));
if (!selected_headers)
return state;
gulong selection_changed_handler;
gulong acc_removed_handler;
+
+ gboolean empty;
};
typedef struct _HeadersCountChangedHelper HeadersCountChangedHelper;
priv->monitor = NULL;
priv->observers_lock = g_mutex_new ();
+ priv->empty = TRUE;
+
priv->clipboard = modest_runtime_get_email_clipboard ();
priv->hidding_ids = NULL;
priv->n_selected = 0;
}
-gboolean
-modest_header_view_is_empty (ModestHeaderView *self)
-{
- g_return_val_if_fail (self, FALSE);
- return FALSE; /* FIXME */
-}
+/* gboolean */
+/* modest_header_view_is_empty (ModestHeaderView *self) */
+/* { */
+/* g_return_val_if_fail (self, FALSE); */
+/* return FALSE; /\* FIXME *\/ */
+/* } */
gboolean
folder_monitor_update (TnyFolderObserver *self,
TnyFolderChange *change)
{
- ModestHeaderViewPrivate *priv;
+ ModestHeaderViewPrivate *priv = NULL;
TnyFolderChangeChanged changed;
HeadersCountChangedHelper *helper = NULL;
}
}
+gboolean
+modest_header_view_is_empty (ModestHeaderView *self)
+{
+ ModestHeaderViewPrivate *priv = NULL;
+
+ priv = MODEST_HEADER_VIEW_GET_PRIVATE (MODEST_HEADER_VIEW (self));
+
+ return priv->empty;
+}
+
void
modest_header_view_clear (ModestHeaderView *self)
{
visible = !found;
}
- /* Free */
frees:
+ priv->empty = priv->empty && !visible;
+
+ /* Free */
if (header)
g_object_unref (header);
g_free(id);
static void
_clear_hidding_filter (ModestHeaderView *header_view)
{
- ModestHeaderViewPrivate *priv;
+ ModestHeaderViewPrivate *priv = NULL;
guint i;
g_return_if_fail (MODEST_IS_HEADER_VIEW (header_view));
void
modest_header_view_refilter (ModestHeaderView *header_view)
{
- GtkTreeModel *model;
+ GtkTreeModel *model = NULL;
+ ModestHeaderViewPrivate *priv = NULL;
g_return_if_fail (MODEST_IS_HEADER_VIEW (header_view));
+ priv = MODEST_HEADER_VIEW_GET_PRIVATE(header_view);
+
+ priv->empty = TRUE;
/* Hide cut headers */
model = gtk_tree_view_get_model (GTK_TREE_VIEW (header_view));