rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=f626ecc354245e63266237eeb20bc6a5655cee20
commit f626ecc354245e63266237eeb20bc6a5655cee20 Author: Andrii Kroitor <an.kroi...@samsung.com> Date: Wed Jul 8 14:16:38 2015 +0300 project_manager: add special group for global actions Up Eflete project (.pro file) to 3. --- src/bin/project_manager/project_manager.c | 36 +++++++++++++++++++++++++++++++ src/bin/project_manager/project_manager.h | 4 +++- src/bin/project_manager/widget_manager.h | 1 + 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/bin/project_manager/project_manager.c b/src/bin/project_manager/project_manager.c index b602d6d..fde4661 100644 --- a/src/bin/project_manager/project_manager.c +++ b/src/bin/project_manager/project_manager.c @@ -424,6 +424,33 @@ _project_open_internal(Project *project) project->layouts = wm_layouts_list_new(project->dev); } +static void +_project_special_group_add(Project *project) +{ + Evas *e; + Evas_Object *edje_edit_obj; + Eina_List *list; + + ecore_thread_main_loop_begin(); + + Ecore_Evas *ee = ecore_evas_buffer_new(0, 0); + e = ecore_evas_get(ee); + list = edje_file_collection_list(project->saved_edj); + edje_edit_obj = edje_edit_object_add(e); + + edje_object_file_set(edje_edit_obj, project->saved_edj, eina_list_data_get(list)); + + if (!edje_edit_group_exist(edje_edit_obj, EFLETE_INTERNAL_GROUP_NAME)) + { + edje_edit_group_add(edje_edit_obj, EFLETE_INTERNAL_GROUP_NAME); + edje_edit_without_source_save(edje_edit_obj, false); + } + edje_edit_string_list_free(list); + evas_object_del(edje_edit_obj); + + ecore_thread_main_loop_end(); +} + static void * _project_import_edj(void *data, Eina_Thread *thread __UNUSED__) @@ -444,6 +471,7 @@ _project_import_edj(void *data, _project_edj_file_copy(worker); _copy_meta_data_to_pro(worker); WORKER_LOCK_TAKE; + _project_special_group_add(worker->project); _project_open_internal(worker->project); WORKER_LOCK_RELEASE; THREAD_TESTCANCEL; @@ -564,6 +592,7 @@ _project_import_edc(void *data, eina_tmpstr_del(tmp_dirname); _copy_meta_data_to_pro(worker); WORKER_LOCK_TAKE; + _project_special_group_add(worker->project); _project_open_internal(worker->project); WORKER_LOCK_RELEASE; THREAD_TESTCANCEL; @@ -672,6 +701,12 @@ pm_project_open(const char *path) ecore_file_mv(project->dev, project->saved_edj); project->version = 2; } + if (project->version < 3) /* upgrade to version 3 */ + { + WARN(_("Old project version. Project files were updated.")); + _project_special_group_add(project); + project->version = 3; + } TODO("Add crash recovery prompt here") _project_open_internal(project); @@ -1262,6 +1297,7 @@ pm_project_resource_export(Project *pro, const char* dir_path) ecore_thread_main_loop_begin(); Ecore_Evas *ee = ecore_evas_buffer_new(0, 0); e = ecore_evas_get(ee); + list = edje_file_collection_list(pro->dev); edje_edit_obj = edje_edit_object_add(e); if (!edje_object_mmap_set(edje_edit_obj, pro->mmap_file, eina_list_data_get(list))) diff --git a/src/bin/project_manager/project_manager.h b/src/bin/project_manager/project_manager.h index fbb3284..705be29 100644 --- a/src/bin/project_manager/project_manager.h +++ b/src/bin/project_manager/project_manager.h @@ -43,7 +43,7 @@ #include <Eet.h> /* don't forget to update on major changes */ -#define PROJECT_FILE_VERSION 2 +#define PROJECT_FILE_VERSION 3 typedef struct _Enventor_Data Enventor_Data; @@ -67,6 +67,8 @@ struct _Project Eina_Stringshare *pro_path; /** this is worrking file, all changes are happened in this file. */ Eina_Stringshare *dev; + /** edje_edit_object for global operations */ + Evas_Object *global_object; /** this is saved file. */ Eina_Stringshare *saved_edj; diff --git a/src/bin/project_manager/widget_manager.h b/src/bin/project_manager/widget_manager.h index 9dd9b38..ef84b4e 100644 --- a/src/bin/project_manager/widget_manager.h +++ b/src/bin/project_manager/widget_manager.h @@ -50,6 +50,7 @@ #include <Edje_Edit.h> #include "logger.h" +#define EFLETE_INTERNAL_GROUP_NAME "___eflete_internal_group___" /** * @enum _Type * @ingroup WidgetManager --