rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=649c528ab5b3aef5380d1813cfc987fba90714b4

commit 649c528ab5b3aef5380d1813cfc987fba90714b4
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Tue Jan 17 17:09:42 2017 +0200

    Editor: add proxy for edje_edit_image_set_set API.
    
    Added signal SIGNAL_EDITOR_IMAGE_SET_IMAGE_DEL for make possible
    communication between resource manager and editor modules.
    This signal will be emmited when image will be deleted
    from image set.
    Implemented editor API and resource manager reaction.
---
 src/bin/common/signals.h                          |  7 ++++
 src/bin/editor/editor.h                           |  3 ++
 src/bin/editor/editor_top_level.c                 | 40 +++++++++++++++++++++++
 src/bin/resource_manager/resource_manager_react.c | 18 ++++++++++
 4 files changed, 68 insertions(+)

diff --git a/src/bin/common/signals.h b/src/bin/common/signals.h
index 956c712..0959130 100644
--- a/src/bin/common/signals.h
+++ b/src/bin/common/signals.h
@@ -595,6 +595,13 @@ typedef struct {
  */
 #define SIGNAL_EDITOR_IMAGE_SET_IMAGE_ADD "SIGNAL_EDITOR_IMAGE_SET_IMAGE_ADD"
 
+/**
+ * emited on delete image from image set
+ * eventinfo - Image_Set_Change struct
+ *
+ * @ingroup Window
+ */
+#define SIGNAL_EDITOR_IMAGE_SET_IMAGE_DEL "SIGNAL_EDITOR_IMAGE_SET_IMAGE_DEL"
 
 /**
  * emited when textblock style is added.
diff --git a/src/bin/editor/editor.h b/src/bin/editor/editor.h
index d190cc2..c67cac4 100644
--- a/src/bin/editor/editor.h
+++ b/src/bin/editor/editor.h
@@ -298,6 +298,9 @@ Eina_Bool
 editor_image_set_image_add(Evas_Object *obj, const char *image_set_name, const 
char *image, Eina_Bool notify) EINA_WARN_UNUSED_RESULT;
 
 Eina_Bool
+editor_image_set_image_del(Evas_Object *obj, const char *image_set_name, const 
char *image, Eina_Bool notify) EINA_WARN_UNUSED_RESULT;
+
+Eina_Bool
 editor_image_set_image_border_left_set(Evas_Object *obj, const char *name, int 
position, int l) EINA_WARN_UNUSED_RESULT;
 
 Eina_Bool
diff --git a/src/bin/editor/editor_top_level.c 
b/src/bin/editor/editor_top_level.c
index 50d8298..dde9251 100644
--- a/src/bin/editor/editor_top_level.c
+++ b/src/bin/editor/editor_top_level.c
@@ -122,6 +122,46 @@ editor_image_set_image_add(Evas_Object *obj, const char 
*image_set_name, const c
    return true;
 }
 
+Eina_Bool
+editor_image_set_image_del(Evas_Object *obj, const char *image_set_name, const 
char *image_name, Eina_Bool notify)
+{
+   assert(obj != NULL);
+   assert(image_set_name != NULL);
+
+   Image_Set_Change send;
+   Eina_List *images = NULL, *l = NULL;
+   int pos = 0;
+   const char *name = NULL;
+
+   images = edje_edit_image_set_images_list_get(obj, image_set_name);
+   EINA_LIST_FOREACH(images, l, name)
+     {
+        if (!strcmp(image_name, name))
+          break;
+        pos++;
+     }
+
+
+   if (!edje_edit_image_set_image_del(obj, image_set_name, pos))
+     return false;
+
+   if (!editor_save_all(obj))
+     return false;
+   _editor_project_changed();
+
+   if (notify)
+     {
+        send.set_name = eina_stringshare_add(image_set_name);
+        send.image_position = pos;
+        send.image_name = eina_stringshare_add(image_name);
+        evas_object_smart_callback_call(ap.win, 
SIGNAL_EDITOR_IMAGE_SET_IMAGE_DEL, &send);
+        eina_stringshare_del(send.set_name);
+        eina_stringshare_del(send.image_name);
+     }
+
+   return true;
+}
+
 inline static Eina_Bool
 _image_set_image_attribute_save(Evas_Object *obj, 
Editor_Attribute_Resource_Change *send)
 {
diff --git a/src/bin/resource_manager/resource_manager_react.c 
b/src/bin/resource_manager/resource_manager_react.c
index 0f06b62..1423386 100644
--- a/src/bin/resource_manager/resource_manager_react.c
+++ b/src/bin/resource_manager/resource_manager_react.c
@@ -680,6 +680,22 @@ _image_set_image_add(void *data,
 }
 
 static void
+_image_set_image_del(void *data,
+                     Evas_Object *obj __UNUSED__,
+                     void *ei)
+{
+   Image_Set2 *image_set_res;
+   Image2 *image_res;
+   Image_Set_Change *change = (Image_Set_Change *)ei;
+   Project *pro = (Project *)data;
+
+   image_set_res = (Image_Set2 *)resource_manager_find(pro->RM.image_sets, 
change->set_name);
+   image_res = (Image2 *)resource_manager_find(pro->RM.images, 
change->image_name);
+
+   _resource_usage_resource_del((Resource2 *)image_set_res, (Resource2 
*)image_res);
+}
+
+static void
 _style_added(void *data,
              Evas_Object *obj __UNUSED__,
              void *ei)
@@ -986,6 +1002,7 @@ _resource_callbacks_register(Project *project)
    evas_object_smart_callback_add(ap.win,  SIGNAL_EDITOR_IMAGE_SET_ADDED, 
_image_set_added, project);
    evas_object_smart_callback_add(ap.win,  SIGNAL_EDITOR_IMAGE_SET_DELETED, 
_image_set_deleted, project);
    evas_object_smart_callback_add(ap.win,  SIGNAL_EDITOR_IMAGE_SET_IMAGE_ADD, 
_image_set_image_add, project);
+   evas_object_smart_callback_add(ap.win,  SIGNAL_EDITOR_IMAGE_SET_IMAGE_DEL, 
_image_set_image_del, project);
    evas_object_smart_callback_add(ap.win,  SIGNAL_EDITOR_STYLE_ADDED, 
_style_added, project);
    evas_object_smart_callback_add(ap.win,  SIGNAL_EDITOR_STYLE_DELETED, 
_style_deleted, project);
    evas_object_smart_callback_add(ap.win,  SIGNAL_EDITOR_STYLE_TAG_CHANGED, 
_style_changed, project);
@@ -1024,6 +1041,7 @@ _resource_callbacks_unregister(Project *project)
    evas_object_smart_callback_del_full(ap.win,  SIGNAL_EDITOR_IMAGE_SET_ADDED, 
_image_set_added, project);
    evas_object_smart_callback_del_full(ap.win,  
SIGNAL_EDITOR_IMAGE_SET_DELETED, _image_set_deleted, project);
    evas_object_smart_callback_del_full(ap.win,  
SIGNAL_EDITOR_IMAGE_SET_IMAGE_ADD, _image_set_image_add, project);
+   evas_object_smart_callback_del_full(ap.win,  
SIGNAL_EDITOR_IMAGE_SET_IMAGE_DEL, _image_set_image_del, project);
    evas_object_smart_callback_del_full(ap.win,  SIGNAL_EDITOR_STYLE_ADDED, 
_style_added, project);
    evas_object_smart_callback_del_full(ap.win,  SIGNAL_EDITOR_STYLE_DELETED, 
_style_deleted, project);
    evas_object_smart_callback_del_full(ap.win,  
SIGNAL_EDITOR_STYLE_TAG_CHANGED, _style_changed, project);

-- 


Reply via email to