From a33709547e482bfb7c0c0b3bf2fb491a28b61dab Mon Sep 17 00:00:00 2001 From: Christopher James Lahey Date: Tue, 21 May 2002 06:24:29 +0000 Subject: Check for path being NULL. 2002-05-21 Christopher James Lahey * e-tree-sorted.c (ets_proxy_node_request_collapse): Check for path being NULL. * e-tree-table-adapter.c (e_tree_table_adapter_load_expanded_state): Rebuild the tree after loading the state. svn path=/trunk/; revision=16963 --- widgets/table/e-tree-sorted.c | 4 +++- widgets/table/e-tree-table-adapter.c | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) (limited to 'widgets') diff --git a/widgets/table/e-tree-sorted.c b/widgets/table/e-tree-sorted.c index 2244f1ba11..16ee5160eb 100644 --- a/widgets/table/e-tree-sorted.c +++ b/widgets/table/e-tree-sorted.c @@ -1173,7 +1173,9 @@ static void ets_proxy_node_request_collapse (ETreeModel *etm, ETreePath node, ETreeSorted *ets) { ETreeSortedPath *path = find_path(ets, node); - e_tree_model_node_request_collapse(E_TREE_MODEL(ets), path); + if (path) { + e_tree_model_node_request_collapse(E_TREE_MODEL(ets), path); + } } static void diff --git a/widgets/table/e-tree-table-adapter.c b/widgets/table/e-tree-table-adapter.c index d828fbb4a8..c7a6c991c8 100644 --- a/widgets/table/e-tree-table-adapter.c +++ b/widgets/table/e-tree-table-adapter.c @@ -943,6 +943,8 @@ e_tree_table_adapter_load_expanded_state (ETreeTableAdapter *etta, const char *f xmlNode *child; int vers; gboolean model_default, saved_default; + int size; + ETreePath path; g_return_if_fail(etta != NULL); @@ -970,6 +972,8 @@ e_tree_table_adapter_load_expanded_state (ETreeTableAdapter *etta, const char *f return; } + e_table_model_pre_change(E_TABLE_MODEL(etta)); + for (child = root->xmlChildrenNode; child; child = child->next) { char *id; @@ -982,13 +986,22 @@ e_tree_table_adapter_load_expanded_state (ETreeTableAdapter *etta, const char *f if (!strcmp(id, "")) { g_free(id); - return; + continue; } add_expanded_node(etta, id, !model_default); } + xmlFreeDoc (doc); + + path = e_tree_model_get_root (etta->priv->source); + size = array_size_from_path(etta, path); + etta_expand_to(etta, size); + etta->priv->n_map = size; + fill_array_from_path(etta, etta->priv->map_table, path); + + e_table_model_changed (E_TABLE_MODEL (etta)); } void e_tree_table_adapter_root_node_set_visible (ETreeTableAdapter *etta, gboolean visible) -- cgit v1.2.3