aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/ChangeLog9
-rw-r--r--shell/e-storage-set-view.c20
-rw-r--r--shell/e-storage-set.c2
3 files changed, 26 insertions, 5 deletions
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 <ettore@helixcode.com>
+
+ * 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 <clahey@helixcode.com>
* 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);
}