rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=7da32f8cbe31020a7fece1024889d70c4c48f172
commit 7da32f8cbe31020a7fece1024889d70c4c48f172 Author: Vyacheslav Reutskiy <[email protected]> Date: Thu Oct 6 23:00:00 2016 +0300 project manager: update export develop edj file Change this by new requirements foir tizen studio. Change-Id: Ie8ad7829dba692ca7e898e724a4c649e9e4cfdcd --- src/bin/project_manager/project_manager2.c | 41 ++++++++++++++++++------------ src/bin/ui/project_common.c | 36 ++++++++++++++++---------- src/bin/ui/project_export.c | 7 ++++- 3 files changed, 54 insertions(+), 30 deletions(-) diff --git a/src/bin/project_manager/project_manager2.c b/src/bin/project_manager/project_manager2.c index a46201c..1e46922 100644 --- a/src/bin/project_manager/project_manager2.c +++ b/src/bin/project_manager/project_manager2.c @@ -529,6 +529,8 @@ _exporter_finish_handler(void *data, Project *project = (Project *) ppd->project; Ecore_Exe_Event_Del *exporter_exit = (Ecore_Exe_Event_Del *)event_info; + _ecore_event_handlers_del(ppd); + if (exporter_exit->exit_code != 0) { last_error = exporter_exit->exit_code; @@ -1314,7 +1316,6 @@ pm_project_develop_export(Project *project, assert(project != NULL); assert(path != NULL); - assert(groups != NULL); last_error = PM_PROJECT_SUCCESS; ppd = mem_calloc(1, sizeof(Project_Process_Data)); @@ -1326,25 +1327,33 @@ pm_project_develop_export(Project *project, CRIT_ON_FAIL(editor_save_all(project->global_object)); - cmd = eina_strbuf_new(); - if (!ecore_file_exists(ppd->path)) - eina_strbuf_append_printf(cmd, "edje_pick -o %s", path); - else + if (groups) { - eina_file_mkstemp("eflete_export_XXXXXX", &ppd->tmp_dirname); - eina_strbuf_append_printf(cmd, "edje_pick -o %s", ppd->tmp_dirname); - eina_strbuf_append_printf(cmd, " -a %s", path); - } - eina_strbuf_append_printf(cmd, " -i %s", project->dev); + cmd = eina_strbuf_new(); + if (!ecore_file_exists(ppd->path)) + eina_strbuf_append_printf(cmd, "edje_pick -o %s", path); + else + { + eina_file_mkstemp("eflete_export_XXXXXX", &ppd->tmp_dirname); + eina_strbuf_append_printf(cmd, "edje_pick -o %s", ppd->tmp_dirname); + eina_strbuf_append_printf(cmd, " -a %s", path); + } + eina_strbuf_append_printf(cmd, " -i %s", project->dev); - EINA_LIST_FOREACH(groups, l, group) - eina_strbuf_append_printf(cmd, " -g %s", group->common.name); + EINA_LIST_FOREACH(groups, l, group) + eina_strbuf_append_printf(cmd, " -g %s", group->common.name); - DBG("Run command for export: %s", eina_strbuf_string_get(cmd)); - ecore_exe_pipe_run(eina_strbuf_string_get(cmd), FLAGS, NULL); + DBG("Run command for export: %s", eina_strbuf_string_get(cmd)); + ecore_exe_pipe_run(eina_strbuf_string_get(cmd), FLAGS, NULL); + + ppd->data_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DATA, _exe_output_handler, ppd); + ppd->del_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL, _develop_export_finish_handler, ppd); + } + else + eina_file_copy(ppd->project->dev, path, + EINA_FILE_COPY_PERMISSION | EINA_FILE_COPY_XATTR, + _copy_progress, ppd); - ppd->data_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DATA, _exe_output_handler, ppd); - ppd->del_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL, _develop_export_finish_handler, ppd); return last_error; } diff --git a/src/bin/ui/project_common.c b/src/bin/ui/project_common.c index 7deb7d7..2770250 100644 --- a/src/bin/ui/project_common.c +++ b/src/bin/ui/project_common.c @@ -22,9 +22,9 @@ typedef struct { Eina_Strbuf *buf, *buf_msg; - const char *name; + char *name; const char *title; - const char *path; + char *path; Ecore_Cb func; const void *data; } Permission_Check_Data; @@ -52,6 +52,7 @@ _exist_permission_popup_close_cb(void *data, Evas_Object *obj __UNUSED__, void * end: eina_strbuf_free(pcd->buf); + free(pcd->name); free(pcd); } @@ -64,14 +65,15 @@ exist_permission_check(const char *path, const char *name, Evas_Object *popup; Eina_Strbuf *buf_msg; Permission_Check_Data *pcd = mem_calloc(1, sizeof(Permission_Check_Data)); + Eina_Bool ret = true; assert(path != NULL); assert(name != NULL); assert(title != NULL); - pcd->name = name; + pcd->name = strdup(name); pcd->title = title; - pcd->path = path; + pcd->path = strdup(path); pcd->func = func; pcd->data = data; /* we alwayes imported and exported project to folder by given path, means @@ -83,8 +85,8 @@ exist_permission_check(const char *path, const char *name, eina_strbuf_append_printf(buf_msg, _("Haven't permision to write '%s'"), path); popup_add(title, eina_strbuf_string_get(buf_msg), BTN_OK, NULL, NULL); eina_strbuf_free(buf_msg); - free(pcd); - return false; + ret = false; + goto exit; } pcd->buf = eina_strbuf_new(); eina_strbuf_append_printf(pcd->buf, "%s/%s", path, name); @@ -93,16 +95,24 @@ exist_permission_check(const char *path, const char *name, if (pcd->func) pcd->func((void *)pcd->data); eina_strbuf_free(pcd->buf); - free(pcd); - return true; + goto exit; } if (!append) - popup = popup_add(title, msg, BTN_REPLACE | BTN_CANCEL, NULL, NULL); - else - popup = popup_add(title, msg, BTN_APPEND | BTN_REPLACE | BTN_CANCEL, NULL, NULL); - evas_object_smart_callback_add(popup, POPUP_CLOSE_CB, _exist_permission_popup_close_cb, pcd); + { + popup = popup_add(title, msg, BTN_REPLACE | BTN_CANCEL, NULL, NULL); + evas_object_smart_callback_add(popup, POPUP_CLOSE_CB, _exist_permission_popup_close_cb, pcd); + return ret; + } + else if (pcd->func) + { + pcd->func((void *)pcd->data); + } - return true; +exit: + free(pcd->name); + free(pcd->path); + free(pcd); + return ret; } Eina_Bool diff --git a/src/bin/ui/project_export.c b/src/bin/ui/project_export.c index c4244c5..f4a246c 100644 --- a/src/bin/ui/project_export.c +++ b/src/bin/ui/project_export.c @@ -35,11 +35,16 @@ _export_develop_setup(void *data, Splash_Status status __UNUSED__) char buf[PATH_MAX]; PM_Project_Result result; const char *path = (const char *)data; + Eina_List *groups = NULL; assert(path != NULL); - result = pm_project_develop_export(ap.project, path, ap.project->groups, +#ifdef HAVE_TIZEN + groups = tabs_open_groups_get(); +#endif /* HAVE_TIZEN */ + result = pm_project_develop_export(ap.project, path, groups, progress_print, progress_end, NULL); + eina_list_free(groups); if (PM_PROJECT_SUCCESS != result) { snprintf(buf, sizeof(buf), "Warning: %s", pm_project_result_string_get(result)); --
