From 3d7fc19a83c4c3835e2c5c6821b45f4a27dcae73 Mon Sep 17 00:00:00 2001 From: Ettore Perazzoli Date: Sat, 9 Sep 2000 21:43:46 +0000 Subject: Use the name of the storage or the folder in the storage set view, instead of just the last segment of the path, so that we can support display names correctly. svn path=/trunk/; revision=5296 --- shell/ChangeLog | 9 +++++++++ shell/e-storage-set-view.c | 20 +++++++++++++++----- shell/e-storage-set.c | 2 ++ 3 files changed, 26 insertions(+), 5 deletions(-) (limited to 'shell') diff --git a/shell/ChangeLog b/shell/ChangeLog index 73fa911dea..634c6ea9dd 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,3 +1,12 @@ +2000-09-09 Ettore Perazzoli + + * e-storage-set-view.c (etree_value_at): Return the name of the + folder or the storage instead of just returning the last segment + of the path. + + * e-storage-set.c (e_storage_set_get_folder): If the storage is + not found, just return NULL to avoid a g_warning. + 2000-09-09 Christopher James Lahey * e-shell-view.c: Fixed some warnings. diff --git a/shell/e-storage-set-view.c b/shell/e-storage-set-view.c index b90f556286..670df6f920 100644 --- a/shell/e-storage-set-view.c +++ b/shell/e-storage-set-view.c @@ -489,16 +489,26 @@ etree_icon_at (ETreeModel *etree, ETreePath *tree_path, void *model_data) static void* etree_value_at (ETreeModel *etree, ETreePath *tree_path, int col, void *model_data) { + EStorageSetView *storage_set_view; + EStorageSet *storage_set; + EStorage *storage; + EFolder *folder; char *path; - char *last_separator; - path = (char*)e_tree_model_node_get_data (etree, tree_path); + storage_set_view = E_STORAGE_SET_VIEW (model_data); + storage_set = storage_set_view->priv->storage_set; - last_separator = strrchr (path, G_DIR_SEPARATOR); + path = (char *) e_tree_model_node_get_data (etree, tree_path); + + folder = e_storage_set_get_folder (storage_set, path); + if (folder != NULL) + return (void *) e_folder_get_name (folder); - g_return_val_if_fail (last_separator != NULL, NULL); + storage = e_storage_set_get_storage (storage_set, path + 1); + if (storage != NULL) + return (void *) e_storage_get_name (storage); - return last_separator + 1; + return NULL; } static void diff --git a/shell/e-storage-set.c b/shell/e-storage-set.c index 7b18d93c1c..405c3e2c61 100644 --- a/shell/e-storage-set.c +++ b/shell/e-storage-set.c @@ -452,6 +452,8 @@ e_storage_set_get_folder (EStorageSet *storage_set, g_return_val_if_fail (g_path_is_absolute (path), NULL); storage = get_storage_for_path (storage_set, path, &subpath); + if (storage == NULL) + return NULL; return e_storage_get_folder (storage, subpath); } -- cgit v1.2.3