rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=7da185ea8d157c34faa6b7ae14eca1508fccd281
commit 7da185ea8d157c34faa6b7ae14eca1508fccd281 Author: Vyacheslav Reutskiy <v.reuts...@samsung.com> Date: Mon Oct 10 17:48:15 2016 +0300 project manager: change API signature for export groups source Make posible to export several groups Change-Id: I0c6ad6f1164ca70358abee6c59762f9e08d6f02a --- src/bin/project_manager/project_manager2.c | 18 ++++++++++++------ src/bin/project_manager/project_manager2.h | 4 ++-- src/bin/ui/project_export.c | 5 ++++- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/bin/project_manager/project_manager2.c b/src/bin/project_manager/project_manager2.c index 1e46922..8cee860 100644 --- a/src/bin/project_manager/project_manager2.c +++ b/src/bin/project_manager/project_manager2.c @@ -1207,17 +1207,19 @@ _group_export_finish_handler(void *data, PM_Project_Result pm_group_source_code_export(Project *project, - Group2 *group, + Eina_List *groups, const char *path, PM_Project_Progress_Cb func_progress, PM_Project_End_Cb func_end, const void *data) { Project_Process_Data *ppd; - char buf[PATH_MAX]; + Group2 *group; + Eina_Strbuf *cmd; + Eina_List *l; assert(project != NULL); - assert(group != NULL); + assert(groups != NULL); assert(path != NULL); last_error = PM_PROJECT_SUCCESS; @@ -1226,14 +1228,18 @@ pm_group_source_code_export(Project *project, ppd->func_end = func_end; ppd->data = (void *)data; - snprintf(buf, sizeof(buf), - "%s --edj %s --path %s -g %s -s", ap.path.exporter, project->saved_edj, path, group->common.name); + cmd = eina_strbuf_new(); + eina_strbuf_append_printf(cmd, "%s --edj %s --path %s -s", ap.path.exporter, project->saved_edj, path); - ecore_exe_pipe_run(buf, FLAGS, NULL); + EINA_LIST_FOREACH(groups, l, group) + eina_strbuf_append_printf(cmd, " -g %s", group->common.name); + + 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, _group_export_finish_handler, ppd); + eina_strbuf_free(cmd); return last_error; } diff --git a/src/bin/project_manager/project_manager2.h b/src/bin/project_manager/project_manager2.h index 4b23465..fd5d6e8 100644 --- a/src/bin/project_manager/project_manager2.h +++ b/src/bin/project_manager/project_manager2.h @@ -192,7 +192,7 @@ pm_project_meta_data_set(Project *project, * Export the source code of Group (edje object) to file. * * @param pro The opened project; - * @param group The group to save the source code; + * @param groups The list of groups to save the source code; * @param path The path for export source code; * @param func_progress The user func for print export progress; * @param func_end The user func for handle the end of export; @@ -204,7 +204,7 @@ pm_project_meta_data_set(Project *project, */ PM_Project_Result pm_group_source_code_export(Project *project, - Group2 *group, + Eina_List *groups, const char *path, PM_Project_Progress_Cb func_progress, PM_Project_End_Cb func_end, diff --git a/src/bin/ui/project_export.c b/src/bin/ui/project_export.c index bf3391c..ca7be0f 100644 --- a/src/bin/ui/project_export.c +++ b/src/bin/ui/project_export.c @@ -304,15 +304,18 @@ _export_group_source_code_setup(void *data, Splash_Status status __UNUSED__) Eina_Stringshare *path = (Eina_Stringshare *)data; PM_Project_Result result; char buf[BUFF_MAX]; + Eina_List *groups = NULL; assert(path != NULL); + groups = eina_list_append(groups, tabs_current_group_get()); result = pm_group_source_code_export(ap.project, - tabs_current_group_get(), + groups, path, 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)); --