summaryrefslogtreecommitdiff
path: root/src/lib/ecore
diff options
context:
space:
mode:
authorCedric BAIL <cedric.bail@free.fr>2019-04-28 10:58:41 -0700
committerCedric BAIL <cedric.bail@free.fr>2019-05-29 11:17:02 -0700
commitc96c9a5b83930b855ce0c42db60826a4379c1cb6 (patch)
tree19a5315c3e8998fe1526af445eb7a6e6253030b2 /src/lib/ecore
parent075d655a199f1d3797c66da9397be22b79956d5f (diff)
ecore: enable property reflection support in Efl.CompositeModel.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D8754
Diffstat (limited to 'src/lib/ecore')
-rw-r--r--src/lib/ecore/efl_composite_model.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/lib/ecore/efl_composite_model.c b/src/lib/ecore/efl_composite_model.c
index 630d08edf7..1cad58ae4d 100644
--- a/src/lib/ecore/efl_composite_model.c
+++ b/src/lib/ecore/efl_composite_model.c
@@ -232,13 +232,25 @@ static Eina_Value *
232_efl_composite_model_efl_model_property_get(const Eo *obj EINA_UNUSED, Efl_Composite_Model_Data *pd, 232_efl_composite_model_efl_model_property_get(const Eo *obj EINA_UNUSED, Efl_Composite_Model_Data *pd,
233 const char *property) 233 const char *property)
234{ 234{
235 Eina_Value *try;
235 if (pd->need_index && !strcmp(property, EFL_COMPOSITE_MODEL_CHILD_INDEX)) 236 if (pd->need_index && !strcmp(property, EFL_COMPOSITE_MODEL_CHILD_INDEX))
236 { 237 {
237 if (pd->set_index) 238 if (pd->set_index)
238 return eina_value_uint_new(pd->index); 239 return eina_value_uint_new(pd->index);
239 return eina_value_error_new(EAGAIN); 240 return eina_value_error_new(EAGAIN);
240 } 241 }
241 return efl_model_property_get(pd->source, property); 242 try = efl_model_property_get(efl_super(obj, EFL_COMPOSITE_MODEL_CLASS), property);
243 if (eina_value_type_get(try) == EINA_VALUE_TYPE_ERROR)
244 {
245 Eina_Error err = EINA_ERROR_NOT_IMPLEMENTED;
246
247 if (eina_value_error_get(try, &err) && (err == EINA_ERROR_NOT_IMPLEMENTED))
248 {
249 eina_value_free(try);
250 return efl_model_property_get(pd->source, property);
251 }
252 }
253 return try;
242} 254}
243 255
244static Eina_Iterator * 256static Eina_Iterator *