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

-- 


Reply via email to