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

Reply via email to