Author: peter
Date: 2008-07-17 22:01:30 +0000 (Thu, 17 Jul 2008)
New Revision: 27333
Added:
squeeze/trunk/libsqueeze/command-option.c
squeeze/trunk/libsqueeze/command-option.h
Modified:
squeeze/trunk/libsqueeze/Makefile.am
squeeze/trunk/libsqueeze/archive-iter-pool.h
squeeze/trunk/libsqueeze/archive.c
squeeze/trunk/libsqueeze/archive.h
squeeze/trunk/libsqueeze/command-queue.c
squeeze/trunk/libsqueeze/libsqueeze.h
squeeze/trunk/libsqueeze/support-reader.c
squeeze/trunk/libsqueeze/support-template.h
Log:
Command options added (not completely finnished)
Modified: squeeze/trunk/libsqueeze/Makefile.am
===================================================================
--- squeeze/trunk/libsqueeze/Makefile.am 2008-07-17 19:31:41 UTC (rev
27332)
+++ squeeze/trunk/libsqueeze/Makefile.am 2008-07-17 22:01:30 UTC (rev
27333)
@@ -6,6 +6,7 @@
archive-iter.c archive-iter.h \
archive-tempfs.c archive-tempfs.h \
command-queue.c command-queue.h \
+ command-option.c command-option.h \
internals.c internals.h \
libsqueeze.c libsqueeze.h \
libsqueeze-view.h \
Modified: squeeze/trunk/libsqueeze/archive-iter-pool.h
===================================================================
--- squeeze/trunk/libsqueeze/archive-iter-pool.h 2008-07-17 19:31:41 UTC
(rev 27332)
+++ squeeze/trunk/libsqueeze/archive-iter-pool.h 2008-07-17 22:01:30 UTC
(rev 27333)
@@ -17,26 +17,6 @@
#define __ARCHIVE_ITER_POOL_H__
G_BEGIN_DECLS
-#define LSQ_TYPE_ARCHIVE lsq_archive_get_type()
-
-#define LSQ_ARCHIVE(obj) ( \
- G_TYPE_CHECK_INSTANCE_CAST ((obj), \
- LSQ_TYPE_ARCHIVE, \
- LSQArchive))
-
-#define LSQ_IS_ARCHIVE(obj) ( \
- G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
- LSQ_TYPE_ARCHIVE))
-
-#define LSQ_ARCHIVE_CLASS(class) ( \
- G_TYPE_CHECK_CLASS_CAST ((class), \
- LSQ_TYPE_ARCHIVE, \
- LSQArchiveClass))
-
-#define LSQ_IS_ARCHIVE_CLASS(class) ( \
- G_TYPE_CHECK_CLASS_TYPE ((class), \
- LSQ_TYPE_ARCHIVE))
-
typedef struct _LSQArchiveIter LSQArchiveIter;
typedef struct _LSQArchiveEntry LSQArchiveEntry;
typedef struct _LSQArchiveIterPool LSQArchiveIterPool;
Modified: squeeze/trunk/libsqueeze/archive.c
===================================================================
--- squeeze/trunk/libsqueeze/archive.c 2008-07-17 19:31:41 UTC (rev 27332)
+++ squeeze/trunk/libsqueeze/archive.c 2008-07-17 22:01:30 UTC (rev 27333)
@@ -437,3 +437,28 @@
return TRUE;
}
+LSQCommandOptionPair **
+lsq_archive_get_command_options(LSQArchive *archive, LSQCommandType type)
+{
+ LSQCommandOptionPair **option_list = NULL;
+
+ LSQSupportTemplate *s_template = archive->priv->s_template;
+
+ switch (type)
+ {
+ case LSQ_COMMAND_TYPE_ADD:
+ option_list =
lsq_command_option_create_pair(s_template->add_options);
+ break;
+ case LSQ_COMMAND_TYPE_REMOVE:
+ option_list =
lsq_command_option_create_pair(s_template->remove_options);
+ break;
+ case LSQ_COMMAND_TYPE_EXTRACT:
+ option_list =
lsq_command_option_create_pair(s_template->extract_options);
+ break;
+ default:
+ break;
+ }
+
+ return option_list;
+}
+
Modified: squeeze/trunk/libsqueeze/archive.h
===================================================================
--- squeeze/trunk/libsqueeze/archive.h 2008-07-17 19:31:41 UTC (rev 27332)
+++ squeeze/trunk/libsqueeze/archive.h 2008-07-17 22:01:30 UTC (rev 27333)
@@ -110,6 +110,9 @@
gboolean lsq_archive_operate(LSQArchive *archive, LSQCommandType
type, const gchar **, const gchar *);
+LSQCommandOptionPair **
+lsq_archive_get_command_options(LSQArchive *archive, LSQCommandType type);
+
const gchar *
lsq_archive_get_state_msg(const LSQArchive *archive);
Added: squeeze/trunk/libsqueeze/command-option.c
===================================================================
--- squeeze/trunk/libsqueeze/command-option.c (rev 0)
+++ squeeze/trunk/libsqueeze/command-option.c 2008-07-17 22:01:30 UTC (rev
27333)
@@ -0,0 +1,267 @@
+/*
+ * 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-object.h>
+#include <libxfce4util/libxfce4util.h>
+
+#include "command-option.h"
+
+#define LSQ_COMMAND_OPTION_GET_CLASS(obj) ( \
+ G_TYPE_INSTANCE_GET_CLASS ((obj), \
+ LSQ_TYPE_COMMAND_OPTION,
\
+ LSQCommandOptionClass))
+
+typedef void (*LSQCommandOptionGetDefaultFunc)(LSQCommandOption*, GValue*);
+
+typedef struct _LSQCommandOptionClass LSQCommandOptionClass;
+
+struct _LSQCommandOptionClass
+{
+ GTypeClass parent;
+
+ LSQCommandOptionGetDefaultFunc get_default;
+};
+
+static void lsq_command_option_class_init(LSQCommandOptionClass *);
+static void lsq_command_option_bool_class_init(LSQCommandOptionClass *);
+static void lsq_command_option_string_class_init(LSQCommandOptionClass *);
+static void lsq_command_option_int_class_init(LSQCommandOptionClass *);
+static void lsq_command_option_uint_class_init(LSQCommandOptionClass *);
+
+GType
+lsq_command_option_get_type(gint type_idx)
+{
+ static GType lsq_command_option_type[5] = {0};
+
+ if (!lsq_command_option_type[0])
+ {
+ static const GTypeFundamentalInfo lsq_command_option_fund =
+ {
+ G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE
+ };
+ static const GTypeInfo lsq_command_option[5] =
+ {
+ {
+ sizeof (LSQCommandOptionClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) lsq_command_option_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL,
+ sizeof (LSQCommandOption),
+ 0,
+ (GInstanceInitFunc) NULL,
+ NULL
+ },
+ {
+ sizeof (LSQCommandOptionClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) lsq_command_option_bool_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL,
+ sizeof (LSQCommandOptionBool),
+ 0,
+ (GInstanceInitFunc) NULL,
+ NULL
+ },
+ {
+ sizeof (LSQCommandOptionClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) lsq_command_option_string_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL,
+ sizeof (LSQCommandOptionString),
+ 0,
+ (GInstanceInitFunc) NULL,
+ NULL
+ },
+ {
+ sizeof (LSQCommandOptionClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) lsq_command_option_int_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL,
+ sizeof (LSQCommandOptionInt),
+ 0,
+ (GInstanceInitFunc) NULL,
+ NULL
+ },
+ {
+ sizeof (LSQCommandOptionClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) lsq_command_option_uint_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL,
+ sizeof (LSQCommandOptionUint),
+ 0,
+ (GInstanceInitFunc) NULL,
+ NULL
+ }
+ };
+
+ lsq_command_option_type[0] = g_type_register_fundamental
(G_TYPE_GTYPE, "LSQCommandOption", &lsq_command_option[0],
&lsq_command_option_fund, 0);
+ lsq_command_option_type[1] = g_type_register_static
(lsq_command_option_type[0], "LSQCommandOptionBool", &lsq_command_option[1], 0);
+ lsq_command_option_type[2] = g_type_register_static
(lsq_command_option_type[0], "LSQCommandOptionString", &lsq_command_option[2],
0);
+ lsq_command_option_type[3] = g_type_register_static
(lsq_command_option_type[0], "LSQCommandOptionInt", &lsq_command_option[3], 0);
+ lsq_command_option_type[4] = g_type_register_static
(lsq_command_option_type[0], "LSQCommandOptionUint", &lsq_command_option[4], 0);
+ }
+ return lsq_command_option_type[type_idx];
+}
+
+LSQCommandOption **
+lsq_command_option_create_list(XfceRc *rc, gchar **option_names)
+{
+ LSQCommandOption **command_options = g_new0(LSQCommandOption*,
g_strv_length(option_names));
+ LSQCommandOption **cmd_opt_iter = command_options;
+ gchar **option_iter;
+ for(option_iter = option_names; *option_iter; option_iter++)
+ {
+ gchar *option_group = g_strconcat("Squeeze-Option-", *option_iter, NULL);
+ xfce_rc_set_group(rc, option_group);
+
+ const gchar *type = xfce_rc_read_entry(rc, "X-Squeeze-Type", "");
+ if(0==g_ascii_strcasecmp("Bool", type))
+ {
+ *cmd_opt_iter =
LSQ_COMMAND_OPTION(g_type_create_instance(LSQ_TYPE_COMMAND_OPTION_BOOL));
+ (*cmd_opt_iter)->value_type = G_TYPE_BOOLEAN;
+ LSQ_COMMAND_OPTION_BOOL(*cmd_opt_iter)->default_value =
xfce_rc_read_bool_entry(rc, "X-Squeeze-Value", FALSE);
+ }
+ else if(0==g_ascii_strcasecmp("String", type))
+ {
+ *cmd_opt_iter =
LSQ_COMMAND_OPTION(g_type_create_instance(LSQ_TYPE_COMMAND_OPTION_STRING));
+ (*cmd_opt_iter)->value_type = G_TYPE_STRING;
+ LSQ_COMMAND_OPTION_STRING(*cmd_opt_iter)->default_value =
xfce_rc_read_entry(rc, "X-Squeeze-Value", NULL);
+ LSQ_COMMAND_OPTION_STRING(*cmd_opt_iter)->filter =
xfce_rc_read_entry(rc, "X-Squeeze-Filter", NULL);
+ }
+ else if(0==g_ascii_strcasecmp("Int", type))
+ {
+ *cmd_opt_iter =
LSQ_COMMAND_OPTION(g_type_create_instance(LSQ_TYPE_COMMAND_OPTION_INT));
+ (*cmd_opt_iter)->value_type = G_TYPE_INT;
+ LSQ_COMMAND_OPTION_INT(*cmd_opt_iter)->default_value =
xfce_rc_read_int_entry(rc, "X-Squeeze-Value", 0);
+ LSQ_COMMAND_OPTION_INT(*cmd_opt_iter)->min_value =
xfce_rc_read_int_entry(rc, "X-Squeeze-Min", 0);
+ LSQ_COMMAND_OPTION_INT(*cmd_opt_iter)->max_value =
xfce_rc_read_int_entry(rc, "X-Squeeze-Max", 0);
+ }
+ else if(0==g_ascii_strcasecmp("Uint", type))
+ {
+ *cmd_opt_iter =
LSQ_COMMAND_OPTION(g_type_create_instance(LSQ_TYPE_COMMAND_OPTION_UINT));
+ (*cmd_opt_iter)->value_type = G_TYPE_UINT;
+ LSQ_COMMAND_OPTION_UINT(*cmd_opt_iter)->default_value =
xfce_rc_read_int_entry(rc, "X-Squeeze-Value", 0);
+ LSQ_COMMAND_OPTION_UINT(*cmd_opt_iter)->min_value =
xfce_rc_read_int_entry(rc, "X-Squeeze-Min", 0);
+ LSQ_COMMAND_OPTION_UINT(*cmd_opt_iter)->max_value =
xfce_rc_read_int_entry(rc, "X-Squeeze-Max", 0);
+ }
+ else
+ {
+ continue;
+ }
+
+ (*cmd_opt_iter)->name = g_strdup(*option_iter);
+ (*cmd_opt_iter)->flag = xfce_rc_read_entry(rc, "X-Squeeze-Flag", NULL);
+ (*cmd_opt_iter)->blurb = xfce_rc_read_entry(rc, "X-Squeeze-Description",
NULL);
+
+ cmd_opt_iter++;
+ }
+
+ return command_options;
+}
+
+LSQCommandOptionPair **
+lsq_command_option_create_pair(LSQCommandOption **option_list)
+{
+ int length = 0;
+ LSQCommandOption **option_iter;
+
+ for(option_iter = option_list; *option_iter; option_iter++)
+ {
+ length++;
+ }
+
+ LSQCommandOptionPair **option_pair = g_new0(LSQCommandOptionPair*, length);
+ LSQCommandOptionPair **pair_iter = option_pair;
+
+ for(option_iter = option_list; *option_iter; option_iter++)
+ {
+ LSQCommandOption *option = *option_iter;
+
+ *pair_iter = g_new0(LSQCommandOptionPair, 1);
+
+ (*pair_iter)->option = option;
+ g_value_init(&(*pair_iter)->value, option->value_type);
+ lsq_command_option_get_default(option, &(*pair_iter)->value);
+
+ pair_iter++;
+ }
+
+ return option_pair;
+}
+
+void
+lsq_command_option_get_default(LSQCommandOption *option, GValue *value)
+{
+ g_return_if_fail(LSQ_COMMAND_OPTION_GET_CLASS(option)->get_default);
+ LSQ_COMMAND_OPTION_GET_CLASS(option)->get_default(option, value);
+}
+
+static void lsq_command_option_bool_get_default(LSQCommandOptionBool *option,
GValue *value)
+{
+ g_value_set_boolean(value, option->default_value);
+}
+
+static void lsq_command_option_string_get_default(LSQCommandOptionString
*option, GValue *value)
+{
+ g_value_set_string(value, option->default_value);
+}
+
+static void lsq_command_option_int_get_default(LSQCommandOptionInt *option,
GValue *value)
+{
+ g_value_set_int(value, option->default_value);
+}
+
+static void lsq_command_option_uint_get_default(LSQCommandOptionUint *option,
GValue *value)
+{
+ g_value_set_uint(value, option->default_value);
+}
+
+static void lsq_command_option_class_init(LSQCommandOptionClass *klass)
+{
+}
+
+static void lsq_command_option_bool_class_init(LSQCommandOptionClass *klass)
+{
+ klass->get_default =
(LSQCommandOptionGetDefaultFunc)lsq_command_option_bool_get_default;
+}
+
+static void lsq_command_option_string_class_init(LSQCommandOptionClass *klass)
+{
+ klass->get_default =
(LSQCommandOptionGetDefaultFunc)lsq_command_option_string_get_default;
+}
+
+static void lsq_command_option_int_class_init(LSQCommandOptionClass *klass)
+{
+ klass->get_default =
(LSQCommandOptionGetDefaultFunc)lsq_command_option_int_get_default;
+}
+
+static void lsq_command_option_uint_class_init(LSQCommandOptionClass *klass)
+{
+ klass->get_default =
(LSQCommandOptionGetDefaultFunc)lsq_command_option_uint_get_default;
+}
+
Added: squeeze/trunk/libsqueeze/command-option.h
===================================================================
--- squeeze/trunk/libsqueeze/command-option.h (rev 0)
+++ squeeze/trunk/libsqueeze/command-option.h 2008-07-17 22:01:30 UTC (rev
27333)
@@ -0,0 +1,102 @@
+/*
+ * 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.
+ */
+
+#ifndef __LSQ_COMMAND_OPTION_H__
+#define __LSQ_COMMAND_OPTION_H__
+
+#define LSQ_TYPE_COMMAND_OPTION lsq_command_option_get_type(0)
+#define LSQ_COMMAND_OPTION(obj) (G_TYPE_CHECK_INSTANCE_CAST
((obj),LSQ_TYPE_COMMAND_OPTION,LSQCommandOption))
+#define LSQ_IS_COMMAND_OPTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE
((obj),LSQ_TYPE_COMMAND_OPTION))
+
+#define LSQ_TYPE_COMMAND_OPTION_BOOL lsq_command_option_get_type(1)
+#define LSQ_COMMAND_OPTION_BOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST
((obj),LSQ_TYPE_COMMAND_OPTION_BOOL,LSQCommandOptionBool))
+#define LSQ_IS_COMMAND_OPTION_BOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE
((obj),LSQ_TYPE_COMMAND_OPTION_BOOL))
+
+#define LSQ_TYPE_COMMAND_OPTION_STRING lsq_command_option_get_type(2)
+#define LSQ_COMMAND_OPTION_STRING(obj) (G_TYPE_CHECK_INSTANCE_CAST
((obj),LSQ_TYPE_COMMAND_OPTION_STRING,LSQCommandOptionString))
+#define LSQ_IS_COMMAND_OPTION_STRING(obj) (G_TYPE_CHECK_INSTANCE_TYPE
((obj),LSQ_TYPE_COMMAND_OPTION_STRING))
+
+#define LSQ_TYPE_COMMAND_OPTION_INT lsq_command_option_get_type(3)
+#define LSQ_COMMAND_OPTION_INT(obj) (G_TYPE_CHECK_INSTANCE_CAST
((obj),LSQ_TYPE_COMMAND_OPTION_INT,LSQCommandOptionInt))
+#define LSQ_IS_COMMAND_OPTION_INT(obj) (G_TYPE_CHECK_INSTANCE_TYPE
((obj),LSQ_TYPE_COMMAND_OPTION_INT))
+
+#define LSQ_TYPE_COMMAND_OPTION_UINT lsq_command_option_get_type(4)
+#define LSQ_COMMAND_OPTION_UINT(obj) (G_TYPE_CHECK_INSTANCE_CAST
((obj),LSQ_TYPE_COMMAND_OPTION_UINT,LSQCommandOptionUint))
+#define LSQ_IS_COMMAND_OPTION_UINT(obj) (G_TYPE_CHECK_INSTANCE_TYPE
((obj),LSQ_TYPE_COMMAND_OPTION_UINT))
+
+typedef struct _LSQCommandOptionPair LSQCommandOptionPair;
+
+typedef struct _LSQCommandOption LSQCommandOption;
+typedef struct _LSQCommandOptionString LSQCommandOptionString;
+typedef struct _LSQCommandOptionBool LSQCommandOptionBool;
+typedef struct _LSQCommandOptionInt LSQCommandOptionInt;
+typedef struct _LSQCommandOptionUint LSQCommandOptionUint;
+
+GType
+lsq_command_option_get_type(gint);
+
+LSQCommandOptionPair **
+lsq_command_option_create_pair(LSQCommandOption **option_list);
+
+LSQCommandOption **
+lsq_command_option_create_list(XfceRc *rc, gchar **option_names);
+
+void
+lsq_command_option_get_default(LSQCommandOption *option, GValue *value);
+
+struct _LSQCommandOptionPair {
+ GValue value;
+ const LSQCommandOption *option;
+};
+
+struct _LSQCommandOption {
+ GTypeInstance parent;
+ const gchar *name;
+ const gchar *flag;
+ const gchar *blurb;
+ GType value_type;
+};
+
+struct _LSQCommandOptionString {
+ LSQCommandOption parent;
+
+ const gchar *default_value;
+ const gchar *filter;
+};
+
+struct _LSQCommandOptionBool {
+ LSQCommandOption parent;
+
+ gboolean default_value;
+};
+
+struct _LSQCommandOptionInt {
+ LSQCommandOption parent;
+
+ gint default_value;
+ gint min_value;
+ gint max_value;
+};
+
+struct _LSQCommandOptionUint {
+ LSQCommandOption parent;
+
+ guint default_value;
+ guint min_value;
+ guint max_value;
+};
+
+#endif /* __LSQ_COMMAND_OPTION_H__ */
Modified: squeeze/trunk/libsqueeze/command-queue.c
===================================================================
--- squeeze/trunk/libsqueeze/command-queue.c 2008-07-17 19:31:41 UTC (rev
27332)
+++ squeeze/trunk/libsqueeze/command-queue.c 2008-07-17 22:01:30 UTC (rev
27333)
@@ -363,7 +363,7 @@
{
LSQExecuteContext *ctx;
- ctx = g_new(LSQExecuteContext, 1);
+ ctx = g_new0(LSQExecuteContext, 1);
ctx->queue = queue->queue;
ctx->archive = archive;
Modified: squeeze/trunk/libsqueeze/libsqueeze.h
===================================================================
--- squeeze/trunk/libsqueeze/libsqueeze.h 2008-07-17 19:31:41 UTC (rev
27332)
+++ squeeze/trunk/libsqueeze/libsqueeze.h 2008-07-17 22:01:30 UTC (rev
27333)
@@ -17,6 +17,7 @@
#ifndef __LIBSQUEEZE_H__
#define __LIBSQUEEZE_H__
+#include <libsqueeze/command-option.h>
#include <libsqueeze/support-template.h>
#include <libsqueeze/archive-iter-pool.h>
#include <libsqueeze/archive.h>
Modified: squeeze/trunk/libsqueeze/support-reader.c
===================================================================
--- squeeze/trunk/libsqueeze/support-reader.c 2008-07-17 19:31:41 UTC (rev
27332)
+++ squeeze/trunk/libsqueeze/support-reader.c 2008-07-17 22:01:30 UTC (rev
27333)
@@ -141,6 +141,36 @@
gchar **mime_types = xfce_rc_read_list_entry(rc, "MimeType", ";");
+ xfce_rc_set_group(rc, "Squeeze-Add");
+
+ LSQCommandOption **add_options = NULL;
+ gchar **option_names = xfce_rc_read_list_entry(rc, "X-Squeeze-Options", ";");
+ if(option_names)
+ {
+ add_options = lsq_command_option_create_list(rc, option_names);
+ g_strfreev(option_names);
+ }
+
+ xfce_rc_set_group(rc, "Squeeze-Remove");
+
+ LSQCommandOption **remove_options = NULL;
+ option_names = xfce_rc_read_list_entry(rc, "X-Squeeze-Options", ";");
+ if(option_names)
+ {
+ remove_options = lsq_command_option_create_list(rc, option_names);
+ g_strfreev(option_names);
+ }
+
+ xfce_rc_set_group(rc, "Squeeze-Extract");
+
+ LSQCommandOption **extract_options = NULL;
+ option_names = xfce_rc_read_list_entry(rc, "X-Squeeze-Options", ";");
+ if(option_names)
+ {
+ extract_options = lsq_command_option_create_list(rc, option_names);
+ g_strfreev(option_names);
+ }
+
xfce_rc_set_group(rc, "Squeeze-Refresh");
gchar **column_names = xfce_rc_read_list_entry(rc, "X-Squeeze-Headers", ";");
LSQParser *parser = NULL;
@@ -193,14 +223,19 @@
if (new_str_queue)
s_template->new_cmd_queue =
lsq_command_queue_new(new_str_queue);
if (add_str_queue)
- s_template->add_cmd_queue =
lsq_command_queue_new(add_str_queue);
+ s_template->add_cmd_queue =
lsq_command_queue_new(add_str_queue);
if (remove_str_queue)
- s_template->remove_cmd_queue =
lsq_command_queue_new(remove_str_queue);
+ s_template->remove_cmd_queue =
lsq_command_queue_new(remove_str_queue);
if (extract_str_queue)
- s_template->extract_cmd_queue =
lsq_command_queue_new(extract_str_queue);
+ s_template->extract_cmd_queue =
lsq_command_queue_new(extract_str_queue);
if (refresh_str_queue)
- s_template->refresh_cmd_queue =
lsq_command_queue_new(refresh_str_queue);
+ s_template->refresh_cmd_queue =
lsq_command_queue_new(refresh_str_queue);
+ s_template->add_options = add_options;
+ s_template->remove_options = remove_options;
+ s_template->extract_options = extract_options;
+
+
s_template->n_properties = g_strv_length(column_names);
s_template->property_names = column_names;
s_template->parser = parser;
@@ -215,3 +250,4 @@
return factory;
}
+
Modified: squeeze/trunk/libsqueeze/support-template.h
===================================================================
--- squeeze/trunk/libsqueeze/support-template.h 2008-07-17 19:31:41 UTC (rev
27332)
+++ squeeze/trunk/libsqueeze/support-template.h 2008-07-17 22:01:30 UTC (rev
27333)
@@ -56,8 +56,11 @@
LSQCommandQueue *new_cmd_queue;
LSQCommandQueue *add_cmd_queue;
+ LSQCommandOption **add_options;
LSQCommandQueue *remove_cmd_queue;
+ LSQCommandOption **remove_options;
LSQCommandQueue *extract_cmd_queue;
+ LSQCommandOption **extract_options;
LSQCommandQueue *refresh_cmd_queue;
LSQSupportType support_mask;
};
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits