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

Reply via email to