rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=8bb820a0f4a8c09fc62ae7d8898a5bf3a7f0043f
commit 8bb820a0f4a8c09fc62ae7d8898a5bf3a7f0043f Author: Vitalii Vorobiov <vi.vorob...@samsung.com> Date: Fri Jul 24 15:50:01 2015 +0300 Live View Property: part rename implementation This is last function that is required for normal work. TODO: - Some documentation --- src/bin/ui/connector.c | 9 ++++++--- src/bin/ui/live_view/live_view_prop.c | 33 +++++++++++++++++++++++++++++++-- src/bin/ui/workspace/ui_workspace.c | 2 +- 3 files changed, 38 insertions(+), 6 deletions(-) diff --git a/src/bin/ui/connector.c b/src/bin/ui/connector.c index 05cb298..a486205 100644 --- a/src/bin/ui/connector.c +++ b/src/bin/ui/connector.c @@ -515,13 +515,16 @@ _add_style_dailog(void *data, static void _part_name_change(void *data, Evas_Object *obj __UNUSED__, void *event_info) { - const char *part = (const char *)event_info; + const char *new_name = (const char *)event_info; App_Data *ap = (App_Data *)data; assert(ap != NULL); - assert(part != NULL); + assert(new_name != NULL); + + Part *part = ui_widget_list_selected_part_get(ui_block_widget_list_get(ap)); - ui_widget_list_part_update(ui_block_widget_list_get(ap), part); + live_view_part_rename(ap->live_view, part, new_name); + ui_widget_list_part_update(ui_block_widget_list_get(ap), part->name); } static void diff --git a/src/bin/ui/live_view/live_view_prop.c b/src/bin/ui/live_view/live_view_prop.c index 72e468f..0111c8c 100644 --- a/src/bin/ui/live_view/live_view_prop.c +++ b/src/bin/ui/live_view/live_view_prop.c @@ -517,9 +517,38 @@ live_view_property_part_del(Evas_Object *property, Part *part) } Eina_Bool -live_view_property_part_rename(Evas_Object *property __UNUSED__, Part *part __UNUSED__, Eina_Stringshare *new_name __UNUSED__) +live_view_property_part_rename(Evas_Object *property, Part *part, Eina_Stringshare *new_name) { - printf("Signal: rename part name from [%s] to [%s] \n", part->name, new_name); + Evas_Object *item_box = NULL, *check; + Eina_List *items_list, *l; + PROP_DATA_GET(); + Eina_Stringshare *part_name; + + if ((part->type != EDJE_PART_TYPE_TEXT) && + (part->type != EDJE_PART_TYPE_TEXTBLOCK) && + (part->type != EDJE_PART_TYPE_SWALLOW)) + return false; + + if (part->type == EDJE_PART_TYPE_SWALLOW) + item_box = pd->prop_swallow.swallows; + else if ((part->type == EDJE_PART_TYPE_TEXT) || + (part->type == EDJE_PART_TYPE_TEXTBLOCK)) + item_box = pd->prop_text.texts; + + /* Now lets restack this. + We need to find moving check and check we need to move above */ + assert(item_box != NULL); + items_list = elm_box_children_get(item_box); + EINA_LIST_FOREACH(items_list, l, check) + { + part_name = elm_object_part_text_get(check, NULL); + if (!strcmp(part_name, part->name)) + { + elm_object_part_text_set(check, NULL, new_name); + break; + } + } + return true; } diff --git a/src/bin/ui/workspace/ui_workspace.c b/src/bin/ui/workspace/ui_workspace.c index ee0e135..a95951d 100644 --- a/src/bin/ui/workspace/ui_workspace.c +++ b/src/bin/ui/workspace/ui_workspace.c @@ -1342,7 +1342,7 @@ workspace_edit_object_part_rename(Evas_Object *obj, ret = groupedit_edit_object_part_rename(sd->groupedit, old_name, new_name); if (ret) - evas_object_smart_callback_call(obj, "part,name,changed", (void *)old_name); + evas_object_smart_callback_call(obj, "part,name,changed", (void *)new_name); return ret; } --