yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=d8500eb65703ad93a3ac1c0975f5d09fac342d10
commit d8500eb65703ad93a3ac1c0975f5d09fac342d10 Author: Yakov Goldberg <[email protected]> Date: Wed Mar 18 11:46:15 2015 +0200 Check if GET function was implemented for PROPERTY --- src/bin/egui_gui/propview.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/bin/egui_gui/propview.c b/src/bin/egui_gui/propview.c index 39e5eb3..38e1292 100644 --- a/src/bin/egui_gui/propview.c +++ b/src/bin/egui_gui/propview.c @@ -157,7 +157,26 @@ _prop_item_content_get(void *data, Evas_Object *obj EINA_UNUSED, const char *par it_data->prop = prop_create_for_op(it_data->op_desc); const Gui_Context *ctx = _active_context_get(); Gui_Session *session = (Gui_Session *) gui_context_editor_session_get(ctx); - manager_widget_property_get(session, it_data->wdg, it_data->prop); + + /* Check if get function is implemented for this property. */ + Eolian_Function_Type func_type = db_op_desc_type_get(it_data->op_desc); + const Eolian_Class *f_klass = eolian_class_get_by_name(db_op_desc_class_name_get(it_data->op_desc)); + const Eolian_Class *w_klass = eolian_class_get_by_name(wdg_class_name_get(it_data->wdg)); + + const char *func_name = db_op_desc_op_name_get(it_data->op_desc); + + const Eolian_Function *func_id = eolian_class_function_get_by_name(f_klass, func_name, func_type); + Eina_Bool ret = eolian_function_is_implemented(func_id, func_type, w_klass); + if (ret) + { + manager_widget_property_get(session, it_data->wdg, it_data->prop); + } + else + { + ERR("Func: \"%s::%s\" was not implemented for class \"%s\"", eolian_class_name_get(f_klass), + func_name, + eolian_class_name_get(w_klass)); + } } Evas_Object * it_box = _mempool_cache_data_get(fullname); --
