diff options
Diffstat (limited to 'shell/e-storage-set-view.c')
-rw-r--r-- | shell/e-storage-set-view.c | 20 |
1 files changed, 15 insertions, 5 deletions
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 |