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 Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits