Author: peter
Date: 2007-02-16 21:26:20 +0000 (Fri, 16 Feb 2007)
New Revision: 24984
Modified:
squeeze/trunk/libsqueeze/archive-iter.c
squeeze/trunk/libsqueeze/archive.c
squeeze/trunk/libsqueeze/libsqueeze-view.h
Log:
added lsq_archive_iter_get_path
Modified: squeeze/trunk/libsqueeze/archive-iter.c
===================================================================
--- squeeze/trunk/libsqueeze/archive-iter.c 2007-02-16 20:41:46 UTC (rev
24983)
+++ squeeze/trunk/libsqueeze/archive-iter.c 2007-02-16 21:26:20 UTC (rev
24984)
@@ -560,6 +560,54 @@
}
}
+guint
+lsq_archive_iter_get_depth(const LSQArchiveIter *iter)
+{
+#ifdef debug
+ g_return_val_if_fail(iter, 0);
+#endif
+ guint depth = 0;
+ while((iter = iter->parent))
+ depth++;
+ return depth;
+}
+
+gchar*
+lsq_archive_iter_get_path(const LSQArchiveIter *iter)
+{
+#ifdef debug
+ g_return_val_if_fail(iter, NULL);
+#endif
+ const gchar **list;
+ gchar *path;
+ guint depth = lsq_archive_iter_get_depth(iter);
+
+ if(lsq_archive_iter_is_directory(iter))
+ {
+ list = g_new(const gchar*, depth+2);
+ list[depth] = "";
+ list[depth+1] = NULL;
+ }
+ else
+ {
+ list = g_new(const gchar*, depth+1);
+ list[depth] = NULL;
+ }
+
+ while(depth > 0)
+ {
+ depth--;
+ list[depth] = lsq_archive_entry_get_filename(iter->entry);
+ iter = iter->parent;
+ }
+
+ path = g_strjoinv("/", (gchar**)list);
+
+ g_free(list);
+
+ return path;
+}
+
const gchar*
lsq_archive_iter_get_filename(const LSQArchiveIter *iter)
{
Modified: squeeze/trunk/libsqueeze/archive.c
===================================================================
--- squeeze/trunk/libsqueeze/archive.c 2007-02-16 20:41:46 UTC (rev 24983)
+++ squeeze/trunk/libsqueeze/archive.c 2007-02-16 21:26:20 UTC (rev 24984)
@@ -438,7 +438,13 @@
}
const gchar *
-lsq_archive_get_mimetype(LSQArchive *archive)
+lsq_archive_get_filename(const LSQArchive *archive)
{
+ return archive->path;
+}
+
+const gchar *
+lsq_archive_get_mimetype(const LSQArchive *archive)
+{
return thunar_vfs_mime_info_get_name(archive->mime_info);
}
Modified: squeeze/trunk/libsqueeze/libsqueeze-view.h
===================================================================
--- squeeze/trunk/libsqueeze/libsqueeze-view.h 2007-02-16 20:41:46 UTC (rev
24983)
+++ squeeze/trunk/libsqueeze/libsqueeze-view.h 2007-02-16 21:26:20 UTC (rev
24984)
@@ -17,8 +17,8 @@
#define __LIBSQUEEZE_VIEW_H__
G_BEGIN_DECLS
-const gchar * lsq_archive_get_filename(LSQArchive *archive);
-const gchar * lsq_archive_get_mimetype(LSQArchive *archive);
+const gchar *lsq_archive_get_filename(const LSQArchive *archive);
+const gchar *lsq_archive_get_mimetype(const LSQArchive *archive);
gboolean lsq_archive_iter_is_real(const LSQArchiveIter *);
LSQArchiveIter * lsq_archive_iter_get_real_parent(LSQArchiveIter *);
@@ -27,9 +27,11 @@
guint lsq_archive_iter_n_children(const LSQArchiveIter *);
LSQArchiveIter *lsq_archive_iter_nth_child(LSQArchiveIter *, guint);
LSQArchiveIter *lsq_archive_iter_get_child(LSQArchiveIter *, const gchar
*);
+guint lsq_archive_iter_get_depth(const LSQArchiveIter *);
gboolean lsq_archive_iter_get_prop_value(const LSQArchiveIter
*iter, guint n, GValue *value);
const gchar *lsq_archive_iter_get_filename(const LSQArchiveIter *);
+gchar *lsq_archive_iter_get_path(const LSQArchiveIter *archive);
LSQArchiveIter *lsq_archive_get_iter(LSQArchive *archive, const gchar
*path);
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits