From 17f6f9980adefe5642c165fef6b1e9b15dd7cf7d Mon Sep 17 00:00:00 2001 From: Christopher James Lahey Date: Tue, 14 May 2002 03:47:16 +0000 Subject: Changed this to just walk the hash table to get the list of checked 2002-05-13 Christopher James Lahey * e-storage-set-view.c (e_storage_set_view_get_checkboxes_list): Changed this to just walk the hash table to get the list of checked checkboxes instead of walking the tree. (Makes it so that checked paths will remain checked, even if they're not shown in the tree when the list is gotten.) svn path=/trunk/; revision=16778 --- shell/ChangeLog | 8 ++++++++ shell/e-storage-set-view.c | 30 ++++++++++-------------------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/shell/ChangeLog b/shell/ChangeLog index 0d8ee5a331..6240195fa2 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,3 +1,11 @@ +2002-05-13 Christopher James Lahey + + * e-storage-set-view.c (e_storage_set_view_get_checkboxes_list): + Changed this to just walk the hash table to get the list of + checked checkboxes instead of walking the tree. (Makes it so that + checked paths will remain checked, even if they're not shown in + the tree when the list is gotten.) + 2002-05-13 Ettore Perazzoli * e-shell-config.c: Handle the e-shell-config-offline and diff --git a/shell/e-storage-set-view.c b/shell/e-storage-set-view.c index 5d4a7616e6..6d3557ad36 100644 --- a/shell/e-storage-set-view.c +++ b/shell/e-storage-set-view.c @@ -2042,35 +2042,25 @@ e_storage_set_view_set_checkboxes_list (EStorageSetView *storage_set_view, } static void -essv_add_to_list (ETreePath tree_path, void **temp) +essv_add_to_list (gpointer key, + gpointer value, + gpointer user_data) { - EStorageSetView *storage_set_view; - EStorageSetViewPrivate *priv; - GList **list; + GList **list = user_data; - storage_set_view = temp[0]; - list = temp[1]; - priv = storage_set_view->priv; - - if (priv->checkboxes) { - const char *path; - - path = (const char *) e_tree_memory_node_get_data (E_TREE_MEMORY (priv->etree_model), tree_path); - if (path != NULL && g_hash_table_lookup (priv->checkboxes, path)) - *list = g_list_prepend (*list, g_strdup (path)); - } + *list = g_list_prepend (*list, g_strdup (key)); } GList * e_storage_set_view_get_checkboxes_list (EStorageSetView *storage_set_view) { - void *temp[2]; GList *list = NULL; - temp[0] = storage_set_view; - temp[1] = &list; - e_tree_path_foreach (E_TREE (storage_set_view), (ETreeForeachFunc) essv_add_to_list, temp); - list = g_list_reverse (list); + if (storage_set_view->priv->checkboxes) { + g_hash_table_foreach (storage_set_view->priv->checkboxes, essv_add_to_list, &list); + + list = g_list_reverse (list); + } return list; } -- cgit