[Xfce4-commits] r25264 - squeeze/trunk/libsqueeze
Stephan Arts
stephan at xfce.org
Fri Mar 23 11:04:17 CET 2007
Author: stephan
Date: 2007-03-23 10:04:17 +0000 (Fri, 23 Mar 2007)
New Revision: 25264
Added:
squeeze/trunk/libsqueeze/builder-settings.c
squeeze/trunk/libsqueeze/builder-settings.h
Modified:
squeeze/trunk/libsqueeze/Makefile.am
squeeze/trunk/libsqueeze/archive-iter.c
squeeze/trunk/libsqueeze/archive.c
squeeze/trunk/libsqueeze/archive.h
squeeze/trunk/libsqueeze/command-builder-compr.c
squeeze/trunk/libsqueeze/command-builder-gnu-tar.c
squeeze/trunk/libsqueeze/command-builder.c
squeeze/trunk/libsqueeze/command-builder.h
squeeze/trunk/libsqueeze/libsqueeze-module.h
squeeze/trunk/libsqueeze/libsqueeze-view.h
Log:
add settings support
Modified: squeeze/trunk/libsqueeze/Makefile.am
===================================================================
--- squeeze/trunk/libsqueeze/Makefile.am 2007-03-23 02:34:02 UTC (rev 25263)
+++ squeeze/trunk/libsqueeze/Makefile.am 2007-03-23 10:04:17 UTC (rev 25264)
@@ -16,6 +16,7 @@
macro-command.c macro-command.h \
dbus-command.c dbus-command.h \
archive-tempfs.c archive-tempfs.h \
+ builder-settings.c builder-settings.h \
command-builder.c command-builder.h \
command-builder-zip.c command-builder-zip.h \
command-builder-rar.c command-builder-rar.h \
Modified: squeeze/trunk/libsqueeze/archive-iter.c
===================================================================
--- squeeze/trunk/libsqueeze/archive-iter.c 2007-03-23 02:34:02 UTC (rev 25263)
+++ squeeze/trunk/libsqueeze/archive-iter.c 2007-03-23 10:04:17 UTC (rev 25264)
@@ -1066,9 +1066,9 @@
if(props_iter)
{
/* walk all properties */
- for(i=0; i<archive->entry_n_property; ++i)
+ for(i=0; i < (lsq_archive_n_entry_properties(archive) - LSQ_ARCHIVE_PROP_USER); ++i)
{
- switch(archive->entry_property_types[i])
+ switch(lsq_archive_get_entry_property_type(archive, i+LSQ_ARCHIVE_PROP_USER))
{
case(G_TYPE_STRING):
/* free only strings */
@@ -1376,7 +1376,7 @@
{
for(n = 0; n < (i-LSQ_ARCHIVE_PROP_USER); ++n)
{
- switch(archive->entry_property_types[n])
+ switch(lsq_archive_get_entry_property_type(archive, n+LSQ_ARCHIVE_PROP_USER))
{
case G_TYPE_STRING:
props_iter += sizeof(gchar *);
@@ -1405,7 +1405,7 @@
return 0;
for(n = 0; n < (i-LSQ_ARCHIVE_PROP_USER); ++n)
{
- switch(archive->entry_property_types[n])
+ switch(lsq_archive_get_entry_property_type(archive, n))
{
case G_TYPE_STRING:
props_iter += sizeof(gchar *);
@@ -1430,7 +1430,7 @@
return 0;
for(n = 0; n < (i-LSQ_ARCHIVE_PROP_USER); ++n)
{
- switch(archive->entry_property_types[n])
+ switch(lsq_archive_get_entry_property_type(archive, n+LSQ_ARCHIVE_PROP_USER))
{
case G_TYPE_STRING:
props_iter += sizeof(gchar *);
@@ -1454,9 +1454,9 @@
if(!entry->props)
{
- for(i = 0; i < archive->entry_n_property; ++i)
+ for(i = 0; i < (lsq_archive_n_entry_properties(archive)-LSQ_ARCHIVE_PROP_USER); ++i)
{
- switch(archive->entry_property_types[i])
+ switch(lsq_archive_get_entry_property_type(archive, i+LSQ_ARCHIVE_PROP_USER))
{
case G_TYPE_STRING:
size += sizeof(gchar *);
@@ -1484,7 +1484,7 @@
for(i = 0; i < (n-LSQ_ARCHIVE_PROP_USER); ++i)
{
- switch(archive->entry_property_types[i])
+ switch(lsq_archive_get_entry_property_type(archive, i+LSQ_ARCHIVE_PROP_USER))
{
case G_TYPE_STRING:
props_iter += sizeof(gchar *);
@@ -1509,7 +1509,7 @@
for(i = 0; i < (n-LSQ_ARCHIVE_PROP_USER); ++i)
{
- switch(archive->entry_property_types[i])
+ switch(lsq_archive_get_entry_property_type(archive, i+LSQ_ARCHIVE_PROP_USER))
{
case G_TYPE_STRING:
props_iter += sizeof(gchar *);
@@ -1533,7 +1533,7 @@
for(i = 0; i < (n-LSQ_ARCHIVE_PROP_USER); ++i)
{
- switch(archive->entry_property_types[i])
+ switch(lsq_archive_get_entry_property_type(archive, i+LSQ_ARCHIVE_PROP_USER))
{
case G_TYPE_STRING:
props_iter += sizeof(gchar *);
@@ -1555,9 +1555,9 @@
gpointer props_iter = lsq_archive_entry_get_props(archive, entry);
guint i;
- for(i = 0; i < archive->entry_n_property; ++i)
+ for(i=0; i < (lsq_archive_n_entry_properties(archive) - LSQ_ARCHIVE_PROP_USER); ++i)
{
- switch(archive->entry_property_types[i])
+ switch(lsq_archive_get_entry_property_type(archive, i+LSQ_ARCHIVE_PROP_USER))
{
case G_TYPE_STRING:
g_free(*((gchar **)props_iter));
@@ -1582,9 +1582,9 @@
gpointer props_iter = lsq_archive_entry_get_props(archive, entry);
guint i;
- for(i = 0; i < archive->entry_n_property; ++i)
+ for(i=0; i < (lsq_archive_n_entry_properties(archive) - LSQ_ARCHIVE_PROP_USER); ++i)
{
- switch(archive->entry_property_types[i])
+ switch(lsq_archive_get_entry_property_type(archive, i+LSQ_ARCHIVE_PROP_USER))
{
case G_TYPE_STRING:
g_free(*((gchar **)props_iter));
Modified: squeeze/trunk/libsqueeze/archive.c
===================================================================
--- squeeze/trunk/libsqueeze/archive.c 2007-03-23 02:34:02 UTC (rev 25263)
+++ squeeze/trunk/libsqueeze/archive.c 2007-03-23 10:04:17 UTC (rev 25264)
@@ -220,248 +220,108 @@
g_object_unref(archive);
archive = NULL;
}
+
+ archive->settings = lsq_command_builder_get_settings(archive->builder);
return archive;
}
-/********************
- * LSQArchive stuff *
- ********************/
-
-static GType *
-lsq_archive_get_entry_property_types(LSQArchive *archive, guint size)
+/*
+ * lsq_archive_n_entry_properties:
+ *
+ * @archive: LSQArchive object
+ *
+ */
+guint
+lsq_archive_n_entry_properties(const LSQArchive *archive)
{
- GType *new_props;
- gchar **new_names;
- guint i;
-
- if(archive->entry_n_property < size)
- {
- new_props = g_new0(GType, size);
- new_names = g_new0(gchar*, size);
- for(i = 0; i < archive->entry_n_property; ++i)
- {
- new_props[i] = archive->entry_property_types[i];
- new_names[i] = archive->entry_property_names[i];
- }
- g_free(archive->entry_property_types);
- g_free(archive->entry_property_names);
- archive->entry_property_types = new_props;
- archive->entry_property_names = new_names;
- archive->entry_n_property = size;
- }
- return archive->entry_property_types;
+#ifdef DEBUG
+ g_return_val_if_fail(archive, 0);
+#endif
+ return lsq_builder_settings_get_n_properties(archive->settings) + LSQ_ARCHIVE_PROP_USER;
}
-static gchar **
-lsq_archive_get_entry_property_names(LSQArchive *archive, guint size)
-{
- GType *new_types;
- gchar **new_names;
- guint i;
-
- if(archive->entry_n_property < size)
- {
- new_types = g_new0(GType, size);
- new_names = g_new0(gchar*, size);
- for(i = 0; i < archive->entry_n_property; ++i)
- {
- new_types[i] = archive->entry_property_types[i];
- new_names[i] = archive->entry_property_names[i];
- }
- g_free(archive->entry_property_types);
- g_free(archive->entry_property_names);
- archive->entry_property_types = new_types;
- archive->entry_property_names = new_names;
- archive->entry_n_property = size;
- }
- return archive->entry_property_names;
-}
-
/*
- * GType
- * lsq_archive_get_entry_property_type(LSQArchive *archive, guint i)
+ * lsq_archive_get_entry_property_type:
*
+ * @archive: LSQArchive object
+ *
*/
GType
-lsq_archive_get_entry_property_type(LSQArchive *archive, guint i)
+lsq_archive_get_entry_property_type(const LSQArchive *archive, guint n)
{
-#ifdef DEBUG /* n_property + 2, filename and MIME */
- g_return_val_if_fail(archive, G_TYPE_INVALID);
- g_return_val_if_fail(i < lsq_archive_n_entry_properties(archive), G_TYPE_INVALID);
-#endif
-
- switch(i)
+ switch(n)
{
case LSQ_ARCHIVE_PROP_FILENAME:
case LSQ_ARCHIVE_PROP_MIME_TYPE:
return G_TYPE_STRING;
+ break;
default:
-#ifdef DEBUG
- g_return_val_if_fail(archive->entry_property_types, G_TYPE_INVALID);
-#endif
- return archive->entry_property_types[i - LSQ_ARCHIVE_PROP_USER];
+ return lsq_builder_settings_get_property_type(archive->settings, n - LSQ_ARCHIVE_PROP_USER);
+ break;
}
}
/*
- * const gchar *
- * lsq_archive_get_entry_property_name(LSQArchive *, guint)
+ * lsq_archive_get_entry_property_name:
*
+ * @archive: LSQArchive object
+ *
*/
const gchar *
-lsq_archive_get_entry_property_name(LSQArchive *archive, guint i)
+lsq_archive_get_entry_property_name(const LSQArchive *archive, guint n)
{
-#ifdef DEBUG /* n_property + 2, filename and MIME */
- g_return_val_if_fail(archive, G_TYPE_INVALID);
- g_return_val_if_fail(i < lsq_archive_n_entry_properties(archive), G_TYPE_INVALID);
-#endif
-
- switch(i)
+ switch(n)
{
case LSQ_ARCHIVE_PROP_FILENAME:
return _("Name");
case LSQ_ARCHIVE_PROP_MIME_TYPE:
return _("Mime type");
+ break;
default:
-#ifdef DEBUG
- g_return_val_if_fail(archive->entry_property_names, G_TYPE_INVALID);
-#endif
- return archive->entry_property_names[i - LSQ_ARCHIVE_PROP_USER];
+ return lsq_builder_settings_get_property_name(archive->settings, n - LSQ_ARCHIVE_PROP_USER);
+ break;
}
}
/*
- * void
- * lsq_archive_set_entry_property_type(LSQArchive *archive, guint i, GType *, const gchar *)
+ * lsq_archive_get_filename:
*
+ * @archive: LSQArchive object
*/
-void
-lsq_archive_set_entry_property_type(LSQArchive *archive, guint i, GType type, const gchar *name)
+gchar *
+lsq_archive_get_filename(const LSQArchive *archive)
{
-#ifdef DEBUG
- g_return_if_fail(archive);
- g_return_if_fail(i >= LSQ_ARCHIVE_PROP_USER);
-#endif
-
- GType *types_iter = lsq_archive_get_entry_property_types(archive, i+1-LSQ_ARCHIVE_PROP_USER);
- gchar **names_iter = lsq_archive_get_entry_property_names(archive, i+1-LSQ_ARCHIVE_PROP_USER);
-
- types_iter[i-LSQ_ARCHIVE_PROP_USER] = type;
- g_free(names_iter[i-LSQ_ARCHIVE_PROP_USER]);
- names_iter[i-LSQ_ARCHIVE_PROP_USER] = g_strdup(name);
+ return g_path_get_basename(archive->path);
}
/*
- * void
- * lsq_archive_set_entry_property_types(LSQArchive *archive, ...)
+ * lsq_archive_get_path:
*
+ * @archive: LSQArchive object
*/
-void
-lsq_archive_set_entry_property_types(LSQArchive *archive, ...)
+const gchar *
+lsq_archive_get_path(const LSQArchive *archive)
{
-#ifdef DEBUG
- g_return_if_fail(archive);
-#endif
- GType type;
- gchar *name;
- guint size = 0;
- va_list ap;
- va_start(ap, archive);
- while(va_arg(ap, GType) && va_arg(ap, gchar*))
- {
- size++;
- }
- va_end(ap);
- GType *types_iter = lsq_archive_get_entry_property_types(archive, size);
- gchar **names_iter = lsq_archive_get_entry_property_names(archive, size);
- va_start(ap, archive);
- while((type = va_arg(ap, GType)) && (name = va_arg(ap, gchar*)))
- {
- *types_iter = type;
- g_free(*names_iter);
- *names_iter = g_strdup(name);
- types_iter++;
- names_iter++;
- }
+ return archive->path;
}
/*
- * void
- * lsq_archive_set_entry_property_typesv(LSQArchive *archive, GType *)
+ * lsq_archive_get_mimetype:
*
+ * @archive: LSQArchive object
*/
-void
-lsq_archive_set_entry_property_typesv(LSQArchive *archive, GType *types, const gchar **names)
-{
-#ifdef DEBUG
- g_return_if_fail(archive);
-#endif
- guint size = 0;
- GType *type_iter = types;
- const gchar **name_iter = names;
- while(type_iter && name_iter)
- {
- size++;
- type_iter++;
- name_iter++;
- }
- GType *types_iter = lsq_archive_get_entry_property_types(archive, size);
- gchar **names_iter = lsq_archive_get_entry_property_names(archive, size);
- type_iter = types;
- name_iter = names;
- while(type_iter && name_iter)
- {
- *types_iter = *type_iter;
- g_free(*names_iter);
- *names_iter = g_strdup(*name_iter);
- types_iter++;
- type_iter++;
- names_iter++;
- name_iter++;
- }
-}
-
-void
-lsq_archive_clear_entry_property_types(LSQArchive *archive)
-{
-#ifdef DEBUG
- g_return_if_fail(archive);
-#endif
- g_free(archive->entry_property_types);
- g_free(archive->entry_property_names);
- archive->entry_property_types = NULL;
- archive->entry_property_names = NULL;
- archive->entry_n_property = 0;
-}
-
-guint
-lsq_archive_n_entry_properties(LSQArchive *archive)
-{
-#ifdef DEBUG
- g_return_val_if_fail(archive, 0);
-#endif
- return archive->entry_n_property + LSQ_ARCHIVE_PROP_USER;
-}
-
-gchar *
-lsq_archive_get_filename(const LSQArchive *archive)
-{
- return g_path_get_basename(archive->path);
-}
-
const gchar *
-lsq_archive_get_path(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);
}
+/*
+ * lsq_archive_exists:
+ *
+ * @archive: LSQArchive object
+ */
gboolean
lsq_archive_exists(const LSQArchive *archive)
{
@@ -623,4 +483,5 @@
#ifdef DEBUG
g_debug("COMMAND TERMINATED");
#endif
+ lsq_archive_refreshed(archive);
}
Modified: squeeze/trunk/libsqueeze/archive.h
===================================================================
--- squeeze/trunk/libsqueeze/archive.h 2007-03-23 02:34:02 UTC (rev 25263)
+++ squeeze/trunk/libsqueeze/archive.h 2007-03-23 10:04:17 UTC (rev 25264)
@@ -26,9 +26,6 @@
ThunarVfsPath *path_info;
ThunarVfsInfo *file_info;
ThunarVfsMimeInfo *mime_info;
- guint entry_n_property;
- GType *entry_property_types;
- gchar **entry_property_names;
LSQArchiveEntry *root_entry;
LSQArchiveCommand *command;
struct {
@@ -37,7 +34,8 @@
guint64 n_files;
guint64 n_directories;
} props;
- LSQCommandBuilder *builder;
+ LSQCommandBuilder *builder;
+ LSQBuilderSettings *settings;
gchar *temp_dir;
GSList *monitor_list;
LSQArchiveIterPool *pool;
Added: squeeze/trunk/libsqueeze/builder-settings.c
===================================================================
--- squeeze/trunk/libsqueeze/builder-settings.c (rev 0)
+++ squeeze/trunk/libsqueeze/builder-settings.c 2007-03-23 10:04:17 UTC (rev 25264)
@@ -0,0 +1,332 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <config.h>
+#include <string.h>
+#include <glib.h>
+#include <glib/gstdio.h>
+#include <glib-object.h>
+#include <signal.h>
+#include <sys/wait.h>
+#include <sys/types.h>
+#include <thunar-vfs/thunar-vfs.h>
+
+#include "libsqueeze-module.h"
+#include "builder-settings.h"
+
+static void
+lsq_builder_settings_class_init(LSQBuilderSettingsClass *);
+static void
+lsq_builder_settings_init(LSQBuilderSettings *builder);
+static void
+lsq_builder_settings_dispose(GObject *object);
+static void
+lsq_builder_settings_finalize(GObject *object);
+
+static GObjectClass *parent_class;
+
+GType
+lsq_builder_settings_get_type ()
+{
+ static GType lsq_builder_settings_type = 0;
+
+ if (!lsq_builder_settings_type)
+ {
+ static const GTypeInfo lsq_builder_settings_info =
+ {
+ sizeof (LSQBuilderSettingsClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) lsq_builder_settings_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL,
+ sizeof (LSQBuilderSettings),
+ 0,
+ (GInstanceInitFunc) lsq_builder_settings_init,
+ NULL
+ };
+
+ lsq_builder_settings_type = g_type_register_static (G_TYPE_OBJECT, "LSQBuilderSettings", &lsq_builder_settings_info, 0);
+ }
+ return lsq_builder_settings_type;
+}
+
+static void
+lsq_builder_settings_class_init(LSQBuilderSettingsClass *builder_settings_class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS(builder_settings_class);
+
+ object_class->dispose = lsq_builder_settings_dispose;
+ object_class->finalize = lsq_builder_settings_finalize;
+
+ parent_class = g_type_class_peek(G_TYPE_OBJECT);
+
+}
+
+static void
+lsq_builder_settings_init(LSQBuilderSettings *builder_settings)
+{
+ builder_settings->n_properties = 0;
+ builder_settings->property_types = NULL;
+ builder_settings->property_names = NULL;
+}
+
+/**
+ * lsq_builder_settings_dispose:
+ *
+ * @object: LSQBuilderSettings object
+ *
+ */
+static void
+lsq_builder_settings_dispose(GObject *object)
+{
+
+ parent_class->dispose(object);
+}
+
+/**
+ * lsq_builder_settings_finalize:
+ *
+ * @object: LSQBuilderSettings object
+ *
+ */
+static void
+lsq_builder_settings_finalize(GObject *object)
+{
+ parent_class->finalize(object);
+}
+
+LSQBuilderSettings *
+lsq_builder_settings_new()
+{
+ LSQBuilderSettings *settings;
+
+ settings = g_object_new(LSQ_TYPE_BUILDER_SETTINGS, NULL);
+
+ return settings;
+}
+
+guint
+lsq_builder_settings_get_n_properties(LSQBuilderSettings *settings)
+{
+ return settings->n_properties;
+}
+
+GType
+lsq_builder_settings_get_property_type(LSQBuilderSettings *settings, guint n)
+{
+ g_return_val_if_fail(settings, G_TYPE_INVALID);
+ g_return_val_if_fail(n < settings->n_properties, G_TYPE_INVALID);
+
+ return settings->property_types[n];
+}
+
+const gchar *
+lsq_builder_settings_get_property_name(LSQBuilderSettings *settings, guint n)
+{
+ g_return_val_if_fail(settings, G_TYPE_INVALID);
+ g_return_val_if_fail(n < settings->n_properties, G_TYPE_INVALID);
+
+ return settings->property_names[n];
+}
+
+/********************
+ * LSQArchive stuff *
+ ********************/
+
+/*
+static GType *
+lsq_archive_get_entry_property_types(LSQArchive *archive, guint size)
+{
+ GType *new_props;
+ gchar **new_names;
+ guint i;
+
+ if(archive->entry_n_property < size)
+ {
+ new_props = g_new0(GType, size);
+ new_names = g_new0(gchar*, size);
+ for(i = 0; i < archive->entry_n_property; ++i)
+ {
+ new_props[i] = archive->entry_property_types[i];
+ new_names[i] = archive->entry_property_names[i];
+ }
+ g_free(archive->entry_property_types);
+ g_free(archive->entry_property_names);
+ archive->entry_property_types = new_props;
+ archive->entry_property_names = new_names;
+ archive->entry_n_property = size;
+ }
+ return archive->entry_property_types;
+}
+
+static gchar **
+lsq_archive_get_entry_property_names(LSQArchive *archive, guint size)
+{
+ GType *new_types;
+ gchar **new_names;
+ guint i;
+
+ if(archive->entry_n_property < size)
+ {
+ new_types = g_new0(GType, size);
+ new_names = g_new0(gchar*, size);
+ for(i = 0; i < archive->entry_n_property; ++i)
+ {
+ new_types[i] = archive->entry_property_types[i];
+ new_names[i] = archive->entry_property_names[i];
+ }
+ g_free(archive->entry_property_types);
+ g_free(archive->entry_property_names);
+ archive->entry_property_types = new_types;
+ archive->entry_property_names = new_names;
+ archive->entry_n_property = size;
+ }
+ return archive->entry_property_names;
+}
+
+GType
+lsq_archive_get_entry_property_type(LSQArchive *archive, guint i)
+{
+#ifdef DEBUG // n_property + 2, filename and MIME
+ g_return_val_if_fail(archive, G_TYPE_INVALID);
+ g_return_val_if_fail(i < lsq_archive_n_entry_properties(archive), G_TYPE_INVALID);
+#endif
+
+ switch(i)
+ {
+ case LSQ_ARCHIVE_PROP_FILENAME:
+ case LSQ_ARCHIVE_PROP_MIME_TYPE:
+ return G_TYPE_STRING;
+ default:
+#ifdef DEBUG
+ g_return_val_if_fail(archive->entry_property_types, G_TYPE_INVALID);
+#endif
+ return archive->entry_property_types[i - LSQ_ARCHIVE_PROP_USER];
+ }
+}
+
+const gchar *
+lsq_archive_get_entry_property_name(LSQArchive *archive, guint i)
+{
+#ifdef DEBUG // n_property + 2, filename and MIME
+ g_return_val_if_fail(archive, G_TYPE_INVALID);
+ g_return_val_if_fail(i < lsq_archive_n_entry_properties(archive), G_TYPE_INVALID);
+#endif
+
+ switch(i)
+ {
+ case LSQ_ARCHIVE_PROP_FILENAME:
+ return _("Name");
+ case LSQ_ARCHIVE_PROP_MIME_TYPE:
+ return _("Mime type");
+ default:
+#ifdef DEBUG
+ g_return_val_if_fail(archive->entry_property_names, G_TYPE_INVALID);
+#endif
+ return archive->entry_property_names[i - LSQ_ARCHIVE_PROP_USER];
+ }
+}
+
+void
+lsq_archive_set_entry_property_type(LSQArchive *archive, guint i, GType type, const gchar *name)
+{
+#ifdef DEBUG
+ g_return_if_fail(archive);
+ g_return_if_fail(i >= LSQ_ARCHIVE_PROP_USER);
+#endif
+
+ GType *types_iter = lsq_archive_get_entry_property_types(archive, i+1-LSQ_ARCHIVE_PROP_USER);
+ gchar **names_iter = lsq_archive_get_entry_property_names(archive, i+1-LSQ_ARCHIVE_PROP_USER);
+
+ types_iter[i-LSQ_ARCHIVE_PROP_USER] = type;
+ g_free(names_iter[i-LSQ_ARCHIVE_PROP_USER]);
+ names_iter[i-LSQ_ARCHIVE_PROP_USER] = g_strdup(name);
+}
+
+void
+lsq_archive_set_entry_property_types(LSQArchive *archive, ...)
+{
+#ifdef DEBUG
+ g_return_if_fail(archive);
+#endif
+ GType type;
+ gchar *name;
+ guint size = 0;
+ va_list ap;
+ va_start(ap, archive);
+ while(va_arg(ap, GType) && va_arg(ap, gchar*))
+ {
+ size++;
+ }
+ va_end(ap);
+ GType *types_iter = lsq_archive_get_entry_property_types(archive, size);
+ gchar **names_iter = lsq_archive_get_entry_property_names(archive, size);
+ va_start(ap, archive);
+ while((type = va_arg(ap, GType)) && (name = va_arg(ap, gchar*)))
+ {
+ *types_iter = type;
+ g_free(*names_iter);
+ *names_iter = g_strdup(name);
+ types_iter++;
+ names_iter++;
+ }
+}
+
+void
+lsq_archive_set_entry_property_typesv(LSQArchive *archive, GType *types, const gchar **names)
+{
+#ifdef DEBUG
+ g_return_if_fail(archive);
+#endif
+ guint size = 0;
+ GType *type_iter = types;
+ const gchar **name_iter = names;
+ while(type_iter && name_iter)
+ {
+ size++;
+ type_iter++;
+ name_iter++;
+ }
+ GType *types_iter = lsq_archive_get_entry_property_types(archive, size);
+ gchar **names_iter = lsq_archive_get_entry_property_names(archive, size);
+ type_iter = types;
+ name_iter = names;
+ while(type_iter && name_iter)
+ {
+ *types_iter = *type_iter;
+ g_free(*names_iter);
+ *names_iter = g_strdup(*name_iter);
+ types_iter++;
+ type_iter++;
+ names_iter++;
+ name_iter++;
+ }
+}
+
+void
+lsq_archive_clear_entry_property_types(LSQArchive *archive)
+{
+#ifdef DEBUG
+ g_return_if_fail(archive);
+#endif
+ g_free(archive->entry_property_types);
+ g_free(archive->entry_property_names);
+ archive->entry_property_types = NULL;
+ archive->entry_property_names = NULL;
+ archive->entry_n_property = 0;
+}
+*/
Added: squeeze/trunk/libsqueeze/builder-settings.h
===================================================================
--- squeeze/trunk/libsqueeze/builder-settings.h (rev 0)
+++ squeeze/trunk/libsqueeze/builder-settings.h 2007-03-23 10:04:17 UTC (rev 25264)
@@ -0,0 +1,47 @@
+#ifndef __LIBSQUEEZE_BUILDER_SETTINGS_H__
+#define __LIBSQUEEZE_BUILDER_SETTINGS_H__
+
+#define LSQ_TYPE_BUILDER_SETTINGS lsq_builder_settings_get_type()
+
+#define LSQ_BUILDER_SETTINGS(obj) ( \
+ G_TYPE_CHECK_INSTANCE_CAST ((obj), \
+ LSQ_TYPE_BUILDER_SETTINGS, \
+ LSQBuilderSettings))
+
+#define LSQ_IS_BUILDER_SETTINGS(obj) ( \
+ G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
+ LSQ_TYPE_BUILDER_SETTINGS))
+
+#define LSQ_BUILDER_SETTINGS_CLASS(klass) ( \
+ G_TYPE_CHECK_CLASS_CAST ((klass), \
+ LSQ_TYPE_BUILDER_SETTINGS, \
+ LSQBuilderSettingsClass))
+
+#define LSQ_IS_BUILDER_SETTINGS_CLASS(klass) ( \
+ G_TYPE_CHECK_CLASS_TYPE ((klass), \
+ LSQ_TYPE_BUILDER_SETTINGS))
+
+typedef struct _LSQBuilderSettings LSQBuilderSettings;
+
+struct _LSQBuilderSettings
+{
+ GObject parent;
+ guint n_properties;
+ GType *property_types;
+ gchar **property_names;
+};
+
+typedef struct _LSQBuilderSettingsClass LSQBuilderSettingsClass;
+
+struct _LSQBuilderSettingsClass
+{
+ GObjectClass parent;
+};
+
+GType lsq_builder_settings_get_type(void);
+LSQBuilderSettings *lsq_builder_settings_new();
+guint lsq_builder_settings_get_n_properties(LSQBuilderSettings *settings);
+GType lsq_builder_settings_get_property_type(LSQBuilderSettings *settings, guint n);
+const gchar *lsq_builder_settings_get_property_name(LSQBuilderSettings *settings, guint n);
+
+#endif /* __LIBSQUEEZE_BUILDER_SETTINGS_H__ */
Modified: squeeze/trunk/libsqueeze/command-builder-compr.c
===================================================================
--- squeeze/trunk/libsqueeze/command-builder-compr.c 2007-03-23 02:34:02 UTC (rev 25263)
+++ squeeze/trunk/libsqueeze/command-builder-compr.c 2007-03-23 10:04:17 UTC (rev 25264)
@@ -167,7 +167,7 @@
{
LSQCommandBuilder *builder;
- builder = g_object_new(lsq_command_builder_compr_get_type(), NULL);
+ builder = g_object_new(LSQ_TYPE_COMMAND_BUILDER_COMPR, NULL);
return builder;
}
Modified: squeeze/trunk/libsqueeze/command-builder-gnu-tar.c
===================================================================
--- squeeze/trunk/libsqueeze/command-builder-gnu-tar.c 2007-03-23 02:34:02 UTC (rev 25263)
+++ squeeze/trunk/libsqueeze/command-builder-gnu-tar.c 2007-03-23 10:04:17 UTC (rev 25264)
@@ -374,7 +374,7 @@
return FALSE;
}
- if(TRUE) /*LSQ_ARCHIVE_SUPPORT_GNU_TAR(support)->_view_rights*/
+ if(!TRUE) /*LSQ_ARCHIVE_SUPPORT_GNU_TAR(support)->_view_rights*/
{
line[10] = '\0';
props[i] = line;
@@ -383,7 +383,7 @@
for(n=13; n < linesize; ++n)
if(line[n] == ' ') break;
- if(TRUE) /*LSQ_ARCHIVE_SUPPORT_GNU_TAR(support)->_view_owner*/
+ if(!TRUE) /*LSQ_ARCHIVE_SUPPORT_GNU_TAR(support)->_view_owner*/
{
line[n] = '\0';
props[i] = line+11;
@@ -398,7 +398,7 @@
for(; n < linesize; ++n)
if(line[n] == ' ') break;
- if(TRUE) /*LSQ_ARCHIVE_SUPPORT_GNU_TAR(support)->_view_size*/
+ if(!TRUE) /*LSQ_ARCHIVE_SUPPORT_GNU_TAR(support)->_view_size*/
{
line[n] = '\0';
size = g_ascii_strtoull(line + a, NULL, 0);
@@ -411,7 +411,7 @@
for(; n < linesize; n++) // DATE
if(line[n] == ' ') break;
- if(TRUE) /*LSQ_ARCHIVE_SUPPORT_GNU_TAR(support)->_view_date*/
+ if(!TRUE) /*LSQ_ARCHIVE_SUPPORT_GNU_TAR(support)->_view_date*/
{
line[n] = '\0';
props[i] = line + a;
@@ -422,7 +422,7 @@
for (; n < linesize; n++) // TIME
if (line[n] == ' ') break;
- if(TRUE) /*LSQ_ARCHIVE_SUPPORT_GNU_TAR(support)->_view_time*/
+ if(!TRUE) /*LSQ_ARCHIVE_SUPPORT_GNU_TAR(support)->_view_time*/
{
line[n] = '\0';
props[i] = line + a;
Modified: squeeze/trunk/libsqueeze/command-builder.c
===================================================================
--- squeeze/trunk/libsqueeze/command-builder.c 2007-03-23 02:34:02 UTC (rev 25263)
+++ squeeze/trunk/libsqueeze/command-builder.c 2007-03-23 10:04:17 UTC (rev 25264)
@@ -33,6 +33,7 @@
#include "spawn-command.h"
#include "dbus-command.h"
#include "command-builder.h"
+#include "builder-settings.h"
static void
lsq_command_builder_class_init(LSQCommandBuilderClass *);
@@ -89,6 +90,7 @@
static void
lsq_command_builder_init(LSQCommandBuilder *command_builder)
{
+ command_builder->settings = lsq_builder_settings_new();
command_builder->build_open = lsq_command_builder_build_open;
}
@@ -129,3 +131,10 @@
return macro;
}
+
+LSQBuilderSettings *
+lsq_command_builder_get_settings(LSQCommandBuilder *builder)
+{
+ g_object_ref(builder->settings);
+ return builder->settings;
+}
Modified: squeeze/trunk/libsqueeze/command-builder.h
===================================================================
--- squeeze/trunk/libsqueeze/command-builder.h 2007-03-23 02:34:02 UTC (rev 25263)
+++ squeeze/trunk/libsqueeze/command-builder.h 2007-03-23 10:04:17 UTC (rev 25264)
@@ -29,11 +29,13 @@
gchar *id;
gchar **mime_types;
- LSQArchiveCommand *(*build_add) (LSQCommandBuilder *builder, LSQArchive *archive, GSList *files) G_GNUC_WARN_UNUSED_RESULT;
- LSQArchiveCommand *(*build_extract)(LSQCommandBuilder *builder, LSQArchive *archive, const gchar *dest_path, GSList *files) G_GNUC_WARN_UNUSED_RESULT;
- LSQArchiveCommand *(*build_remove) (LSQCommandBuilder *builder, LSQArchive *archive, GSList *file_iters) G_GNUC_WARN_UNUSED_RESULT;
- LSQArchiveCommand *(*build_refresh)(LSQCommandBuilder *builder, LSQArchive *archive) G_GNUC_WARN_UNUSED_RESULT;
- LSQArchiveCommand *(*build_open) (LSQCommandBuilder *builder, LSQArchive *archive, GSList *files) G_GNUC_WARN_UNUSED_RESULT;
+ LSQBuilderSettings *settings;
+
+ LSQArchiveCommand *(*build_add) (LSQCommandBuilder *, LSQArchive *, GSList *) G_GNUC_WARN_UNUSED_RESULT;
+ LSQArchiveCommand *(*build_extract)(LSQCommandBuilder *, LSQArchive *, const gchar *, GSList *) G_GNUC_WARN_UNUSED_RESULT;
+ LSQArchiveCommand *(*build_remove) (LSQCommandBuilder *, LSQArchive *, GSList *) G_GNUC_WARN_UNUSED_RESULT;
+ LSQArchiveCommand *(*build_refresh)(LSQCommandBuilder *, LSQArchive *) G_GNUC_WARN_UNUSED_RESULT;
+ LSQArchiveCommand *(*build_open) (LSQCommandBuilder *, LSQArchive *, GSList *) G_GNUC_WARN_UNUSED_RESULT;
};
typedef struct _LSQCommandBuilderClass LSQCommandBuilderClass;
@@ -44,5 +46,6 @@
};
GType lsq_command_builder_get_type(void);
+LSQBuilderSettings *lsq_command_builder_get_settings(LSQCommandBuilder *);
#endif /* __LIBSQUEEZE_COMMAND_BUILDER_H__ */
Modified: squeeze/trunk/libsqueeze/libsqueeze-module.h
===================================================================
--- squeeze/trunk/libsqueeze/libsqueeze-module.h 2007-03-23 02:34:02 UTC (rev 25263)
+++ squeeze/trunk/libsqueeze/libsqueeze-module.h 2007-03-23 10:04:17 UTC (rev 25264)
@@ -22,6 +22,7 @@
#include <libsqueeze/macro-command.h>
#include <libsqueeze/spawn-command.h>
#include <libsqueeze/dbus-command.h>
+#include <libsqueeze/builder-settings.h>
#include <libsqueeze/command-builder.h>
#include <libsqueeze/internals.h>
Modified: squeeze/trunk/libsqueeze/libsqueeze-view.h
===================================================================
--- squeeze/trunk/libsqueeze/libsqueeze-view.h 2007-03-23 02:34:02 UTC (rev 25263)
+++ squeeze/trunk/libsqueeze/libsqueeze-view.h 2007-03-23 10:04:17 UTC (rev 25264)
@@ -35,9 +35,9 @@
LSQArchiveIter *lsq_archive_get_iter(LSQArchive *archive, const gchar *path);
-GType lsq_archive_get_entry_property_type(LSQArchive *archive, guint n);
-const gchar *lsq_archive_get_entry_property_name(LSQArchive *archive, guint n);
-guint lsq_archive_n_entry_properties(LSQArchive *archive);
+GType lsq_archive_get_entry_property_type(const LSQArchive *archive, guint n);
+const gchar *lsq_archive_get_entry_property_name(const LSQArchive *archive, guint n);
+guint lsq_archive_n_entry_properties(const LSQArchive *archive);
gboolean lsq_archive_can_stop(const LSQArchive *archive);
gboolean lsq_archive_stop(const LSQArchive *archive);
More information about the Xfce4-commits
mailing list