rimmed pushed a commit to branch master.

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

commit e0356bc2e0a919baf19edd6c7c55f966ee30f0c4
Author: Vitalii Vorobiov <vi.vorob...@samsung.com>
Date:   Fri Dec 18 13:34:50 2015 +0200

    property_group: history add and del of tweens
---
 src/bin/ui/property_group.c | 67 ++++++++++++++++++++++++++++++---------------
 1 file changed, 45 insertions(+), 22 deletions(-)

diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c
index 26daacd..fd69078 100644
--- a/src/bin/ui/property_group.c
+++ b/src/bin/ui/property_group.c
@@ -433,6 +433,9 @@ prop_part_item_padding_update(Group_Prop_Data *pd);
 static void
 prop_state_proxy_source_update(Group_Prop_Data *pd);
 
+static void
+prop_item_state_image_tween_update(Evas_Object *tween, Group_Prop_Data *pd);
+
 static Elm_Gengrid_Item_Class *_itc_tween = NULL;
 
 static void
@@ -878,7 +881,7 @@ _on_editor_attribute_changed(void *data,
          STATE_ATTR_1COMBOBOX_LIST_UPDATE(state_fill, type, state_fill);
          break;
       case ATTRIBUTE_STATE_IMAGE_TWEEN:
-/*         
prop_item_state_image_tween_update(pd->attributes.state_image.tween, pd); */
+         prop_item_state_image_tween_update(pd->attributes.state_image.tween, 
pd);
          break;
          /* Don't add 'default:'. Compiler must warn about missing cases */
      }
@@ -2905,20 +2908,35 @@ _del_tween_image(void *data,
                  void *event_info __UNUSED__)
 {
    Evas_Object *tween_list = (Evas_Object *)data;
-   Elm_Object_Item *it = elm_gengrid_selected_item_get(tween_list);
-   Eina_Stringshare *selected  = elm_object_item_data_get(it);
+   const Eina_List *sel_list = elm_gengrid_selected_items_get(tween_list), *l;
+   Eina_List *selected = NULL;
+   Elm_Object_Item *it;
+   const char *name;
    Group_Prop_Data *pd = evas_object_data_get(tween_list, GROUP_PROP_DATA);
 
    assert(pd != NULL);
 
-   if ((!selected) || (!it) || (!pd)) return;
-   if (edje_edit_state_tween_del(pd->group->edit_object, pd->part->name,
-                                 pd->part->current_state->parsed_name, 
pd->part->current_state->parsed_val,
-                                 selected))
+   EINA_LIST_FOREACH(sel_list, l, it)
+     {
+        name = elm_object_item_data_get(it);
+        selected = eina_list_append(selected, eina_stringshare_add(name));
+     }
+
+   Eina_Stringshare *msg = eina_stringshare_printf(_("removed %d tween 
images"),
+                                                   eina_list_count(sel_list));
+   Change *change = change_add(msg);
+   eina_stringshare_del(msg);
+   EINA_LIST_FOREACH(selected, l, name)
      {
-        elm_object_item_del(it);
-        //project_changed(false);
+        editor_state_tween_del(pd->group->edit_object, change, false,
+                               pd->part->name,
+                               pd->part->current_state->parsed_name,
+                               pd->part->current_state->parsed_val,
+                               name);
+        eina_stringshare_del(name);
      }
+   eina_list_free(selected);
+   history_change_add(pd->group->history, change);
 }
 
 Eina_Bool
@@ -2935,18 +2953,20 @@ _on_image_editor_tween_done(void *data,
    assert(pd != NULL);
 
    if (!selected) return false;
-
+   Eina_Stringshare *msg = eina_stringshare_printf(_("added %d tween images"),
+                                                   eina_list_count(selected));
+   Change *change = change_add(msg);
+   eina_stringshare_del(msg);
    EINA_LIST_FOREACH(selected, l, name)
      {
-        if (edje_edit_state_tween_add(pd->group->edit_object, pd->part->name,
-                                      pd->part->current_state->parsed_name,
-                                      pd->part->current_state->parsed_val, 
name))
-          {
-             elm_gengrid_item_append(tween_list, _itc_tween,
-                                     eina_stringshare_add(name), NULL, NULL);
-             //project_changed(false);
-          }
+        editor_state_tween_add(pd->group->edit_object, change, false,
+                               pd->part->name,
+                               pd->part->current_state->parsed_name,
+                               pd->part->current_state->parsed_val,
+                               eina_stringshare_add(name));
      }
+   history_change_add(pd->group->history, change);
+
    return true;
 }
 
@@ -3079,6 +3099,7 @@ prop_item_state_image_tween_add(Evas_Object *box, 
Group_Prop_Data *pd)
    elm_gengrid_item_size_set(tween_list, 96, 111);
    elm_gengrid_align_set(tween_list, 0.0, 0.0);
    elm_gengrid_horizontal_set(tween_list, true);
+   elm_gengrid_multi_select_set(tween_list, true);
 
    evas_object_data_set(tween_list, GROUP_PROP_DATA, pd);
 
@@ -3134,8 +3155,9 @@ prop_item_state_image_tween_update(Evas_Object *tween, 
Group_Prop_Data *pd)
    assert(tween != NULL);
    assert(pd != NULL);
 
-   tween_list = elm_object_content_get(tween);
-   elm_genlist_clear(tween_list);
+   /* Tween_List -> Item(Layout) -> Frame(Tween) */
+   tween_list = elm_object_content_get(elm_object_content_get(tween));
+   elm_gengrid_clear(tween_list);
    images_list = edje_edit_state_tweens_list_get(pd->group->edit_object,
                                                  pd->part->name,
                                                  
pd->part->current_state->parsed_name,
@@ -3145,10 +3167,11 @@ prop_item_state_image_tween_update(Evas_Object *tween, 
Group_Prop_Data *pd)
 
    EINA_LIST_FOREACH(images_list, l, image_name)
      {
-       elm_genlist_item_append(tween_list, _itc_tween, image_name, NULL,
-                               ELM_GENLIST_ITEM_NONE, NULL, NULL);
+        elm_gengrid_item_append(tween_list, _itc_tween,
+                                eina_stringshare_add(image_name), NULL, NULL);
      }
    edje_edit_string_list_free(images_list);
+   evas_object_show(tween_list);
 }
 
 #define SPINNER_SET(SUB, VALUE, SPINNER, PART) \

-- 


Reply via email to