From 0fd4ba6c44165c4169672da619654b960d58489d Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 13 Apr 2020 17:03:12 +0200 Subject: [PATCH] Using :: ZakFormForm::get_element_by_id returns an array subelement. --- src/form.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/form.c b/src/form.c index 7358f1c..5478b2a 100644 --- a/src/form.c +++ b/src/form.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015-2017 Andrea Zagli + * Copyright (C) 2015-2020 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -32,6 +32,7 @@ #include "form.h" #include "formelementfilter.h" #include "formelementvalidator.h" +#include "formelementarray.h" typedef ZakFormValidator *(* FormValidatorConstructorFunc) (void); @@ -397,6 +398,22 @@ ZakFormElement { ZakFormElement *element = (ZakFormElement *)g_ptr_array_index (priv->ar_elements, i); + if (ZAK_FORM_IS_ELEMENT_ARRAY (element) + && g_strstr_len (id, -1, "::") != NULL) + { + gchar **splitted; + + splitted = g_strsplit (id, "::", -1); + + if (g_strcmp0 (zak_form_element_get_name (element), splitted[0]) == 0) + { + ret = zak_form_element_array_get_element_by_id (element, splitted[1]); + break; + } + + g_strfreev (splitted); + } + if (g_strcmp0 (zak_form_element_get_name (element), id) == 0) { ret = element; -- 2.49.0