From 540bde0aff7cc2b29f90a29e974e09fd400ae7ba Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Fri, 7 Jul 2000 02:26:36 +0000 Subject: Make this work recursively. * e-tree-model.c (e_tree_model_node_remove): Make this work recursively. svn path=/trunk/; revision=3935 --- widgets/e-table/ChangeLog | 5 +++++ widgets/e-table/e-tree-model.c | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'widgets/e-table') diff --git a/widgets/e-table/ChangeLog b/widgets/e-table/ChangeLog index 69cf89d832..dd5432dbdc 100644 --- a/widgets/e-table/ChangeLog +++ b/widgets/e-table/ChangeLog @@ -1,3 +1,8 @@ +2000-07-06 Dan Winship + + * e-tree-model.c (e_tree_model_node_remove): Make this work + recursively. + 2000-07-06 Chris Toshok * e-cell-tree.c (ect_draw): fix the conditions under which we draw diff --git a/widgets/e-table/e-tree-model.c b/widgets/e-table/e-tree-model.c index 250ff4edb7..40e54a1667 100644 --- a/widgets/e-table/e-tree-model.c +++ b/widgets/e-table/e-tree-model.c @@ -634,6 +634,12 @@ e_tree_model_node_insert_before (ETreeModel *etree, node_data); } +static void +child_remove (GNode *node, gpointer etree) +{ + e_tree_model_node_remove (etree, node); +} + gpointer e_tree_model_node_remove (ETreeModel *etree, ETreePath *path) { @@ -641,7 +647,8 @@ e_tree_model_node_remove (ETreeModel *etree, ETreePath *path) ENode *enode = (ENode*)path->data; gpointer ret = enode->node_data; - g_return_val_if_fail (!g_node_first_child(path), NULL); + /* remove children */ + g_node_children_foreach (path, G_TRAVERSE_ALL, child_remove, etree); /* clean up the display */ if (parent) { -- cgit v1.2.3