rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=4a18097f690132f5f97f384fa397dc6c19a0ecf5

commit 4a18097f690132f5f97f384fa397dc6c19a0ecf5
Author: Vitalii Vorobiov <vi.vorob...@samsung.com>
Date:   Tue Jan 26 16:06:40 2016 +0000

    image_manager: disable del button if selected image is in use
    
    If multiple images selected then it enable button only if one of them
    is not used (so user can delete it)
---
 src/bin/ui/image_manager.c | 30 +++++++++++++++++++++++++-----
 1 file changed, 25 insertions(+), 5 deletions(-)

diff --git a/src/bin/ui/image_manager.c b/src/bin/ui/image_manager.c
index 0540d80..387d34a 100644
--- a/src/bin/ui/image_manager.c
+++ b/src/bin/ui/image_manager.c
@@ -35,6 +35,7 @@ struct _Item
    const char* image_name;
    const char* source;
    Edje_Edit_Image_Comp comp_type;
+   Eina_Bool is_used;
 };
 
 struct _Content_Init_Data
@@ -160,12 +161,14 @@ _grid_content_get(void *data,
      }
    else if (!strcmp(part, "elm.swallow.end"))
      {
+        it->is_used = true;
         res = (Resource *) pm_resource_get(ap.project->images, it->image_name);
         if (eina_list_count(res->used_in) == 0)
           {
              image_obj = elm_icon_add(grid);
              elm_image_file_set(image_obj, EFLETE_THEME, 
"elm/image/icon/attention");
              evas_object_show(image_obj);
+             it->is_used = false;
           }
      }
 
@@ -212,24 +215,41 @@ _grid_sel(void *data,
 {
    Image_Manager *img_mng = (Image_Manager *)data;
    Item *item = NULL;
+   Eina_List *l;
+   Eina_List *sel_list;
+   Elm_Object_Item *grid_item = NULL;
 
    assert(img_mng != NULL);
 
-   const Eina_List* sel_list = 
elm_gengrid_selected_items_get(img_mng->gengrid);
+   sel_list = (Eina_List *)elm_gengrid_selected_items_get(img_mng->gengrid);
    int selected_images_count = eina_list_count(sel_list);
 
-   if (selected_images_count == 0)
+   /* if no selected images, disable delete button */
+   if (selected_images_count != 0)
      elm_object_disabled_set(img_mng->del_button, true);
-   else
-     elm_object_disabled_set(img_mng->del_button, false);
 
    if (selected_images_count == 1)
      {
         item = elm_object_item_data_get(eina_list_data_get(sel_list));
         _image_info_setup(img_mng, item);
+        /* if selected image is not used, we can delete it */
+        if (!item->is_used)
+          elm_object_disabled_set(img_mng->del_button, false);
      }
    else
-     evas_object_smart_callback_call(ap.win, SIGNAL_IMAGE_SELECTED, NULL);
+     {
+        /* if any of those is not used, set it able to delete */
+        EINA_LIST_FOREACH(sel_list, l, grid_item)
+          {
+             item = elm_object_item_data_get(grid_item);
+             if (!item->is_used)
+               {
+                  elm_object_disabled_set(img_mng->del_button, false);
+                  break;
+               }
+          }
+        evas_object_smart_callback_call(ap.win, SIGNAL_IMAGE_SELECTED, NULL);
+     }
 }
 
 static inline Item *

-- 


Reply via email to