From 4ad20ac8e40a97ffcbb4851e75d243c3d3055e7e Mon Sep 17 00:00:00 2001 From: Andrii Kroitor Date: Fri, 6 Mar 2015 19:16:06 +0100 Subject: [PATCH] edje: Edje_Edit - fix part alias source generation. Summary: generating correct part alias string 'alias: "theme_part_path" "real_part_path";' @fix Reviewers: cedric, seoz, Hermet, raster Subscribers: cedric, reutskiy.v.v Differential Revision: https://phab.enlightenment.org/D2096 Signed-off-by: Cedric BAIL --- src/lib/edje/edje_edit.c | 14 +++++++++----- src/lib/edje/edje_load.c | 2 +- src/lib/edje/edje_private.h | 1 + 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index 2ea12c5a50..5687e3e9d9 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -11426,6 +11426,9 @@ _edje_generate_source_of_group(Edje *ed, Edje_Part_Collection_Directory_Entry *p Eina_List *alias_list = NULL; const char *alias; Eina_Iterator *it; + int len; + char *tmp_alias; + const char* aliased; obj = edje_edit_object_add(ed->base->evas); if (!edje_object_file_set(obj, ed->file->path, group)) return EINA_FALSE; @@ -11507,13 +11510,14 @@ _edje_generate_source_of_group(Edje *ed, Edje_Part_Collection_Directory_Entry *p BUF_APPEND(I2"parts {\n"); if ((pc->aliased) && (pc->alias)) { - it = eina_hash_iterator_data_new(pc->aliased); - EINA_ITERATOR_FOREACH(it, alias) - BUF_APPENDF(I3"alias: \"%s\" ", alias); - eina_iterator_free(it); it = eina_hash_iterator_data_new(pc->alias); EINA_ITERATOR_FOREACH(it, alias) - BUF_APPENDF("\"%s\";\n", alias); + { + tmp_alias = strdup(alias); + aliased = _edje_find_alias(pc->aliased, tmp_alias, &len); + BUF_APPENDF(I3"alias: \"%s\" \"%s\";\n", aliased, alias); + free(tmp_alias); + } eina_iterator_free(it); } for (i = 0; i < pc->parts_count; i++) diff --git a/src/lib/edje/edje_load.c b/src/lib/edje/edje_load.c index 22eed37232..3124151642 100644 --- a/src/lib/edje/edje_load.c +++ b/src/lib/edje/edje_load.c @@ -1809,7 +1809,7 @@ _edje_object_pack_item_hints_set(Evas_Object *obj, Edje_Pack_Element *it) evas_object_resize(obj, w, h); } -static const char * +const char * _edje_find_alias(Eina_Hash *aliased, char *src, int *length) { const char *alias; diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index 906dca5fba..678421b19d 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -2255,6 +2255,7 @@ void _edje_color_class_on_del(Edje *ed, Edje_Part *ep); void _edje_color_class_members_free(void); void _edje_color_class_hash_free(void); +const char * _edje_find_alias(Eina_Hash *aliased, char *src, int *length); Edje_Text_Class *_edje_text_class_find(Edje *ed, const char *text_class); void _edje_text_class_member_add(Edje *ed, const char *text_class); void _edje_text_class_member_del(Edje *ed, const char *text_class);