gtk_sctree_sort_recursive(ctree, root);
- if (GTK_CTREE_ROW(root)->parent) return;
+ if (root && GTK_CTREE_ROW(root)->parent) return;
SET_SPECIAL_FOLDER(ctree, folder->inbox);
SET_SPECIAL_FOLDER(ctree, folder->outbox);
GtkCTreeNode *node, *parent_node;
parent_node = gtk_ctree_find_by_row_data(ctree, NULL, item->parent);
+ if (parent_node == NULL)
+ return;
gtk_clist_freeze(GTK_CLIST(ctree));
}
g_free(new_folder);
- folderview_create_folder_node(folderview, new_item);
-
folder_write_list();
}
g_free(new_folder);
if (!new_item) return;
- folderview_create_folder_node(folderview, new_item);
-
folder_write_list();
}
Xstrdup_a(old_path, item->path, return);
old_id = folder_item_get_identifier(item);
+ if (folderview->opened == folderview->selected ||
+ gtk_ctree_is_ancestor(ctree,
+ folderview->selected,
+ folderview->opened)) {
+ summary_clear_all(folderview->summaryview);
+ folderview->opened = NULL;
+ }
+
if (item->folder->klass->remove_folder(item->folder, item) < 0) {
alertpanel_error(_("Can't remove the folder `%s'."), name);
if (folderview->opened == folderview->selected)
return;
}
- /* if (FOLDER_TYPE(item->folder) == F_MH)
- prefs_filtering_delete_path(old_path); */
-
- if (folderview->opened == folderview->selected ||
- gtk_ctree_is_ancestor(ctree,
- folderview->selected,
- folderview->opened)) {
- summary_clear_all(folderview->summaryview);
- folderview->opened = NULL;
- }
-
- gtk_ctree_remove_node(ctree, folderview->selected);
folder_write_list();
prefs_filtering_delete_path(old_id);
g_free(message);
if (avalue != G_ALERTDEFAULT) return;
- folder_destroy(item->folder);
- summary_clear_all(folderview->summaryview);
folderview_unselect(folderview);
+ summary_clear_all(folderview->summaryview);
gtk_ctree_remove_node(ctree, node);
+
+ folder_destroy(item->folder);
folder_write_list();
}
}
g_free(new_folder);
- folderview_create_folder_node(folderview, new_item);
-
folder_write_list();
}
}
folder_item_remove(item);
- gtk_ctree_remove_node(ctree, folderview->selected);
folder_write_list();
prefs_filtering_delete_path(name);
if (item->parent == NULL && item->folder->account)
account_open(item->folder->account);
else {
- summary_save_prefs_to_folderitem(folderview->summaryview, item);
prefs_folder_item_open(item);
}
}
main_window_cursor_normal(folderview->mainwin);
STATUSBAR_POP(folderview->mainwin);
folder_item_update_thaw();
- if (src_node)
- gtk_ctree_remove_node(GTK_CTREE(folderview->ctree), src_node);
- else
- debug_print("can't remove src node: is null\n");
-
- folderview_create_folder_node_recursive(folderview, new_folder);
-
folder_item_update_recursive(new_folder, F_ITEM_UPDATE_MSGCNT);
folderview_sort_folders(folderview,
ctree = folderview->ctree;
g_return_val_if_fail(ctree != NULL, FALSE);
- if (hookdata->update_flags & FOLDER_TREE_CHANGED) {
+ if (hookdata->update_flags & FOLDER_NEW_FOLDERITEM)
+ folderview_create_folder_node(folderview, hookdata->item);
+ else if (hookdata->update_flags & FOLDER_REMOVE_FOLDERITEM) {
+ GtkCTreeNode *node;
+
+ node = gtk_ctree_find_by_row_data(GTK_CTREE(ctree), NULL, hookdata->item);
+ if (node != NULL)
+ gtk_ctree_remove_node(GTK_CTREE(ctree), node);
+ } else if (hookdata->update_flags & FOLDER_TREE_CHANGED)
folderview_set(folderview);
- }
return FALSE;
}
g_slist_free(folderview->nodes_to_recollapse);
folderview->nodes_to_recollapse = NULL;
}
-