From: Andrea Zagli Date: Wed, 6 Jan 2021 09:25:29 +0000 (+0100) Subject: Added element for error message to FormValidatorCompareDate. X-Git-Url: https://saetta.ns0.it/gitweb?a=commitdiff_plain;h=617411ba036f460eae9f6a2691477e11723f6dbe;p=zakform%2Flibzakform Added element for error message to FormValidatorCompareDate. --- diff --git a/src/formvalidatorcomparedate.c b/src/formvalidatorcomparedate.c index bfa755f..83a1965 100644 --- a/src/formvalidatorcomparedate.c +++ b/src/formvalidatorcomparedate.c @@ -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)); } diff --git a/src/formvalidatorcomparedate.h b/src/formvalidatorcomparedate.h index e7e747d..d1db401 100644 --- a/src/formvalidatorcomparedate.h +++ b/src/formvalidatorcomparedate.h @@ -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