static void _clear_hidding_filter (ModestFolderView *folder_view);
-static void on_row_changed_maybe_select_folder (GtkTreeModel *tree_model, GtkTreePath *path, GtkTreeIter *iter,
+static void on_row_changed_maybe_select_folder (GtkTreeModel *tree_model,
+ GtkTreePath *path,
+ GtkTreeIter *iter,
ModestFolderView *self);
enum {
be a bug, because the INBOX is not selected, but we
need to rewrite some parts of Modest to avoid the
deathlock situation */
-/* modest_folder_view_select_first_inbox_or_local (self); */
+ /* TODO: check if this is still the case */
priv->reselect = FALSE;
+ modest_folder_view_select_first_inbox_or_local (self);
}
return FALSE;
}
guint i;
gboolean found = FALSE;
gboolean cleared = FALSE;
-
+
g_return_val_if_fail (MODEST_IS_FOLDER_VIEW (data), FALSE);
priv = MODEST_FOLDER_VIEW_GET_PRIVATE (data);
retval = FALSE;
}
}
-
- /* The virtual local-folders folder store is also shown by default. */
/* Check hiding (if necessary) */
cleared = modest_email_clipboard_cleared (priv->clipboard);
retval = !found;
}
+
+ /* If this is a move to dialog, hide Sent, Outbox and Drafts
+ folder as no message can be move there according to UI specs */
if (!priv->show_non_move)
{
switch (type)
{
case TNY_FOLDER_TYPE_OUTBOX:
case TNY_FOLDER_TYPE_SENT:
+ case TNY_FOLDER_TYPE_DRAFTS:
retval = FALSE;
break;
case TNY_FOLDER_TYPE_UNKNOWN:
case TNY_FOLDER_TYPE_NORMAL:
type = modest_tny_folder_guess_folder_type(TNY_FOLDER(instance));
- if (type == TNY_FOLDER_TYPE_OUTBOX || type == TNY_FOLDER_TYPE_SENT)
+ if (type == TNY_FOLDER_TYPE_OUTBOX || type == TNY_FOLDER_TYPE_SENT
+ || type == TNY_FOLDER_TYPE_DRAFTS)
{
retval = FALSE;
}
GTK_SORT_ASCENDING);
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (sortable),
TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN,
- cmp_rows, NULL, NULL);
+ cmp_rows, NULL, NULL);
/* Create filter model */
filter_model = gtk_tree_model_filter_new (sortable, NULL);
filter_row,
self,
NULL);
-/* if (priv->style == MODEST_FOLDER_VIEW_STYLE_SHOW_ONE) { */
-/* filter_model = gtk_tree_model_filter_new (sortable, NULL); */
-/* gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (filter_model), */
-/* filter_row, */
-/* self, */
-/* NULL); */
-/* } */
/* Set new model */
gtk_tree_view_set_model (GTK_TREE_VIEW(self), filter_model);
g_signal_connect (G_OBJECT(filter_model), "row-inserted",
(GCallback)on_row_changed_maybe_select_folder, self);
-
-
-/* gtk_tree_view_set_model (GTK_TREE_VIEW(self), */
-/* (filter_model) ? filter_model : sortable); */
g_object_unref (model);
- g_object_unref (filter_model);
-/* if (filter_model) */
-/* g_object_unref (filter_model); */
-
+ g_object_unref (filter_model);
g_object_unref (sortable);
/* Force a reselection of the INBOX next time the widget is shown */
/* Current folder was unselected */
if (priv->cur_folder_store) {
+ g_signal_emit (G_OBJECT(tree_view), signals[FOLDER_SELECTION_CHANGED_SIGNAL], 0,
+ priv->cur_folder_store, FALSE);
+
if (TNY_IS_FOLDER(priv->cur_folder_store))
- tny_folder_sync_async (TNY_FOLDER(priv->cur_folder_store),
+ tny_folder_sync_async (TNY_FOLDER(priv->cur_folder_store),
FALSE, NULL, NULL, NULL);
/* FALSE --> don't expunge the messages */
- g_signal_emit (G_OBJECT(tree_view), signals[FOLDER_SELECTION_CHANGED_SIGNAL], 0,
- priv->cur_folder_store, FALSE);
g_object_unref (priv->cur_folder_store);
priv->cur_folder_store = NULL;
}
helper->delete_source,
NULL,
NULL);
+
+ g_object_unref (G_OBJECT (mail_op));
}
/* Frees */
g_object_unref (G_OBJECT (parent_folder));
g_object_unref (G_OBJECT (folder));
- g_object_unref (G_OBJECT (mail_op));
}
/*
if (!MODEST_IS_FOLDER_VIEW(self))
return;
- g_return_if_fail (MODEST_IS_FOLDER_VIEW (self));
priv = MODEST_FOLDER_VIEW_GET_PRIVATE (self);
-
if (priv->folder_to_select) {
if (!modest_folder_view_select_folder (self, priv->folder_to_select,
gtk_tree_path_free (path);
- }
+ }
g_object_unref (priv->folder_to_select);
priv->folder_to_select = NULL;
- }
+ }
}