rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=0e4c5c9f97650e6bcc3b833d24520992792c32a0

commit 0e4c5c9f97650e6bcc3b833d24520992792c32a0
Author: Vitalii Vorobiov <[email protected]>
Date:   Mon Sep 5 18:00:35 2016 +0300

    resource_manager2: to avoid edje_edit use pass source together with editor 
signal
    
    That is For part_item
    
    @fix
---
 src/bin/common/signals.h                          | 1 +
 src/bin/editor/editor_part.c                      | 2 ++
 src/bin/resource_manager/resource_manager2.c      | 8 ++++++--
 src/bin/resource_manager/resource_manager2.h      | 1 +
 src/bin/resource_manager/resource_manager_build.c | 1 +
 src/bin/resource_manager/resource_manager_react.c | 8 ++++++--
 6 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/src/bin/common/signals.h b/src/bin/common/signals.h
index 893ecd5..9ff0553 100644
--- a/src/bin/common/signals.h
+++ b/src/bin/common/signals.h
@@ -166,6 +166,7 @@ typedef struct {
 typedef struct {
    const char *part_name;
    const char *item_name;
+   const char *source;
 } Editor_Item;
 /**
  * emited when item is added in editor.
diff --git a/src/bin/editor/editor_part.c b/src/bin/editor/editor_part.c
index 52d3848..7164e51 100644
--- a/src/bin/editor/editor_part.c
+++ b/src/bin/editor/editor_part.c
@@ -679,9 +679,11 @@ editor_part_item_append(Evas_Object *edit_object, Change 
*change, Eina_Bool merg
 
         event_info.part_name = eina_stringshare_add(part_name);
         event_info.item_name = eina_stringshare_add(item_name);
+        event_info.source = eina_stringshare_add(source_group);
         if (!_editor_signals_blocked) evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_PART_ITEM_ADDED, (void *)&event_info);
         eina_stringshare_del(event_info.part_name);
         eina_stringshare_del(event_info.item_name);
+        eina_stringshare_del(event_info.source);
      }
    return true;
 }
diff --git a/src/bin/resource_manager/resource_manager2.c 
b/src/bin/resource_manager/resource_manager2.c
index 06eb206..6ebb569 100644
--- a/src/bin/resource_manager/resource_manager2.c
+++ b/src/bin/resource_manager/resource_manager2.c
@@ -106,7 +106,7 @@ _resource_free(Resource2 *res)
 void
 _resource_part_free(Part2 *res)
 {
-   Resource2 *part_res;
+   Part_Item2 *part_res;
    State2 *state;
    EINA_LIST_FREE(res->states, state)
      {
@@ -115,7 +115,11 @@ _resource_part_free(Part2 *res)
         _resource_free((Resource2 *)state);
      }
    EINA_LIST_FREE(res->items, part_res)
-      _resource_free(part_res);
+     {
+        if (part_res->source)
+          eina_stringshare_del(part_res->source);
+        _resource_free((Resource2 *)part_res);
+     }
    _resource_free((Resource2 *)res);
 }
 
diff --git a/src/bin/resource_manager/resource_manager2.h 
b/src/bin/resource_manager/resource_manager2.h
index 7d546c2..739c569 100644
--- a/src/bin/resource_manager/resource_manager2.h
+++ b/src/bin/resource_manager/resource_manager2.h
@@ -129,6 +129,7 @@ struct _State2
 struct _Part_Item2
 {
    Resource2_Internal common;
+   Eina_Stringshare *source;
    Part2 *part;
 };
 
diff --git a/src/bin/resource_manager/resource_manager_build.c 
b/src/bin/resource_manager/resource_manager_build.c
index e22dd13..34493b0 100644
--- a/src/bin/resource_manager/resource_manager_build.c
+++ b/src/bin/resource_manager/resource_manager_build.c
@@ -69,6 +69,7 @@ _item_dependency_load(Project* pro, Group2 *group, Part2 
*part, Part_Item2 *item
    Eina_Stringshare *source = 
edje_edit_part_item_source_get(group->edit_object,
                                                              part->common.name,
                                                              
item->common.name);
+   item->source = eina_stringshare_add(source);
    used = resource_manager_find(pro->groups2, source);
    if (used)
      _resource_usage_resource_add((Resource2 *)item, used);
diff --git a/src/bin/resource_manager/resource_manager_react.c 
b/src/bin/resource_manager/resource_manager_react.c
index ec32489..76b91e6 100644
--- a/src/bin/resource_manager/resource_manager_react.c
+++ b/src/bin/resource_manager/resource_manager_react.c
@@ -412,14 +412,18 @@ _editor_part_item_added_cb(void *data,
                            void *event_info)
 {
    const Editor_Item *editor_item = event_info;
+   Resource2 *used;
+   Part_Item2 *item;
    Project *pro = (Project *)data;
    Group2 *group = _get_current_group2(pro);
    Part2 *part = (Part2 *)resource_manager_find(group->parts, 
editor_item->part_name);
-   Part_Item2 *item;
    unsigned int count = eina_list_count(part->items);
 
+   /* we can use _item_dependency_load here, but let's avoid using edje edit */
    item = _gm_part_item_add(part, editor_item->item_name, count);
-   _item_dependency_load(pro, group, part, item);
+   used = resource_manager_find(pro->groups2, editor_item->source);
+   if (used)
+     _resource_usage_resource_add((Resource2 *)item, used);
 }
 
 static void

-- 


Reply via email to