summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitalii Vorobiov <vi.vorobiov@samsung.com>2016-06-15 12:53:15 +0300
committerVitalii Vorobiov <vi.vorobiov@samsung.com>2016-06-15 13:35:04 +0300
commitc0a88e5e97327cfa363e8d06f5c85d95306cdca8 (patch)
treecbf6b1fc0f62639d0f46a3d82de76a3151ecc263
parent3fd8322307814df177d0a6743d08f4fde3f8d26c (diff)
downloadefl-c0a88e5e97327cfa363e8d06f5c85d95306cdca8.tar.gz
edje_edit: save referenced groups when image id's are changed
@fix
-rw-r--r--src/lib/edje/edje_edit.c37
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);
}