rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=357092657231c9b54f85250b169f439dbad1e2a7
commit 357092657231c9b54f85250b169f439dbad1e2a7 Author: Andrii Kroitor <an.kroi...@samsung.com> Date: Fri Jul 10 12:08:45 2015 +0300 project_manager: add ecore_evas buffer to project --- src/bin/project_manager/project_manager.c | 30 +++++++++++++++--------------- src/bin/project_manager/project_manager.h | 2 ++ 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/bin/project_manager/project_manager.c b/src/bin/project_manager/project_manager.c index c1f73fa..429b516 100644 --- a/src/bin/project_manager/project_manager.c +++ b/src/bin/project_manager/project_manager.c @@ -110,7 +110,8 @@ const char *top_levels[] = { "collections", } static Eina_Bool -_image_resources_export(Eina_List *images, Eina_Stringshare *destination, +_image_resources_export(Project *project, + Eina_List *images, Eina_Stringshare *destination, Eina_Stringshare *source, Eina_Stringshare *dev, Evas_Object *edje_edit); @@ -338,7 +339,6 @@ _project_linked_images_copy(Project_Thread *worker) Eina_List *list, *l; Evas_Object *edje_edit_obj; Evas *e; - Ecore_Evas *ee; const char *name; const char *file_name; Eina_Strbuf *strbuf_to = eina_strbuf_new(); @@ -347,14 +347,12 @@ _project_linked_images_copy(Project_Thread *worker) Eina_Bool is_changed = false; ecore_thread_main_loop_begin(); - ee = ecore_evas_buffer_new(0, 0); - e = ecore_evas_get(ee); + e = ecore_evas_get(worker->project->ecore_evas); list = edje_file_collection_list(worker->project->saved_edj); edje_edit_obj = edje_edit_object_add(e); if (!edje_object_file_set(edje_edit_obj, worker->project->saved_edj, eina_list_data_get(list))) { evas_object_del(edje_edit_obj); - ecore_evas_free(ee); edje_file_collection_list_free(list); ecore_thread_main_loop_end(); return false; @@ -407,7 +405,6 @@ _project_linked_images_copy(Project_Thread *worker) eina_strbuf_free(strbuf_from); ecore_thread_main_loop_begin(); evas_object_del(edje_edit_obj); - ecore_evas_free(ee); ecore_thread_main_loop_end(); return true; } @@ -422,7 +419,8 @@ _project_open_internal(Project *project) project->close_request = false; project->widgets = wm_widgets_list_new(project->dev); project->layouts = wm_layouts_list_new(project->dev); - project->global_object = edje_edit_object_add(evas_object_evas_get(app_data_get()->win)); + project->ecore_evas = ecore_evas_buffer_new(0, 0); + project->global_object = edje_edit_object_add(ecore_evas_get(project->ecore_evas)); edje_object_mmap_set(project->global_object, project->mmap_file, EFLETE_INTERNAL_GROUP_NAME); } @@ -449,6 +447,7 @@ _project_special_group_add(Project *project) } edje_edit_string_list_free(list); evas_object_del(edje_edit_obj); + ecore_evas_free(project->ecore_evas); ecore_thread_main_loop_end(); } @@ -766,7 +765,7 @@ _project_save(void *data, /* saving */ dest = eina_stringshare_printf("%s/images", worker->project->develop_path); - _image_resources_export(add_list, dest, NULL, worker->project->dev, edje_edit_obj); + _image_resources_export(worker->project, add_list, dest, NULL, worker->project->dev, edje_edit_obj); edje_edit_string_list_free(add_list); EINA_LIST_FREE(worker->project->nsimage_list, it) free(it); @@ -847,6 +846,9 @@ pm_project_close(Project *project) wm_widgets_list_free(project->widgets); wm_layouts_list_free(project->layouts); + evas_object_del(project->global_object); + ecore_evas_free(project->ecore_evas); + eina_file_close(project->mmap_file); ecore_file_unlink(project->dev); @@ -947,13 +949,13 @@ pm_project_meta_data_set(Project *project, } static Eina_Bool -_image_resources_export(Eina_List *images, Eina_Stringshare *destination, +_image_resources_export(Project *project, + Eina_List *images, Eina_Stringshare *destination, Eina_Stringshare *source, Eina_Stringshare *dev, Evas_Object *edje_edit) { Eina_Stringshare *image_name, *source_file, *dest_file; Eina_List *l; - Ecore_Evas *ee; Evas *e; Evas_Object *im; int id; @@ -966,8 +968,7 @@ _image_resources_export(Eina_List *images, Eina_Stringshare *destination, ERR("Failed create path %s for export images", destination); return false; } - ee = ecore_evas_buffer_new(0, 0); - e = ecore_evas_get(ee); + e = ecore_evas_get(project->ecore_evas); } else return false; EINA_LIST_FOREACH(images, l, image_name) @@ -1011,7 +1012,6 @@ _image_resources_export(Eina_List *images, Eina_Stringshare *destination, eina_stringshare_del(dest_file); } ecore_thread_main_loop_begin(); - ecore_evas_free(ee); ecore_thread_main_loop_end(); return true; @@ -1226,7 +1226,7 @@ pm_style_resource_export(Project *pro , dest = eina_stringshare_printf("%s/images", path); EINA_LIST_FOREACH(pro->res.images, l, source) { - if (!_image_resources_export(images, dest, source, pro->dev, style->obj)) + if (!_image_resources_export(pro, images, dest, source, pro->dev, style->obj)) WARN("Failed export images"); } eina_stringshare_del(dest); @@ -1286,7 +1286,7 @@ pm_project_resource_export(Project *pro, const char* dir_path) /* export images */ list = edje_edit_images_list_get(edje_edit_obj); dest = eina_stringshare_printf("%s/images", path); - _image_resources_export(list, dest, NULL, pro->dev, edje_edit_obj); + _image_resources_export(pro, list, dest, NULL, pro->dev, edje_edit_obj); edje_edit_string_list_free(list); eina_stringshare_del(dest); diff --git a/src/bin/project_manager/project_manager.h b/src/bin/project_manager/project_manager.h index 705be29..3feb1f6 100644 --- a/src/bin/project_manager/project_manager.h +++ b/src/bin/project_manager/project_manager.h @@ -67,6 +67,8 @@ struct _Project Eina_Stringshare *pro_path; /** this is worrking file, all changes are happened in this file. */ Eina_Stringshare *dev; + /** ecore evas buffer for project objects */ + Ecore_Evas *ecore_evas; /** edje_edit_object for global operations */ Evas_Object *global_object; /** this is saved file. */ --