cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c96c9a5b83930b855ce0c42db60826a4379c1cb6

commit c96c9a5b83930b855ce0c42db60826a4379c1cb6
Author: Cedric BAIL <[email protected]>
Date:   Sun Apr 28 10:58:41 2019 -0700

    ecore: enable property reflection support in Efl.CompositeModel.
    
    Reviewed-by: Marcel Hollerbach <[email protected]>
    Differential Revision: https://phab.enlightenment.org/D8754
---
 src/lib/ecore/efl_composite_model.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

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 *
 _efl_composite_model_efl_model_property_get(const Eo *obj EINA_UNUSED, 
Efl_Composite_Model_Data *pd,
                                             const char *property)
 {
+   Eina_Value *try;
    if (pd->need_index && !strcmp(property, EFL_COMPOSITE_MODEL_CHILD_INDEX))
      {
         if (pd->set_index)
           return eina_value_uint_new(pd->index);
         return eina_value_error_new(EAGAIN);
      }
-   return efl_model_property_get(pd->source, property);
+   try = efl_model_property_get(efl_super(obj, EFL_COMPOSITE_MODEL_CLASS), 
property);
+   if (eina_value_type_get(try) == EINA_VALUE_TYPE_ERROR)
+     {
+        Eina_Error err = EINA_ERROR_NOT_IMPLEMENTED;
+
+        if (eina_value_error_get(try, &err) && (err == 
EINA_ERROR_NOT_IMPLEMENTED))
+          {
+             eina_value_free(try);
+             return efl_model_property_get(pd->source, property);
+          }
+     }
+   return try;
 }
 
 static Eina_Iterator *

-- 


Reply via email to