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))

-- 


Reply via email to