rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=5627f50123fab7a15de6f51fa1a18464cfc600cd
commit 5627f50123fab7a15de6f51fa1a18464cfc600cd Author: Andrii Kroitor <an.kroi...@samsung.com> Date: Thu Nov 5 12:26:55 2015 +0200 part_list: use editor api to add states --- src/bin/ui/part_list.c | 54 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/src/bin/ui/part_list.c b/src/bin/ui/part_list.c index 9eaf331..a6cbcdf 100644 --- a/src/bin/ui/part_list.c +++ b/src/bin/ui/part_list.c @@ -25,6 +25,7 @@ #include "string_common.h" #include "main_window.h" #include "editor.h" +#include "new_history.h" #define PART_LIST_DATA "part_list_data" @@ -605,11 +606,9 @@ _popup_add_state_ok_clicked(void *data, const char *name; double val; Part_ *part; - State *state, *state_from; - Eina_Stringshare *full_state_name; - Elm_Object_Item *glit; - const Eina_List *l; - Eina_Bool items_expanded = false; + State *state_from; + Eina_Stringshare *msg; + Change *change; assert(pl != NULL); @@ -621,20 +620,46 @@ _popup_add_state_ok_clicked(void *data, item = ewe_combobox_select_item_get(pl->popup.combobox_dup); if (item->index == 0) { - edje_edit_state_add(pl->group->edit_object, part->name, name, val); - /* if (type == EDJE_PART_IMAGE) */ - TODO("Add noimage here") + msg = eina_stringshare_printf(_("added new state \"%s\" %.2f"), name, val); + change = change_add(msg); + editor_state_add(pl->group->edit_object, change, false, + part->name, name, val); } else { state_from = pm_resource_get(part->states, item->title); - edje_edit_state_copy(pl->group->edit_object, part->name, - state_from->parsed_name, state_from->parsed_val, - name, val); + msg = eina_stringshare_printf(_("added new state \"%s\" %.2f as copy of \"%s\" %.2f"), + name, val, state_from->parsed_name, state_from->parsed_val); + change = change_add(msg); + editor_state_copy(pl->group->edit_object, change, false, + part->name, + state_from->parsed_name, state_from->parsed_val, + name, val); } - full_state_name = eina_stringshare_printf("%s %.2f", name, val); + + history_change_add(pl->group->history, change); + eina_stringshare_del(msg); + ecore_job_add(_job_popup_del, pl); +} + +static void +_editor_state_added_cb(void *data, + Evas_Object *obj __UNUSED__, + void *event_info) +{ + Part_List *pl = data; + Eina_Stringshare *full_state_name = event_info; + Part_ *part; + State *state; + Eina_Bool items_expanded = false; + Elm_Object_Item *glit; + const Eina_List *l; + + assert(pl != NULL); + assert(full_state_name != NULL); + + part = elm_object_item_data_get(pl->selected_part_item); state = gm_state_add(ap.project, part, full_state_name); - eina_stringshare_del(full_state_name); /* callback should be called before selection to allow some additional loading */ evas_object_smart_callback_call(ap.win, SIGNAL_STATE_ADDED, (void *)state); @@ -662,7 +687,6 @@ _popup_add_state_ok_clicked(void *data, break; } } - ecore_job_add(_job_popup_del, pl); } static void @@ -912,6 +936,8 @@ part_list_add(Group *group) pl->name_validator = elm_validator_regexp_new(NAME_REGEX, NULL); + evas_object_smart_callback_add(ap.win, SIGNAL_EDITOR_STATE_ADDED, _editor_state_added_cb, pl); + TODO("Add deletion callback and free resources"); return pl->layout; } --