]> saetta.ns0.it Git - zakform/libzakform/commitdiff
Enabled get_xml for ZakFormElementArray; variables order uniformed.
authorAndrea Zagli <azagli@libero.it>
Thu, 28 May 2020 08:46:24 +0000 (10:46 +0200)
committerAndrea Zagli <azagli@libero.it>
Thu, 28 May 2020 08:46:24 +0000 (10:46 +0200)
16 files changed:
src/formelementarray.c
src/formelementfilter.c
src/formelementfilter.h
src/formelementfilterluc.c
src/formelementfiltertrim.c
src/formelementvalidator.c
src/formelementvalidator.h
src/formelementvalidatordate.c
src/formelementvalidatorisnumber.c
src/formelementvalidatornotempty.c
src/formelementvalidatornumber.c
src/formelementvalidatorregex.c
src/formvalidator.c
src/formvalidatorcompare.c
src/formvalidatorcomparedate.c
src/formvalidatorcomparenumber.c

index 6c9b11f80a019a79a92a59730e6c8cf32028d505..15d3e7cfe2fe991fc376aca4cd6a42f3c65feb75 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Andrea Zagli <azagli@libero.it>
+ * Copyright (C) 2017-2020 Andrea Zagli <azagli@libero.it>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -53,11 +53,14 @@ static gboolean zak_form_element_array_get_editable (ZakFormElement *element);
 static void zak_form_element_array_clear (ZakFormElement *element);
 static gboolean zak_form_element_array_is_valid (ZakFormElement *element);
 
+static void zak_form_element_array_get_xml (ZakFormElement *element, xmlNode *xnode, const gchar *version);
+
 #define ZAK_FORM_ELEMENT_ARRAY_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), ZAK_FORM_TYPE_ELEMENT_ARRAY, ZakFormElementArrayPrivate))
 
 typedef struct _ZakFormElementArrayPrivate ZakFormElementArrayPrivate;
 struct _ZakFormElementArrayPrivate
        {
+               gchar *handler_name;
                GPtrArray *ar_elements;
        };
 
@@ -85,6 +88,7 @@ zak_form_element_array_class_init (ZakFormElementArrayClass *klass)
        elem_class->get_editable = zak_form_element_array_get_editable;
        elem_class->clear = zak_form_element_array_clear;
        elem_class->is_valid = zak_form_element_array_is_valid;
+       elem_class->get_xml = zak_form_element_array_get_xml;
 
        g_type_class_add_private (object_class, sizeof (ZakFormElementArrayPrivate));
 
@@ -109,6 +113,7 @@ zak_form_element_array_init (ZakFormElementArray *zak_form_element_array)
 {
        ZakFormElementArrayPrivate *priv = ZAK_FORM_ELEMENT_ARRAY_GET_PRIVATE (zak_form_element_array);
 
+       priv->handler_name = NULL;
        priv->ar_elements = g_ptr_array_new ();
 }
 
@@ -145,6 +150,8 @@ zak_form_element_array_xml_parsing (ZakFormElement *element, xmlNodePtr xmlnode)
 
        ZakFormElementConstructorFunc element_constructor;
 
+       ZakFormElementArrayPrivate *priv = ZAK_FORM_ELEMENT_ARRAY_GET_PRIVATE (element);
+
        cur = xmlnode->children;
        while (cur != NULL)
                {
@@ -152,23 +159,22 @@ zak_form_element_array_xml_parsing (ZakFormElement *element, xmlNodePtr xmlnode)
                                {
                                        GModule *module;
                                        GCallback func;
-                                       gchar *handler_name;
 
                                        module = g_module_open (NULL, G_MODULE_BIND_LAZY);
                                        if (module != NULL)
                                                {
-                                                       handler_name = (gchar *)xmlNodeGetContent (cur);
+                                                       priv->handler_name = g_strdup ((gchar *)xmlNodeGetContent (cur));
 
-                                                       if (!g_module_symbol (module, handler_name, (gpointer)&func))
+                                                       if (!g_module_symbol (module, priv->handler_name, (gpointer)&func))
                                                                {
-                                                                       g_warning (_("Could not find signal handler '%s'."), handler_name);
+                                                                       g_warning (_("Could not find signal handler '%s'."), priv->handler_name);
+                                                                       g_free (priv->handler_name);
+                                                                       priv->handler_name = NULL;
                                                                }
                                                        else
                                                                {
                                                                        g_signal_connect (element, "element-added", func, NULL);
                                                                }
-
-                                                       g_free (handler_name);
                                                }
                                }
                        else if (xmlStrEqual (cur->name, (const xmlChar *)"element"))
@@ -565,3 +571,29 @@ zak_form_element_array_is_valid (ZakFormElement *element)
 
        return ret;
 }
+
+static void
+zak_form_element_array_get_xml (ZakFormElement *element, xmlNode *xnode, const gchar *version)
+{
+       guint i;
+
+       xmlNode *cur;
+
+       ZakFormElementArrayPrivate *priv = ZAK_FORM_ELEMENT_ARRAY_GET_PRIVATE (element);
+
+       xmlSetProp (xnode, (const xmlChar *)"type", (const xmlChar *)"zak_form_element_array");
+
+       if (priv->handler_name != NULL
+           && g_strcmp0 (priv->handler_name, "") != 0)
+               {
+                       cur = xmlNewNode (NULL, (const xmlChar *)"signal-element-added");
+                       xmlNodeSetContent (cur, (xmlChar *)priv->handler_name);
+                       xmlAddChild (xnode, cur);
+               }
+
+       for (i = 0; i < priv->ar_elements->len; i++)
+               {
+                       cur = zak_form_element_get_xml ((ZakFormElement *)g_ptr_array_index (priv->ar_elements, i), version);
+                       xmlAddChild (xnode, cur);
+               }
+}
index 7fa81862f536623975dbddeaff8736a5e0f6c0a5..12a2e9fddaaad29c298e0dfd54bdb1aa42008b62 100644 (file)
@@ -219,7 +219,7 @@ xmlNode
 
        if (ZAK_FORM_ELEMENT_FILTER_GET_CLASS (filter)->get_xml!= NULL)
                {
-                       ZAK_FORM_ELEMENT_FILTER_GET_CLASS (filter)->get_xml (filter, version, xnode);
+                       ZAK_FORM_ELEMENT_FILTER_GET_CLASS (filter)->get_xml (filter, xnode, version);
                }
 
        return xnode;
index 35ff2560180dc86362d05a39f997088385b0c9b8..e8599634c7d8778741113bc175102f7abe0acffd 100644 (file)
@@ -37,7 +37,7 @@ struct _ZakFormElementFilterClass
        gboolean (*xml_parsing) (ZakFormElementFilter *filter, xmlNode *xnode);
        gchar *(*filter) (ZakFormElementFilter *self, const gchar *value);
 
-       void (*get_xml) (ZakFormElementFilter *self, const gchar *version, xmlNode *xnode);
+       void (*get_xml) (ZakFormElementFilter *self, xmlNode *xnode, const gchar *version);
 };
 
 gboolean zak_form_element_filter_xml_parsing (ZakFormElementFilter *filter, xmlNode *xnode);
index 9e87073d8a09a170898c24830e3ddc1b2559dac6..69bd7210ebc91a8759c01d8bd17c901bfc5d2291 100644 (file)
@@ -44,7 +44,7 @@ static void zak_form_element_filter_luc_finalize (GObject *gobject);
 
 static gboolean zak_form_element_filter_luc_xml_parsing (ZakFormElementFilter *filter, xmlNode *xnode);
 static gchar *zak_form_element_filter_luc_filter (ZakFormElementFilter *filter_luc, const gchar *value);
-static void zak_form_element_filter_luc_get_xml (ZakFormElementFilter *filter, const gchar *version, xmlNode *xnode);
+static void zak_form_element_filter_luc_get_xml (ZakFormElementFilter *filter, xmlNode *xnode, const gchar *version);
 
 enum
        {
@@ -248,7 +248,7 @@ static gchar
 }
 
 static void
-zak_form_element_filter_luc_get_xml (ZakFormElementFilter *filter, const gchar *version, xmlNode *xnode)
+zak_form_element_filter_luc_get_xml (ZakFormElementFilter *filter, xmlNode *xnode, const gchar *version)
 {
        ZakFormElementFilterLuc *zak_form_element = ZAK_FORM_ELEMENT_FILTER_LUC (filter);
        ZakFormElementFilterLucPrivate *priv = ZAK_FORM_ELEMENT_FILTER_LUC_GET_PRIVATE (zak_form_element);
index e38ebf6ea04ea92a618ca1bc5dc9e1506f99290d..1e4f7cf19c7e81f1b9e01de682b4efff99348682 100644 (file)
@@ -40,7 +40,7 @@ static void zak_form_element_filter_trim_finalize (GObject *gobject);
 
 static gboolean zak_form_element_filter_trim_xml_parsing (ZakFormElementFilter *filter, xmlNode *xnode);
 static gchar *zak_form_element_filter_trim_filter (ZakFormElementFilter *filter_trim, const gchar *value);
-static void zak_form_element_filter_trim_get_xml (ZakFormElementFilter *filter, const gchar *version, xmlNode *xnode);
+static void zak_form_element_filter_trim_get_xml (ZakFormElementFilter *filter, xmlNode *xnode, const gchar *version);
 
 struct _ZakFormElementFilterTrim
 {
@@ -191,7 +191,7 @@ static gchar
 }
 
 static void
-zak_form_element_filter_trim_get_xml (ZakFormElementFilter *filter, const gchar *version, xmlNode *xnode)
+zak_form_element_filter_trim_get_xml (ZakFormElementFilter *filter, xmlNode *xnode, const gchar *version)
 {
        ZakFormElementFilterTrim *zak_form_element = ZAK_FORM_ELEMENT_FILTER_TRIM (filter);
        ZakFormElementFilterTrimPrivate *priv = ZAK_FORM_ELEMENT_FILTER_TRIM_GET_PRIVATE (zak_form_element);
index ad7f6953f1facc3f7f66734376ac237a6e8fea5a..d3f7edd755c144292f768eb36983380b6f871866 100644 (file)
@@ -277,7 +277,7 @@ xmlNode
 
        if (ZAK_FORM_ELEMENT_VALIDATOR_GET_CLASS (validator)->get_xml!= NULL)
                {
-                       ZAK_FORM_ELEMENT_VALIDATOR_GET_CLASS (validator)->get_xml (validator, version, xnode);
+                       ZAK_FORM_ELEMENT_VALIDATOR_GET_CLASS (validator)->get_xml (validator, xnode, version);
                }
 
        return xnode;
index bff37c2b654828f12944b3f06eae20d812f2cdbf..e6c6bf3fde09a4903f553f67f20b77f0224eaf86 100644 (file)
@@ -37,7 +37,7 @@ struct _ZakFormElementValidatorClass
        gboolean (*xml_parsing) (ZakFormElementValidator *self, xmlNode *xnode);
        gboolean (*validate) (ZakFormElementValidator *self, const gchar *value);
 
-       void (*get_xml) (ZakFormElementValidator *self, const gchar *version, xmlNode *xnode);
+       void (*get_xml) (ZakFormElementValidator *self, xmlNode *xnode, const gchar *version);
 };
 
 gboolean zak_form_element_validator_xml_parsing (ZakFormElementValidator *self, xmlNode *xnode);
index c6911d7c004deacebf8d1feb9bc538fdc2bfd34c..1f9f93f55c52a3f88fcd01f28cdfd0fb7e7adb6e 100644 (file)
@@ -44,7 +44,7 @@ static void zak_form_element_validator_date_finalize (GObject *gobject);
 
 static gboolean zak_form_element_validator_date_xml_parsing (ZakFormElementValidator *validator, xmlNode *xnode);
 static gboolean zak_form_element_validator_date_validate (ZakFormElementValidator *validator_date, const gchar *value);
-static void zak_form_element_validator_date_get_xml (ZakFormElementValidator *validator, const gchar *version, xmlNode *xnode);
+static void zak_form_element_validator_date_get_xml (ZakFormElementValidator *validator, xmlNode *xnode, const gchar *version);
 
 struct _ZakFormElementValidatorDate
 {
@@ -394,7 +394,7 @@ zak_form_element_validator_date_validate (ZakFormElementValidator *validator_dat
 }
 
 static void
-zak_form_element_validator_date_get_xml (ZakFormElementValidator *validator, const gchar *version, xmlNode *xnode)
+zak_form_element_validator_date_get_xml (ZakFormElementValidator *validator, xmlNode *xnode, const gchar *version)
 {
        ZakFormElementValidatorDate *validator_date = ZAK_FORM_ELEMENT_VALIDATOR_DATE (validator);
        ZakFormElementValidatorDatePrivate *priv = ZAK_FORM_ELEMENT_VALIDATOR_DATE_GET_PRIVATE (validator_date);
index 2f707bc86e88de3c760deeb24d0471888a681ade..07fee20e0159c5e8fe9e1c4a2b328eeaea403c66 100644 (file)
@@ -45,7 +45,7 @@ static void zak_form_element_validator_is_number_finalize (GObject *gobject);
 
 static gboolean zak_form_element_validator_is_number_xml_parsing (ZakFormElementValidator *validator, xmlNode *xnode);
 static gboolean zak_form_element_validator_is_number_validate (ZakFormElementValidator *validator_is_number, const gchar *value);
-static void zak_form_element_validator_is_number_get_xml (ZakFormElementValidator *validator, const gchar *version, xmlNode *xnode);
+static void zak_form_element_validator_is_number_get_xml (ZakFormElementValidator *validator, xmlNode *xnode, const gchar *version);
 
 struct _ZakFormElementValidatorIsNumber
 {
@@ -347,7 +347,7 @@ zak_form_element_validator_is_number_validate (ZakFormElementValidator *validato
 }
 
 static void
-zak_form_element_validator_is_number_get_xml (ZakFormElementValidator *validator, const gchar *version, xmlNode *xnode)
+zak_form_element_validator_is_number_get_xml (ZakFormElementValidator *validator, xmlNode *xnode, const gchar *version)
 {
        ZakFormElementValidatorIsNumber *validator_isnumber = ZAK_FORM_ELEMENT_VALIDATOR_IS_NUMBER (validator);
        ZakFormElementValidatorIsNumberPrivate *priv = ZAK_FORM_ELEMENT_VALIDATOR_IS_NUMBER_GET_PRIVATE (validator_isnumber);
index 498a67acff21bc6bf8a59fa3d844ebef795e5ab5..cb219beee5839cc5457f4a9f127372436a6c1fac 100644 (file)
@@ -46,7 +46,7 @@ static void zak_form_element_validator_notempty_finalize (GObject *gobject);
 
 static gboolean zak_form_element_validator_notempty_xml_parsing (ZakFormElementValidator *validator, xmlNode *xnode);
 static gboolean zak_form_element_validator_notempty_validate (ZakFormElementValidator *validator_notempty, const gchar *value);
-static void zak_form_element_validator_notempty_get_xml (ZakFormElementValidator *validator, const gchar *version, xmlNode *xnode);
+static void zak_form_element_validator_notempty_get_xml (ZakFormElementValidator *validator, xmlNode *xnode, const gchar *version);
 
 struct _ZakFormElementValidatorNotempty
 {
@@ -260,7 +260,7 @@ zak_form_element_validator_notempty_validate (ZakFormElementValidator *validator
 }
 
 static void
-zak_form_element_validator_notempty_get_xml (ZakFormElementValidator *validator, const gchar *version, xmlNode *xnode)
+zak_form_element_validator_notempty_get_xml (ZakFormElementValidator *validator, xmlNode *xnode, const gchar *version)
 {
        ZakFormElementValidatorNotempty *validator_notempty = ZAK_FORM_ELEMENT_VALIDATOR_NOTEMPTY (validator);
        ZakFormElementValidatorNotemptyPrivate *priv = ZAK_FORM_ELEMENT_VALIDATOR_NOTEMPTY_GET_PRIVATE (validator_notempty);
index 5fb26d24ad467eaa5067284cbf466522f289ba4f..77ace76435f430223a06886695bb66a1ccd59bca 100644 (file)
@@ -44,7 +44,7 @@ static void zak_form_element_validator_number_finalize (GObject *gobject);
 
 static gboolean zak_form_element_validator_number_xml_parsing (ZakFormElementValidator *validator, xmlNode *xnode);
 static gboolean zak_form_element_validator_number_validate (ZakFormElementValidator *validator_number, const gchar *value);
-static void zak_form_element_validator_number_get_xml (ZakFormElementValidator *validator, const gchar *version, xmlNode *xnode);
+static void zak_form_element_validator_number_get_xml (ZakFormElementValidator *validator, xmlNode *xnode, const gchar *version);
 
 struct _ZakFormElementValidatorNumber
 {
@@ -300,7 +300,7 @@ zak_form_element_validator_number_validate (ZakFormElementValidator *validator_n
 }
 
 static void
-zak_form_element_validator_number_get_xml (ZakFormElementValidator *validator, const gchar *version, xmlNode *xnode)
+zak_form_element_validator_number_get_xml (ZakFormElementValidator *validator, xmlNode *xnode, const gchar *version)
 {
        ZakFormElementValidatorNumber *validator_number = ZAK_FORM_ELEMENT_VALIDATOR_NUMBER (validator);
        ZakFormElementValidatorNumberPrivate *priv = ZAK_FORM_ELEMENT_VALIDATOR_NUMBER_GET_PRIVATE (validator_number);
index a7fc1cc9ecf6140c4c5dd45291a3bd8cd84a1b7a..23a7b2b177656f264f80af9bca332a1783694b5a 100644 (file)
@@ -46,7 +46,7 @@ static void zak_form_element_validator_regex_finalize (GObject *gobject);
 
 static gboolean zak_form_element_validator_regex_xml_parsing (ZakFormElementValidator *validator, xmlNode *xnode);
 static gboolean zak_form_element_validator_regex_validate (ZakFormElementValidator *validator_regex, const gchar *value);
-static void zak_form_element_validator_regex_get_xml (ZakFormElementValidator *validator, const gchar *version, xmlNode *xnode);
+static void zak_form_element_validator_regex_get_xml (ZakFormElementValidator *validator, xmlNode *xnode, const gchar *version);
 
 struct _ZakFormElementValidatorRegex
 {
@@ -272,7 +272,7 @@ zak_form_element_validator_regex_validate (ZakFormElementValidator *validator_re
 }
 
 static void
-zak_form_element_validator_regex_get_xml (ZakFormElementValidator *validator, const gchar *version, xmlNode *xnode)
+zak_form_element_validator_regex_get_xml (ZakFormElementValidator *validator, xmlNode *xnode, const gchar *version)
 {
        ZakFormElementValidatorRegex *validator_regex = ZAK_FORM_ELEMENT_VALIDATOR_REGEX (validator);
        ZakFormElementValidatorRegexPrivate *priv = ZAK_FORM_ELEMENT_VALIDATOR_REGEX_GET_PRIVATE (validator_regex);
index 0b15726e60ea710d14935b86edba613737beaf54..a7e80cb015ce6b1e4c01228c7aa4eed162dd923e 100644 (file)
@@ -287,7 +287,7 @@ xmlNode
 
        if (ZAK_FORM_VALIDATOR_GET_CLASS (validator)->get_xml!= NULL)
                {
-                       ZAK_FORM_VALIDATOR_GET_CLASS (validator)->get_xml (validator, version, xnode);
+                       ZAK_FORM_VALIDATOR_GET_CLASS (validator)->get_xml (validator, xnode, version);
                }
 
        return xnode;
index 906f84c2cbcd9a1557e7a672bae0b0f7e5d40bd3..32f2f29d904a7896ff70b42cae5eca0bc7356067 100644 (file)
@@ -45,7 +45,7 @@ static void zak_form_validator_compare_finalize (GObject *gobject);
 
 static gboolean zak_form_validator_compare_xml_parsing (ZakFormValidator *validator, xmlNode *xnode, gpointer form);
 static gboolean zak_form_validator_compare_validate (ZakFormValidator *validator_notempty);
-static void zak_form_validator_compare_get_xml (ZakFormValidator *validator, const gchar *version, xmlNode *xnode);
+static void zak_form_validator_compare_get_xml (ZakFormValidator *validator, xmlNode *xnode, const gchar *version);
 
 struct _ZakFormValidatorCompare
 {
@@ -364,7 +364,7 @@ zak_form_validator_compare_validate (ZakFormValidator *validator)
 }
 
 static void
-zak_form_validator_compare_get_xml (ZakFormValidator *validator, const gchar *version, xmlNode *xnode)
+zak_form_validator_compare_get_xml (ZakFormValidator *validator, xmlNode *xnode, const gchar *version)
 {
        ZakFormValidatorCompare *validator_compare = ZAK_FORM_VALIDATOR_COMPARE (validator);
        ZakFormValidatorComparePrivate *priv = ZAK_FORM_VALIDATOR_COMPARE_GET_PRIVATE (validator_compare);
index 58dc8a165f71058147dff4ba21cb04a76ab45419..31cb982a03fc2d936611635b97bc4a9d11faffd0 100644 (file)
@@ -46,7 +46,7 @@ static void zak_form_validator_compare_date_finalize (GObject *gobject);
 
 static gboolean zak_form_validator_compare_date_xml_parsing (ZakFormValidator *validator, xmlNode *xnode, gpointer form);
 static gboolean zak_form_validator_compare_date_validate (ZakFormValidator *validator_notempty);
-static void zak_form_validator_compare_date_get_xml (ZakFormValidator *validator, const gchar *version, xmlNode *xnode);
+static void zak_form_validator_compare_date_get_xml (ZakFormValidator *validator, xmlNode *xnode, const gchar *version);
 
 struct _ZakFormValidatorCompareDate
 {
@@ -434,7 +434,7 @@ zak_form_validator_compare_date_validate (ZakFormValidator *validator)
 }
 
 static void
-zak_form_validator_compare_date_get_xml (ZakFormValidator *validator, const gchar *version, xmlNode *xnode)
+zak_form_validator_compare_date_get_xml (ZakFormValidator *validator, xmlNode *xnode, const gchar *version)
 {
        ZakFormValidatorCompareDate *validator_compare_date = ZAK_FORM_VALIDATOR_COMPARE_DATE (validator);
        ZakFormValidatorCompareDatePrivate *priv = ZAK_FORM_VALIDATOR_COMPARE_DATE_GET_PRIVATE (validator_compare_date);
index 88bb514af4b558877a81f54d1de818f46779e343..62a8c6fd2bd1cd3f70d633b35ff3ea79ecbe0561 100644 (file)
@@ -46,7 +46,7 @@ static void zak_form_validator_compare_number_finalize (GObject *gobject);
 
 static gboolean zak_form_validator_compare_number_xml_parsing (ZakFormValidator *validator, xmlNode *xnode, gpointer form);
 static gboolean zak_form_validator_compare_number_validate (ZakFormValidator *validator_notempty);
-static void zak_form_validator_compare_number_get_xml (ZakFormValidator *validator, const gchar *version, xmlNode *xnode);
+static void zak_form_validator_compare_number_get_xml (ZakFormValidator *validator, xmlNode *xnode, const gchar *version);
 
 struct _ZakFormValidatorCompareNumber
 {
@@ -366,7 +366,7 @@ zak_form_validator_compare_number_validate (ZakFormValidator *validator)
 }
 
 static void
-zak_form_validator_compare_number_get_xml (ZakFormValidator *validator, const gchar *version, xmlNode *xnode)
+zak_form_validator_compare_number_get_xml (ZakFormValidator *validator, xmlNode *xnode, const gchar *version)
 {
        ZakFormValidatorCompareNumber *validator_compare_number = ZAK_FORM_VALIDATOR_COMPARE_NUMBER (validator);
        ZakFormValidatorCompareNumberPrivate *priv = ZAK_FORM_VALIDATOR_COMPARE_NUMBER_GET_PRIVATE (validator_compare_number);