]> saetta.ns0.it Git - zakform/libzakform/commitdiff
Added element for error message to FormValidatorCompareDate.
authorAndrea Zagli <azagli@libero.it>
Wed, 6 Jan 2021 09:25:29 +0000 (10:25 +0100)
committerAndrea Zagli <azagli@libero.it>
Wed, 6 Jan 2021 09:25:29 +0000 (10:25 +0100)
src/formvalidatorcomparedate.c
src/formvalidatorcomparedate.h

index bfa755ff33b9cb91a0a5d1a8615e9a19e280f6a0..83a1965cc652be26eaebf7ba1505d7ebe56fdfb7 100644 (file)
@@ -62,6 +62,7 @@ struct _ZakFormValidatorCompareDatePrivate
 
                ZakFormElement *v1;
                ZakFormElement *v2;
+               ZakFormElement *message;
 
                gchar *format1;
                gchar *format2;
@@ -92,6 +93,7 @@ zak_form_validator_compare_date_init (ZakFormValidatorCompareDate *validator)
 
        priv->v1 = NULL;
        priv->v2 = NULL;
+       priv->message = NULL;
        priv->format1 = g_strdup ("");
        priv->format2 = g_strdup ("");
 }
@@ -294,6 +296,46 @@ const gchar
        return g_strdup (priv->format2);
 }
 
+/**
+ * zak_form_validator_compare_date_set_element_message:
+ * @validator:
+ * @element:
+ *
+ * Sets the validator element for error message.
+ */
+void
+zak_form_validator_compare_date_set_element_message (ZakFormValidatorCompareDate *validator, ZakFormForm *form, const gchar *element)
+{
+       ZakFormValidatorCompareDatePrivate *priv = zak_form_validator_compare_date_get_instance_private (validator);
+
+       priv->message = zak_form_form_get_element_by_id (form, element);
+       if (!ZAK_FORM_IS_ELEMENT (priv->message))
+               {
+                       g_warning ("Validator compare: element «%s» isn't a ZakFormElement.", element);
+               }
+}
+
+/**
+ * zak_form_validator_compare_date_get_element_message:
+ * @validator:
+ *
+ * Returns: the validator element name for error message.
+ */
+const gchar
+*zak_form_validator_compare_date_get_element_message (ZakFormValidatorCompareDate *validator)
+{
+       ZakFormValidatorCompareDatePrivate *priv = zak_form_validator_compare_date_get_instance_private (validator);
+
+       if (ZAK_FORM_IS_ELEMENT (priv->message))
+               {
+                       return zak_form_element_get_name (priv->message);
+               }
+       else
+               {
+                       return "";
+               }
+}
+
 /* PRIVATE */
 static void
 zak_form_validator_compare_date_set_property (GObject *object,
@@ -446,4 +488,6 @@ zak_form_validator_compare_date_get_xml (ZakFormValidator *validator, xmlNode *x
        xmlSetProp (xnode, (const xmlChar *)"element2", (const xmlChar *)zak_form_validator_compare_date_get_element2 (validator_compare_date));
 
        xmlSetProp (xnode, (const xmlChar *)"format2", (const xmlChar *)zak_form_validator_compare_date_get_element2_format (validator_compare_date));
+
+       xmlSetProp (xnode, (const xmlChar *)"element_message", (const xmlChar *)zak_form_validator_compare_date_get_element_message (validator_compare_date));
 }
index e7e747d4ac5cdfafea10c4567906fc76e5497e0d..d1db401481d91c04634a24a7a0489012ebe7b377 100644 (file)
@@ -47,6 +47,9 @@ void zak_form_validator_compare_date_set_element2 (ZakFormValidatorCompareDate *
 const gchar *zak_form_validator_compare_date_get_element2 (ZakFormValidatorCompareDate *validator);
 const gchar *zak_form_validator_compare_date_get_element2_format (ZakFormValidatorCompareDate *validator);
 
+void zak_form_validator_compare_date_set_element_message (ZakFormValidatorCompareDate *validator, ZakFormForm *form, const gchar *element);
+const gchar *zak_form_validator_compare_date_get_element_message (ZakFormValidatorCompareDate *validator);
+
 
 G_END_DECLS