[Xfce4-commits] r23372 - xarchiver/branches/xarchiver-psybsd/libxarchiver
Stephan Arts
stephan at xfce.org
Thu Oct 12 14:16:35 UTC 2006
Author: stephan
Date: 2006-10-12 14:16:34 +0000 (Thu, 12 Oct 2006)
New Revision: 23372
Modified:
xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c
xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-zip.c
xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c
xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.h
xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.c
xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.h
xarchiver/branches/xarchiver-psybsd/libxarchiver/support-7zip.c
xarchiver/branches/xarchiver-psybsd/libxarchiver/support-arj.c
xarchiver/branches/xarchiver-psybsd/libxarchiver/support-rar.c
Log:
Fixed properties (broken GUI)
Added mime-to-icon-name method
Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c 2006-10-12 13:36:00 UTC (rev 23371)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c 2006-10-12 14:16:34 UTC (rev 23372)
@@ -394,7 +394,7 @@
lxa_archive_support_gnu_tar_refresh(LXAArchive *archive)
{
gchar *command = NULL;
- guint i = 1;
+ guint i = 0;
if(!LXA_IS_ARCHIVE_SUPPORT_GNU_TAR(archive->support))
{
g_critical("Support is not GNU TAR");
@@ -407,52 +407,50 @@
}
else
{
- archive->column_number = 1;
+ archive->n_property = 0;
archive->entry_props_size = 0;
if(LXA_ARCHIVE_SUPPORT_GNU_TAR(archive->support)->_view_rights)
- archive->column_number++;
+ archive->n_property++;
if(LXA_ARCHIVE_SUPPORT_GNU_TAR(archive->support)->_view_owner)
- archive->column_number++;
+ archive->n_property++;
if(LXA_ARCHIVE_SUPPORT_GNU_TAR(archive->support)->_view_date)
- archive->column_number++;
+ archive->n_property++;
if(LXA_ARCHIVE_SUPPORT_GNU_TAR(archive->support)->_view_time)
- archive->column_number++;
+ archive->n_property++;
if(LXA_ARCHIVE_SUPPORT_GNU_TAR(archive->support)->_view_size)
- archive->column_number++;
+ archive->n_property++;
- archive->column_types = g_new0(GType, archive->column_number);
- archive->column_names = g_new0(gchar *, archive->column_number);
+ archive->property_types = g_new0(GType, archive->n_property);
+ archive->property_names = g_new0(gchar *, archive->n_property);
- archive->column_types[0] = G_TYPE_STRING;
- archive->column_names[0] = g_strdup(_("Filename"));
if(LXA_ARCHIVE_SUPPORT_GNU_TAR(archive->support)->_view_rights) {
- archive->column_types[i] = G_TYPE_STRING;
- archive->column_names[i] = g_strdup(_("Permissions"));
+ archive->property_types[i] = G_TYPE_STRING;
+ archive->property_names[i] = g_strdup(_("Permissions"));
i++;
archive->entry_props_size += sizeof(gchar *);
}
if(LXA_ARCHIVE_SUPPORT_GNU_TAR(archive->support)->_view_owner) {
- archive->column_types[i] = G_TYPE_STRING;
- archive->column_names[i] = g_strdup(_("Owner/Group"));
+ archive->property_types[i] = G_TYPE_STRING;
+ archive->property_names[i] = g_strdup(_("Owner/Group"));
i++;
archive->entry_props_size += sizeof(gchar *);
}
if(LXA_ARCHIVE_SUPPORT_GNU_TAR(archive->support)->_view_size) {
- archive->column_types[i] = G_TYPE_UINT64;
- archive->column_names[i] = g_strdup(_("Size"));
+ archive->property_types[i] = G_TYPE_UINT64;
+ archive->property_names[i] = g_strdup(_("Size"));
i++;
archive->entry_props_size += sizeof(guint64);
}
if(LXA_ARCHIVE_SUPPORT_GNU_TAR(archive->support)->_view_date) {
- archive->column_types[i] = G_TYPE_STRING;
- archive->column_names[i] = g_strdup(_("Date"));
+ archive->property_types[i] = G_TYPE_STRING;
+ archive->property_names[i] = g_strdup(_("Date"));
i++;
archive->entry_props_size += sizeof(gchar *);
}
if(LXA_ARCHIVE_SUPPORT_GNU_TAR(archive->support)->_view_time) {
- archive->column_types[i] = G_TYPE_STRING;
- archive->column_names[i] = g_strdup(_("Time"));
+ archive->property_types[i] = G_TYPE_STRING;
+ archive->property_names[i] = g_strdup(_("Time"));
i++;
archive->entry_props_size += sizeof(gchar *);
}
Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-zip.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-zip.c 2006-10-12 13:36:00 UTC (rev 23371)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-zip.c 2006-10-12 14:16:34 UTC (rev 23372)
@@ -281,7 +281,7 @@
gint
lxa_archive_support_zip_refresh(LXAArchive *archive)
{
- guint i = 1;
+ guint i = 0;
if(!LXA_IS_ARCHIVE_SUPPORT_ZIP(archive->support))
{
g_critical("Support is not Zip");
@@ -294,69 +294,66 @@
}
else
{
- archive->column_number = 1;
+ archive->n_property = 0;
archive->entry_props_size = 0;
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_size)
- archive->column_number++;
+ archive->n_property++;
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_length)
- archive->column_number++;
+ archive->n_property++;
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_ratio)
- archive->column_number++;
+ archive->n_property++;
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_method)
- archive->column_number++;
+ archive->n_property++;
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_crc_32)
- archive->column_number++;
+ archive->n_property++;
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_date)
- archive->column_number++;
+ archive->n_property++;
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_time)
- archive->column_number++;
+ archive->n_property++;
- archive->column_types = g_new0(GType, archive->column_number);
- archive->column_names = g_new0(gchar *, archive->column_number);
+ archive->property_types = g_new0(GType, archive->n_property);
+ archive->property_names = g_new0(gchar *, archive->n_property);
- archive->column_types[0] = G_TYPE_STRING;
- archive->column_names[0] = g_strdup(_("Filename"));
-
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_length) {
- archive->column_types[i] = G_TYPE_UINT64;
- archive->column_names[i] = g_strdup(_("Length"));
+ archive->property_types[i] = G_TYPE_UINT64;
+ archive->property_names[i] = g_strdup(_("Length"));
i++;
archive->entry_props_size += sizeof(guint64);
}
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_method) {
- archive->column_types[i] = G_TYPE_STRING;
- archive->column_names[i] = g_strdup(_("Compression method"));
+ archive->property_types[i] = G_TYPE_STRING;
+ archive->property_names[i] = g_strdup(_("Compression method"));
i++;
archive->entry_props_size += sizeof(gchar *);
}
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_size) {
- archive->column_types[i] = G_TYPE_UINT64;
- archive->column_names[i] = g_strdup(_("Size"));
+ archive->property_types[i] = G_TYPE_UINT64;
+ archive->property_names[i] = g_strdup(_("Size"));
i++;
archive->entry_props_size += sizeof(guint64);
}
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_ratio) {
- archive->column_types[i] = G_TYPE_STRING;
- archive->column_names[i] = g_strdup("Ratio");
+ archive->property_types[i] = G_TYPE_STRING;
+ archive->property_names[i] = g_strdup("Ratio");
i++;
archive->entry_props_size += sizeof(gchar *);
}
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_date) {
- archive->column_types[i] = G_TYPE_STRING;
- archive->column_names[i] = g_strdup(_("Date"));
+ archive->property_types[i] = G_TYPE_STRING;
+ archive->property_names[i] = g_strdup(_("Date"));
i++;
archive->entry_props_size += sizeof(gchar *);
}
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_time) {
- archive->column_types[i] = G_TYPE_STRING;
- archive->column_names[i] = g_strdup(_("Time"));
+ archive->property_types[i] = G_TYPE_STRING;
+ archive->property_names[i] = g_strdup(_("Time"));
i++;
archive->entry_props_size += sizeof(gchar *);
}
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_crc_32) {
- archive->column_types[i] = G_TYPE_STRING;
- archive->column_names[i] = g_strdup("CRC-32");
+ archive->property_types[i] = G_TYPE_STRING;
+ archive->property_names[i] = g_strdup("CRC-32");
i++;
archive->entry_props_size += sizeof(gchar *);
}
Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c 2006-10-12 13:36:00 UTC (rev 23371)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.c 2006-10-12 14:16:34 UTC (rev 23372)
@@ -49,8 +49,6 @@
void
lxa_archive_free_entry(LXAArchive *archive, LXAEntry *entry);
-void
-lxa_archive_free_entry_no_free(LXAArchive *archive, LXAEntry *entry);
void
lxa_archive_entry_flush_buffer(LXAArchive *, LXAEntry *entry);
@@ -112,8 +110,9 @@
static void
lxa_archive_init(LXAArchive *archive)
{
- archive->root_entry.filename = g_strdup("/");
- archive->root_entry.children = NULL;
+ archive->root_entry = g_new0(LXAEntry, 1);
+ archive->root_entry->filename = g_strdup("/");
+ archive->root_entry->children = NULL;
}
static void
@@ -206,7 +205,7 @@
gchar **path_items;
LXAEntry *tmp_entry = NULL, *parent = NULL;
path_items = g_strsplit_set(path, "/\n", -1);
- parent = &archive->root_entry;
+ parent = archive->root_entry;
for(i = 0; path_items[i]?strlen(path_items[i]):0;i++)
{
tmp_entry = lxa_entry_get_child(parent, path_items[i]);
@@ -231,13 +230,6 @@
void
lxa_archive_free_entry(LXAArchive *archive, LXAEntry *entry)
{
- lxa_archive_free_entry_no_free(archive, entry);
- g_free(entry);
-}
-
-void
-lxa_archive_free_entry_no_free(LXAArchive *archive, LXAEntry *entry)
-{
gint i = 0;
gpointer props_iter = entry->props;
LXASList *buffer_iter = entry->buffer;
@@ -260,9 +252,9 @@
if(entry->props)
{
- for(i=1; i<archive->column_number; i++)
+ for(i=1; i<archive->n_property; i++)
{
- switch(archive->column_types[i])
+ switch(archive->property_types[i])
{
case(G_TYPE_STRING):
g_free(*(gchar **)props_iter);
@@ -279,6 +271,7 @@
g_free(entry->props);
}
g_free(entry->filename);
+ g_free(entry);
}
gint
Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.h 2006-10-12 13:36:00 UTC (rev 23371)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive.h 2006-10-12 14:16:34 UTC (rev 23372)
@@ -72,6 +72,10 @@
GObject parent;
gchar *path;
gchar *mime;
+ guint n_property;
+ GType *property_types;
+ gchar **property_names;
+ LXAEntry *root_entry;
LXAArchiveStatus status;
LXAArchiveStatus old_status;
GPid child_pid;
@@ -82,10 +86,6 @@
gchar *tmp_file;
gchar *files;
gboolean has_passwd;
- guint column_number;
- GType *column_types;
- gchar **column_names;
- LXAEntry root_entry;
gushort entry_props_size;
};
Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.c 2006-10-12 13:36:00 UTC (rev 23371)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.c 2006-10-12 14:16:34 UTC (rev 23372)
@@ -38,6 +38,7 @@
#include "internals.h"
+struct GtkIconTheme;
void
lxa_init()
@@ -114,3 +115,16 @@
{
g_object_unref(archive);
}
+
+void
+lxa_convert_mime_to_icon_name(GtkIconTheme *icon_theme, GValue *value)
+{
+ const gchar *mime_type = g_value_get_string(value);
+#ifdef HAVE_THUNAR_VFS
+ ThunarVfsMimeInfo *mime_info = thunar_vfs_mime_database_get_info(lxa_mime_database, mime_type);
+ g_value_set_string(value, thunar_vfs_mime_info_lookup_icon_name(mime_info, icon_theme));
+#else
+ g_value_unset(value);
+#endif
+ g_free((gchar *)mime_type);
+}
Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.h 2006-10-12 13:36:00 UTC (rev 23371)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.h 2006-10-12 14:16:34 UTC (rev 23372)
@@ -76,6 +76,9 @@
gint
lxa_stop_archive_child( LXAArchive *archive );
+void
+lxa_convert_mime_to_icon_name(GtkIconTheme *icon_theme, GValue *value);
+
G_END_DECLS
#endif /* __LIBXARCHIVER_H__ */
Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/support-7zip.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/support-7zip.c 2006-10-12 13:36:00 UTC (rev 23371)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/support-7zip.c 2006-10-12 14:16:34 UTC (rev 23372)
@@ -85,23 +85,23 @@
{
XASupport *xa_support = XA_SUPPORT(support);
gint n_columns = 6;
- gchar **column_names = g_new0(gchar *, n_columns);
- GType *column_types = g_new0(GType, n_columns);
+ gchar **property_names = g_new0(gchar *, n_columns);
+ GType *property_types = g_new0(GType, n_columns);
- column_names[0] = "Filename";
- column_names[1] = "Compressed";
- column_names[2] = "Original";
- column_names[3] = "Attr";
- column_names[4] = "Time";
- column_names[5] = "Date";
- column_types[0] = G_TYPE_STRING;
- column_types[1] = G_TYPE_UINT64;
- column_types[2] = G_TYPE_UINT64;
- column_types[3] = G_TYPE_STRING;
- column_types[4] = G_TYPE_STRING;
- column_types[5] = G_TYPE_STRING;
+ property_names[0] = "Filename";
+ property_names[1] = "Compressed";
+ property_names[2] = "Original";
+ property_names[3] = "Attr";
+ property_names[4] = "Time";
+ property_names[5] = "Date";
+ property_types[0] = G_TYPE_STRING;
+ property_types[1] = G_TYPE_UINT64;
+ property_types[2] = G_TYPE_UINT64;
+ property_types[3] = G_TYPE_STRING;
+ property_types[4] = G_TYPE_STRING;
+ property_types[5] = G_TYPE_STRING;
- xa_support_set_columns(xa_support, n_columns, column_names, column_types);
+ xa_support_set_columns(xa_support, n_columns, property_names, property_types);
xa_support->type = XARCHIVETYPE_7ZIP;
xa_support->verify = xa_archive_type_7zip_verify;
xa_support->add = xa_support_7zip_add;
@@ -111,8 +111,8 @@
xa_support->open = xa_support_7zip_open;
xa_support->parse_output = xa_support_7zip_parse_output;
- g_free (column_names);
- g_free(column_types);
+ g_free (property_names);
+ g_free(property_types);
}
gint xa_support_7zip_parse_output (GIOChannel *ioc, GIOCondition cond, gpointer data)
Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/support-arj.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/support-arj.c 2006-10-12 13:36:00 UTC (rev 23371)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/support-arj.c 2006-10-12 14:16:34 UTC (rev 23372)
@@ -85,29 +85,29 @@
{
XASupport *xa_support = XA_SUPPORT(support);
gint n_columns = 9;
- gchar **column_names = g_new0(gchar *, n_columns);
- GType *column_types = g_new0(GType, n_columns);
+ gchar **property_names = g_new0(gchar *, n_columns);
+ GType *property_types = g_new0(GType, n_columns);
- column_names[0] = "Filename";
- column_names[1] = "Original";
- column_names[2] = "Compressed";
- column_names[3] = "Ratio";
- column_names[4] = "Date";
- column_names[5] = "Time";
- column_names[6] = "Attr";
- column_names[7] = "GUA";
- column_names[8] = "BPMGS";
- column_types[0] = G_TYPE_STRING;
- column_types[1] = G_TYPE_UINT64;
- column_types[2] = G_TYPE_UINT64;
- column_types[3] = G_TYPE_STRING;
- column_types[4] = G_TYPE_STRING;
- column_types[5] = G_TYPE_STRING;
- column_types[6] = G_TYPE_STRING;
- column_types[7] = G_TYPE_STRING;
- column_types[8] = G_TYPE_STRING;
+ property_names[0] = "Filename";
+ property_names[1] = "Original";
+ property_names[2] = "Compressed";
+ property_names[3] = "Ratio";
+ property_names[4] = "Date";
+ property_names[5] = "Time";
+ property_names[6] = "Attr";
+ property_names[7] = "GUA";
+ property_names[8] = "BPMGS";
+ property_types[0] = G_TYPE_STRING;
+ property_types[1] = G_TYPE_UINT64;
+ property_types[2] = G_TYPE_UINT64;
+ property_types[3] = G_TYPE_STRING;
+ property_types[4] = G_TYPE_STRING;
+ property_types[5] = G_TYPE_STRING;
+ property_types[6] = G_TYPE_STRING;
+ property_types[7] = G_TYPE_STRING;
+ property_types[8] = G_TYPE_STRING;
- xa_support_set_columns(xa_support, n_columns, column_names, column_types);
+ xa_support_set_columns(xa_support, n_columns, property_names, property_types);
xa_support->type = XARCHIVETYPE_ARJ;
xa_support->verify = xa_archive_type_arj_verify;
xa_support->open = xa_support_arj_open;
@@ -117,8 +117,8 @@
xa_support->testing = xa_support_arj_testing;
xa_support->parse_output = xa_support_arj_parse_output;
- g_free (column_names);
- g_free(column_types);
+ g_free (property_names);
+ g_free(property_types);
}
gint xa_support_arj_parse_output (GIOChannel *ioc, GIOCondition cond, gpointer data)
Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/support-rar.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/support-rar.c 2006-10-12 13:36:00 UTC (rev 23371)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/support-rar.c 2006-10-12 14:16:34 UTC (rev 23372)
@@ -85,31 +85,31 @@
{
XASupport *xa_support = XA_SUPPORT(support);
gint n_columns = 10;
- gchar **column_names = g_new0(gchar *, n_columns);
- GType *column_types = g_new0(GType, n_columns);
+ gchar **property_names = g_new0(gchar *, n_columns);
+ GType *property_types = g_new0(GType, n_columns);
- column_names[0] = _("Filename");
- column_names[1] = _("Original");
- column_names[2] = _("Compressed");
- column_names[3] = _("Ratio");
- column_names[4] = _("Date");
- column_names[5] = _("Time");
- column_names[6] = _("Permissions");
- column_names[7] = _("CRC");
- column_names[8] = _("Method");
- column_names[9] = _("Version");
- column_types[0] = G_TYPE_STRING;
- column_types[1] = G_TYPE_UINT64;
- column_types[2] = G_TYPE_UINT64;
- column_types[3] = G_TYPE_STRING;
- column_types[4] = G_TYPE_STRING;
- column_types[5] = G_TYPE_STRING;
- column_types[6] = G_TYPE_STRING;
- column_types[7] = G_TYPE_STRING;
- column_types[8] = G_TYPE_STRING;
- column_types[9] = G_TYPE_STRING;
+ property_names[0] = _("Filename");
+ property_names[1] = _("Original");
+ property_names[2] = _("Compressed");
+ property_names[3] = _("Ratio");
+ property_names[4] = _("Date");
+ property_names[5] = _("Time");
+ property_names[6] = _("Permissions");
+ property_names[7] = _("CRC");
+ property_names[8] = _("Method");
+ property_names[9] = _("Version");
+ property_types[0] = G_TYPE_STRING;
+ property_types[1] = G_TYPE_UINT64;
+ property_types[2] = G_TYPE_UINT64;
+ property_types[3] = G_TYPE_STRING;
+ property_types[4] = G_TYPE_STRING;
+ property_types[5] = G_TYPE_STRING;
+ property_types[6] = G_TYPE_STRING;
+ property_types[7] = G_TYPE_STRING;
+ property_types[8] = G_TYPE_STRING;
+ property_types[9] = G_TYPE_STRING;
- xa_support_set_columns(xa_support, n_columns, column_names, column_types);
+ xa_support_set_columns(xa_support, n_columns, property_names, property_types);
xa_support->type = XARCHIVETYPE_RAR;
xa_support->verify = xa_archive_type_rar_verify;
xa_support->open = xa_support_rar_open;
@@ -119,8 +119,8 @@
xa_support->testing = xa_support_rar_testing;
xa_support->parse_output = xa_support_rar_parse_output;
- g_free (column_names);
- g_free(column_types);
+ g_free (property_names);
+ g_free(property_types);
}
static gboolean xa_support_rar_parse_output (GIOChannel *ioc, GIOCondition cond, gpointer data)
More information about the Xfce4-commits
mailing list