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));

-- 


Reply via email to