tny_folder_store_remove_folder (parent, folder, &(priv->error));
CHECK_EXCEPTION (priv, MODEST_MAIL_OPERATION_STATUS_FAILED);
+ if (!priv->error)
+ priv->status = MODEST_MAIL_OPERATION_STATUS_SUCCESS;
+
if (parent)
g_object_unref (G_OBJECT (parent));
}
new_name)) {
priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;
g_set_error (&(priv->error), MODEST_MAIL_OPERATION_ERROR,
- MODEST_MAIL_OPERATION_ERROR_FOLDER_RULES,
- _("FIXME: folder name already in use"));
+ MODEST_MAIL_OPERATION_ERROR_FOLDER_EXISTS,
+ _("ckdg_ib_folder_already_exists"));
return FALSE;
} else
return TRUE;
{
gboolean retval = FALSE;
- if (query && (tny_list_get_length (tny_folder_store_query_get_items (query)) > 0))
- {
+ if (query && (tny_list_get_length (tny_folder_store_query_get_items (query)) > 0)) {
TnyList *items = tny_folder_store_query_get_items (query);
TnyIterator *iterator;
iterator = tny_list_create_iterator (items);
tny_iterator_next (iterator);
}
- g_object_unref (G_OBJECT (iterator));
+ g_object_unref (G_OBJECT (iterator));
g_object_unref (G_OBJECT (items));
} else
retval = TRUE;
gboolean retval;
/* Check that we're not trying to create/rename any folder
- with the same name that our OUTBOX */
+ with the same name that our OUTBOX, DRAFT, SENT */
priv = TNY_LOCAL_FOLDERS_ACCOUNT_GET_PRIVATE (self);
down_name = g_utf8_strdown (name, strlen (name));
type_name = modest_local_folder_info_get_type_name (TNY_FOLDER_TYPE_OUTBOX);
- if (!strcmp (type_name, down_name))
+ if (!strcmp (type_name, down_name)) {
retval = TRUE;
- else
- retval = FALSE;
-
+ } else {
+ type_name = modest_local_folder_info_get_type_name (TNY_FOLDER_TYPE_DRAFTS);
+ if (!strcmp (type_name, down_name)) {
+ retval = TRUE;
+ } else {
+ type_name = modest_local_folder_info_get_type_name (TNY_FOLDER_TYPE_SENT);
+ if (!strcmp (type_name, down_name)) {
+ retval = TRUE;
+ } else {
+ retval = FALSE;
+ }
+ }
+ }
g_free (down_name);
return retval;
/* Get error message */
error = modest_mail_operation_get_error (mail_op);
- if (error != NULL && error->message != NULL) {
- message = error->message;
- } else {
- message = _("!!! FIXME: Unable to rename");
+ if (!error)
+ g_return_if_reached ();
+
+ switch (error->code) {
+ case MODEST_MAIL_OPERATION_ERROR_FOLDER_EXISTS:
+ message = _CS("ckdg_ib_folder_already_exists");
+ break;
+ default:
+ g_return_if_reached ();
}
-
- modest_platform_information_banner (GTK_WIDGET (window), NULL,
- message);
+
+ modest_platform_information_banner (GTK_WIDGET (window), NULL, message);
}
void
if (response == GTK_RESPONSE_ACCEPT && strlen (folder_name) > 0) {
ModestMailOperation *mail_op;
+ GtkTreeSelection *sel = NULL;
mail_op =
modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_INFO,
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
mail_op);
- modest_header_view_clear (MODEST_HEADER_VIEW (header_view));
-
+ /* Clear the headers view */
+ sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_view));
+ gtk_tree_selection_unselect_all (sel);
+
+ /* Select *after* the changes */
modest_folder_view_select_folder (MODEST_FOLDER_VIEW(folder_view),
TNY_FOLDER(folder), TRUE);
- modest_header_view_clear ((ModestHeaderView *) header_view);
-
modest_mail_operation_rename_folder (mail_op,
TNY_FOLDER (folder),
(const gchar *) folder_name);
g_free (message);
if (response == GTK_RESPONSE_OK) {
- ModestMailOperation *mail_op =
+ ModestMailOperation *mail_op;
+ GtkTreeSelection *sel;
+
+ /* Unselect the folder before deleting it to free the headers */
+ sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_view));
+ gtk_tree_selection_unselect_all (sel);
+
+ /* Create the mail operation */
+ mail_op =
modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_DELETE,
G_OBJECT(main_window),
modest_ui_actions_delete_folder_error_handler,
goto end;
/* Clean folder on header view before moving it */
-/* modest_header_view_clear (MODEST_HEADER_VIEW (header_view)); */
sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_view));
gtk_tree_selection_unselect_all (sel);