From cb4fa9bd714faf1f2d93e2b03602a6e9c27090e5 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 9 Aug 2017 15:39:57 +0200 Subject: [PATCH] Added function ZakForm::remove_element_by_id (refs #1104). --- src/form.c | 35 +++++++++++++++++++++++++++++++++++ src/form.h | 1 + 2 files changed, 36 insertions(+) diff --git a/src/form.c b/src/form.c index 7fd21a0..a4135fe 100644 --- a/src/form.c +++ b/src/form.c @@ -305,6 +305,41 @@ zak_form_form_add_element (ZakFormForm *zakform, ZakFormElement *element) return ret; } +/** + * zak_form_form_remove_element_by_id: + * @zakform: + * @id: + * + * Returns: #TRUE if @element is removed; FALSE otherwise. + */ +gboolean +zak_form_form_remove_element_by_id (ZakFormForm *zakform, const gchar *id) +{ + gboolean ret; + + ZakFormFormPrivate *priv; + + guint i; + + priv = zak_form_form_get_instance_private (zakform); + + ret = FALSE; + + for (i = 0; i < priv->ar_elements->len; i++) + { + ZakFormElement *element = (ZakFormElement *)g_ptr_array_index (priv->ar_elements, i); + + if (g_strcmp0 (zak_form_element_get_name (element), id) == 0) + { + g_ptr_array_remove_index (priv->ar_elements, i); + ret = TRUE; + break; + } + } + + return ret; +} + /** * zak_form_form_get_element_by_id: * @zakform: diff --git a/src/form.h b/src/form.h index dacd822..2ccc2ca 100644 --- a/src/form.h +++ b/src/form.h @@ -49,6 +49,7 @@ gboolean zak_form_form_load_from_xml (ZakFormForm *zakform, xmlDoc *xmldoc); gboolean zak_form_form_load_from_file (ZakFormForm *zakform, const gchar *filename); gboolean zak_form_form_add_element (ZakFormForm *zakform, ZakFormElement *element); +gboolean zak_form_form_remove_element_by_id (ZakFormForm *zakform, const gchar *id); ZakFormElement *zak_form_form_get_element_by_id (ZakFormForm *zakform, const gchar *id); GPtrArray *zak_form_form_get_elements (ZakFormForm *zakform); GPtrArray *zak_form_form_get_elements_by_type (ZakFormForm *zakform, GType type); -- 2.49.0