diff options
author | Vitalii Vorobiov <vi.vorobiov@samsung.com> | 2016-06-15 12:53:15 +0300 |
---|---|---|
committer | Vitalii Vorobiov <vi.vorobiov@samsung.com> | 2016-06-15 13:35:04 +0300 |
commit | c0a88e5e97327cfa363e8d06f5c85d95306cdca8 (patch) | |
tree | cbf6b1fc0f62639d0f46a3d82de76a3151ecc263 | |
parent | 3fd8322307814df177d0a6743d08f4fde3f8d26c (diff) | |
download | efl-c0a88e5e97327cfa363e8d06f5c85d95306cdca8.tar.gz |
edje_edit: save referenced groups when image id's are changed
@fix
-rw-r--r-- | src/lib/edje/edje_edit.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index 134a15cf9d..c10d1eb973 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -9217,6 +9217,7 @@ edje_edit_image_set_del(Evas_Object *obj, const char *name) { Edje_Image_Directory_Set *de = NULL, *de_last = NULL; Edje_Image_Directory_Set_Entry *dim = NULL; + Eet_File *eetf; unsigned int i, j, k; Eina_List *used; Eina_Iterator *it; @@ -9252,6 +9253,14 @@ edje_edit_image_set_del(Evas_Object *obj, const char *name) --ed->file->image_dir->sets_count; + /* open the eet file */ + eetf = eet_open(ed->path, EET_FILE_MODE_READ_WRITE); + if (!eetf) + { + ERR("Unable to open \"%s\" for writing output", ed->path); + return EINA_FALSE; + } + if (de_last->id != de->id) { Edje_Part *part; @@ -9286,6 +9295,11 @@ edje_edit_image_set_del(Evas_Object *obj, const char *name) } } } + if (!_edje_edit_collection_save(eetf, pce->ref)) + { + eet_close(eetf); + return EINA_FALSE; + } } eina_iterator_free(it); } @@ -9293,6 +9307,8 @@ edje_edit_image_set_del(Evas_Object *obj, const char *name) sizeof(Edje_Image_Directory_Set_Entry) * ed->file->image_dir->sets_count); + eet_close(eetf); + return EINA_TRUE; } @@ -9651,6 +9667,7 @@ edje_edit_image_replace(Evas_Object *obj, const char *name, const char *new_name Eina_Iterator *it; Edje_Part_Collection_Directory_Entry *pce; Edje_Part *part; + Eet_File *eetf; Edje_Part_Description_Image *part_desc_image; unsigned int i, j, k; int image_id, new_image_id; @@ -9664,6 +9681,14 @@ edje_edit_image_replace(Evas_Object *obj, const char *name, const char *new_name it = eina_hash_iterator_data_new(ed->file->collection); + /* open the eet file */ + eetf = eet_open(ed->path, EET_FILE_MODE_READ_WRITE); + if (!eetf) + { + ERR("Unable to open \"%s\" for writing output", ed->path); + return EINA_FALSE; + } + EINA_ITERATOR_FOREACH(it, pce) { for (i = 0; i < pce->ref->parts_count; i++) @@ -9687,10 +9712,17 @@ edje_edit_image_replace(Evas_Object *obj, const char *name, const char *new_name part_desc_image->image.id = new_image_id; } } + if (!_edje_edit_collection_save(eetf, pce->ref)) + { + eet_close(eetf); + return EINA_FALSE; + } } } eina_iterator_free(it); + eet_close(eetf); + return EINA_TRUE; } @@ -9946,6 +9978,11 @@ edje_edit_image_del(Evas_Object *obj, const char *name) } } } + if (!_edje_edit_collection_save(eetf, pce->ref)) + { + eet_close(eetf); + return EINA_FALSE; + } } eina_iterator_free(it); } |