rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=56d825d603973225b5d9486a8de4e270910265ee
commit 56d825d603973225b5d9486a8de4e270910265ee Author: Vitalii Vorobiov <vi.vorob...@samsung.com> Date: Mon Sep 12 17:39:50 2016 +0300 resource_manager2: programs, styles, colorclass resources dependencty update --- src/bin/editor/editor_text.c | 11 +++- src/bin/resource_manager/resource_manager_react.c | 73 +++++++++++++++++++++-- 2 files changed, 79 insertions(+), 5 deletions(-) diff --git a/src/bin/editor/editor_text.c b/src/bin/editor/editor_text.c index 03a8243..6335efc 100644 --- a/src/bin/editor/editor_text.c +++ b/src/bin/editor/editor_text.c @@ -96,9 +96,14 @@ editor_state_text_set(Evas_Object *edit_object, Change *change, Eina_Bool merge, assert(edit_object != NULL); assert(part_name != NULL); assert(state_name != NULL); + Eina_Stringshare *old_value = edje_edit_state_text_get(edit_object, part_name, state_name, state_val); + send.part_name = eina_stringshare_add(part_name); + send.state_name = eina_stringshare_add(state_name); + send.state_value = state_val; + send.old_value = eina_stringshare_add(old_value); + send.value = eina_stringshare_add(new_val); if (change) { - Eina_Stringshare *old_value = edje_edit_state_text_get(edit_object, part_name, state_name, state_val); diff = mem_calloc(1, sizeof(Diff)); diff->redo.type = FUNCTION_TYPE_STRING_STRING_DOUBLE_STRING; diff->redo.function = editor_state_text_set; @@ -123,5 +128,9 @@ editor_state_text_set(Evas_Object *edit_object, Change *change, Eina_Bool merge, _editor_project_changed(); if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, SIGNAL_EDITOR_RM_ATTRIBUTE_CHANGED, &send); } + eina_stringshare_del(send.part_name); + eina_stringshare_del(send.state_name); + eina_stringshare_del(send.old_value); + eina_stringshare_del(send.value); return true; } diff --git a/src/bin/resource_manager/resource_manager_react.c b/src/bin/resource_manager/resource_manager_react.c index e35e91d..e0b6fa4 100644 --- a/src/bin/resource_manager/resource_manager_react.c +++ b/src/bin/resource_manager/resource_manager_react.c @@ -90,6 +90,7 @@ _property_attribute_changed(void *data, *********************************************************************** ***********************************************************************/ Resource2 *part, *state, *source, *old_source, *item, *program; + Eina_Stringshare *tmp_value; Editor_Attribute_Change *change = (Editor_Attribute_Change *)event_info; Attribute editor_resource = (int)change->attribute; @@ -146,7 +147,6 @@ _property_attribute_changed(void *data, case RM_ATTRIBUTE_STATE_REL2_TO_Y: case RM_ATTRIBUTE_STATE_TEXT: case RM_ATTRIBUTE_STATE_FONT: - case RM_ATTRIBUTE_STATE_TEXT_STYLE: case RM_ATTRIBUTE_STATE_ASPECT_PREF: case RM_ATTRIBUTE_PART_TEXT_EFFECT: case RM_ATTRIBUTE_PART_TEXT_SHADOW_DIRECTION: @@ -182,7 +182,6 @@ _property_attribute_changed(void *data, case RM_ATTRIBUTE_STATE_IMAGE_BORDER_LEFT: case RM_ATTRIBUTE_STATE_IMAGE_BORDER_RIGHT: case RM_ATTRIBUTE_STATE_IMAGE_BORDER_FILL: - case RM_ATTRIBUTE_STATE_COLOR_CLASS: case RM_ATTRIBUTE_STATE_MAP_ON: case RM_ATTRIBUTE_STATE_MAP_PERSPECTIVE_ON: case RM_ATTRIBUTE_STATE_MAP_PERSPECTIVE: @@ -216,6 +215,72 @@ _property_attribute_changed(void *data, case RM_ATTRIBUTE_PART_ITEM_PADDING_TOP: case RM_ATTRIBUTE_PART_ITEM_PADDING_BOTTOM: break; + case RM_ATTRIBUTE_PROGRAM_SAMPLE_NAME: + program = resource_manager_find(group->programs, change->program_name); + + if (change->old_value && strcmp(change->old_value, EFLETE_DUMMY_SAMPLE_NAME)) + { + old_source = resource_manager_find(pro->RM.sounds, change->old_value); + _resource_usage_resource_del(program, old_source); + } + + if (change->value && strcmp(change->value, EFLETE_DUMMY_SAMPLE_NAME)) + { + source = resource_manager_find(pro->RM.sounds, change->value); + _resource_usage_resource_add(program, source); + } + break; + case RM_ATTRIBUTE_PROGRAM_TONE_NAME: + program = resource_manager_find(group->programs, change->program_name); + + if (change->old_value && strcmp(change->old_value, "")) + { + old_source = resource_manager_find(pro->RM.tones, change->old_value); + _resource_usage_resource_del(program, old_source); + } + + if (change->value && strcmp(change->value, "")) + { + source = resource_manager_find(pro->RM.tones, change->value); + _resource_usage_resource_add(program, source); + } + break; + case RM_ATTRIBUTE_STATE_TEXT_STYLE: + case RM_ATTRIBUTE_STATE_COLOR_CLASS: + part = resource_manager_find(group->parts, change->part_name); + state = resource_manager_v_find(((Part2 *)part)->states, change->state_name, change->state_value); + + if (change->old_value) + { + old_source = resource_manager_find(pro->RM.styles, change->old_value); + _resource_usage_resource_del(state, old_source); + } + + if (change->value) + { + source = resource_manager_find(pro->RM.styles, change->value); + _resource_usage_resource_add(state, source); + } + break; + case RM_ATTRIBUTE_PROGRAM_FILTER_STATE: + program = resource_manager_find(group->programs, change->program_name); + + tmp_value = edje_edit_program_filter_part_get(group->edit_object, change->program_name); + part = resource_manager_find(group->parts, tmp_value); + edje_edit_string_free(tmp_value); + + if (change->old_value) + { + old_source = resource_manager_find(((Part2 *)part)->states, change->old_value); + _resource_usage_resource_del(program, old_source); + } + + if (change->value) + { + source = resource_manager_find(((Part2 *)part)->states, change->value); + _resource_usage_resource_add(program, source); + } + break; case RM_ATTRIBUTE_PROGRAM_FILTER_PART: program = resource_manager_find(group->programs, change->program_name); @@ -235,7 +300,7 @@ _property_attribute_changed(void *data, case RM_ATTRIBUTE_STATE_TEXT_SOURCE: case RM_ATTRIBUTE_STATE_TEXT_TEXT_SOURCE: part = resource_manager_find(group->parts, change->part_name); - state = resource_manager_v_find(((Part *)part)->states, change->state_name, change->state_value); + state = resource_manager_v_find(((Part2 *)part)->states, change->state_name, change->state_value); if (change->old_value) { @@ -251,7 +316,7 @@ _property_attribute_changed(void *data, break; case RM_ATTRIBUTE_PART_ITEM_SOURCE: part = resource_manager_find(group->parts, change->part_name); - item = resource_manager_find(((Part *)part)->items, change->item_name); + item = resource_manager_find(((Part2 *)part)->items, change->item_name); /* if old_valuye wasn't null and wasn't compared to EFLETE_INTERNAL_GROUP_NAME */ if (change->old_value && strcmp(change->old_value, EFLETE_INTERNAL_GROUP_NAME)) --