rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=e8bd9fd98a6b32c916fb69e22b228d776d370c92

commit e8bd9fd98a6b32c916fb69e22b228d776d370c92
Author: Vyacheslav Reutskiy <[email protected]>
Date:   Mon Oct 10 17:49:57 2016 +0300

    project export: export source if used option --export-edc
    
    This option provide set the path for export source code of editing groups.
    
    Change-Id: I0681b2db4c30351458bc67e51499de7cff8e0429
---
 src/bin/eflete.c            |  8 ++------
 src/bin/eflete.h            |  6 +-----
 src/bin/main.c              | 25 +------------------------
 src/bin/ui/project_close.c  |  2 +-
 src/bin/ui/project_export.c | 38 +++++++++++++++++++-------------------
 5 files changed, 24 insertions(+), 55 deletions(-)

diff --git a/src/bin/eflete.c b/src/bin/eflete.c
index a79a63a..fd23084 100644
--- a/src/bin/eflete.c
+++ b/src/bin/eflete.c
@@ -143,12 +143,8 @@ app_shutdown()
      eina_stringshare_del(ap.path.image_path);
    if (ap.path.export_edj)
      eina_stringshare_del(ap.path.export_edj);
-   if (ap.path.export_edc.path)
-     eina_stringshare_del(ap.path.export_edc.path);
-   if (ap.path.export_edc.folder)
-     eina_stringshare_del(ap.path.export_edc.folder);
-   if (ap.path.export_edc.file)
-     eina_stringshare_del(ap.path.export_edc.file);
+   if (ap.path.export_edc)
+     eina_stringshare_del(ap.path.export_edc);
 
    config_shutdown();
    elm_theme_free(ap.theme);
diff --git a/src/bin/eflete.h b/src/bin/eflete.h
index 59156e3..768eb33 100644
--- a/src/bin/eflete.h
+++ b/src/bin/eflete.h
@@ -136,12 +136,8 @@ struct _App_Data
       Eina_Stringshare *image_path;
       Eina_Stringshare *sound_path;
       Eina_Stringshare *export_edj;
+      Eina_Stringshare *export_edc;
       Eina_Stringshare *exporter;
-      struct {
-         Eina_Stringshare *path;
-         Eina_Stringshare *folder;
-         Eina_Stringshare *file;
-      } export_edc;
    } path;
    Project *project;
    Shortcut_Module *shortcuts; /**< Structure with data from shortcuts module 
*/
diff --git a/src/bin/main.c b/src/bin/main.c
index ead20aa..9f408c1 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -182,28 +182,6 @@ _new_project(void *data __UNUSED__)
    tabs_home_tab_add(TAB_HOME_NEW_PROJECT);
 }
 
-static void
-_export_edc_path_set(char *edc)
-{
-   char tmp[256];
-   int len = 0, rlen = 0;
-
-   strcpy(tmp, edc);
-   len = strlen(tmp);
-   rlen = strlen(strrchr(tmp, '/'));
-   if (!rlen) return;
-   ap.path.export_edc.file = eina_stringshare_add(tmp + (len - rlen + 1));
-   tmp[len - rlen] = '\0';
-
-   len = strlen(tmp);
-   rlen = strlen(strrchr(tmp, '/'));
-   if (!rlen) return;
-   ap.path.export_edc.folder = eina_stringshare_add(tmp + (len - rlen + 1));
-   tmp[len - rlen] = '\0';
-
-   ap.path.export_edc.path = eina_stringshare_add(tmp);
-}
-
 EAPI_MAIN int
 elm_main(int argc, char **argv)
 {
@@ -361,8 +339,7 @@ elm_main(int argc, char **argv)
 
 run:
         ap.path.export_edj = export_edj;
-        if (export_edc)
-          _export_edc_path_set(export_edc);
+        ap.path.export_edc = export_edc;
         evas_object_show(ap.win);
         elm_run();
 #ifdef HAVE_ENVENTOR
diff --git a/src/bin/ui/project_close.c b/src/bin/ui/project_close.c
index 478ccf1..f0568b5 100644
--- a/src/bin/ui/project_close.c
+++ b/src/bin/ui/project_close.c
@@ -121,7 +121,7 @@ project_save(void)
 #else
    if (ap.path.export_edj)
      project_export_develop();
-   if (ap.path.export_edc.path && ap.path.export_edc.folder && 
ap.path.export_edc.file)
+   if (ap.path.export_edc)
      project_export_edc_project();
 #endif /* HAVE_TIZEN */
 
diff --git a/src/bin/ui/project_export.c b/src/bin/ui/project_export.c
index ca7be0f..8b1984d 100644
--- a/src/bin/ui/project_export.c
+++ b/src/bin/ui/project_export.c
@@ -227,11 +227,12 @@ _export_source_code_setup(void *data, Splash_Status 
status __UNUSED__)
 
    assert(path != NULL);
 
-   result = pm_project_source_code_export(ap.project,
-                                          path,
-                                          progress_print,
-                                          progress_end,
-                                          NULL);
+   result = pm_group_source_code_export(ap.project,
+                                        tabs_open_groups_get(),
+                                        path,
+                                        progress_print,
+                                        progress_end,
+                                        NULL);
    if (PM_PROJECT_SUCCESS != result)
      {
         snprintf(buf, sizeof(buf), "Warning: %s", 
pm_project_result_string_get(result));
@@ -247,7 +248,7 @@ _after_export_source_code_check(void *data)
    ap.splash = splash_add(ap.win, _export_source_code_setup, _export_teardown, 
NULL, data);
    evas_object_focus_set(ap.splash, true);
    evas_object_show(ap.splash);
-   if (!ap.path.export_edc.path)
+   if (!ap.path.export_edc)
      popup_fileselector_helper_dismiss();
 }
 
@@ -257,28 +258,27 @@ _export_source_code(void *data __UNUSED__,
                     void *event_info)
 {
    Eina_List *selected = (Eina_List *)event_info;
-   Eina_Stringshare *path, *folder;
+   Eina_Stringshare *path;
    Eina_Strbuf *buf;
+   Eina_Stringshare *pp;
 
    assert(selected != NULL);
 
    path = eina_stringshare_add((const char *)eina_list_data_get(selected));
    buf = eina_strbuf_new();
-   if (!ap.path.export_edc.folder)
-     folder = ap.project->name;
-   else
-     folder = ap.path.export_edc.folder;
 
    eina_strbuf_append_printf(buf,
-                             _("<font_size=16>A project file '%s/%s' already 
exist."
+                             _("<font_size=16>A project folder '%s' already 
exist."
                                "Do you want to replace it?</font_size>"),
-                             path,
-                             folder);
-   exist_permission_check(path,
-                          folder,
+                             path);
+   pp = eina_stringshare_printf("%s/%s", path, ap.project->name);
+
+   ecore_file_mkpath(pp);
+   exist_permission_check(pp,
+                          ap.project->name,
                           _("Export to develop edj-file"),
                           eina_strbuf_string_get(buf), EINA_FALSE,
-                          _after_export_source_code_check, (void *)path);
+                          _after_export_source_code_check, (void *)pp);
    eina_strbuf_free(buf);
 
    return false;
@@ -287,12 +287,12 @@ _export_source_code(void *data __UNUSED__,
 void
 project_export_edc_project(void)
 {
-   if (!ap.path.export_edc.path)
+   if (!ap.path.export_edc)
      popup_fileselector_folder_helper("Export source code", NULL, NULL, 
_export_source_code, NULL, false, false);
    else
      {
         Eina_List *l = NULL;
-        l = eina_list_append(l, ap.path.export_edc.path);
+        l = eina_list_append(l, ap.path.export_edc);
         _export_source_code(NULL, NULL, l);
         eina_list_free(l);
      }

-- 


Reply via email to