rimmed pushed a commit to branch master.

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

commit 3a62a4cd36090b70eba11c2409b992ae2598b763
Author: Vyacheslav Reutskiy <v.reuts...@samsung.com>
Date:   Thu Sep 15 18:13:42 2016 +0300

    project manager2: adaptate save
    
    Change-Id: I142d49e7c87779c5fc0fe5f70e7c014feaf00f07
---
 src/bin/project_manager/project_manager2.c | 94 ++++++++++++++++++++++++++++--
 src/bin/project_manager/project_manager2.h |  9 ---
 2 files changed, 89 insertions(+), 14 deletions(-)

diff --git a/src/bin/project_manager/project_manager2.c 
b/src/bin/project_manager/project_manager2.c
index 5e09190..6a35a7c 100644
--- a/src/bin/project_manager/project_manager2.c
+++ b/src/bin/project_manager/project_manager2.c
@@ -97,9 +97,6 @@ _project_descriptor_init(Project_Process_Data *ppd)
    EET_DATA_DESCRIPTOR_ADD_BASIC       (ppd->eed_project, Project, 
"saved_edj", saved_edj, EET_T_STRING);
    EET_DATA_DESCRIPTOR_ADD_BASIC       (ppd->eed_project, Project, 
"develop_path", develop_path, EET_T_STRING);
    EET_DATA_DESCRIPTOR_ADD_BASIC       (ppd->eed_project, Project, 
"release_options", release_options, EET_T_STRING);
-   EET_DATA_DESCRIPTOR_ADD_LIST_STRING (ppd->eed_project, Project, "images", 
res.images);
-   EET_DATA_DESCRIPTOR_ADD_LIST_STRING (ppd->eed_project, Project, "sounds", 
res.sounds);
-   EET_DATA_DESCRIPTOR_ADD_LIST_STRING (ppd->eed_project, Project, "fonts", 
res.fonts);
 }
 
 void
@@ -295,7 +292,6 @@ _lock_try(const char *path, Eina_Bool check, HANDLE *pro_fd)
 }
 #endif
 
-
 static Eina_Bool
 _exe_output_print(void *data,
                   int type __UNUSED__,
@@ -337,7 +333,7 @@ _project_open_internal(const char *path,
    Project_Process_Data *ppd;
    char *spath;
    Ecore_Exe_Flags flags;
-   char cmd[512];
+   char cmd[PATH_MAX];
    char *file_dir;
 
 #ifdef _WIN32
@@ -501,3 +497,91 @@ pm_project_open(const char *path,
 {
    _project_open_internal(path, func_progress, func_end, data);
 }
+
+Eina_Bool
+pm_project_close(Project *project)
+{
+   char buf[PATH_MAX];
+
+   assert(project != NULL);
+
+   snprintf(buf, sizeof(buf),
+            "%s.backup", project->dev);
+   ecore_file_unlink(buf);
+   snprintf(buf, sizeof(buf),
+            "%s/images", project->develop_path);
+   ecore_file_recursive_rm(buf);
+   snprintf(buf, sizeof(buf),
+            "%s/sounds", project->develop_path);
+   ecore_file_recursive_rm(buf);
+   snprintf(buf, sizeof(buf),
+            "%s/fonts", project->develop_path);
+   ecore_file_recursive_rm(buf);
+
+   evas_object_del(project->global_object);
+   ecore_evas_free(project->ecore_evas);
+
+   eina_file_close(project->mmap_file);
+   ecore_file_unlink(project->dev);
+
+   eina_stringshare_del(project->name);
+   eina_stringshare_del(project->dev);
+   eina_stringshare_del(project->develop_path);
+   eina_stringshare_del(project->pro_path);
+
+#ifdef HAVE_ENVENTOR
+   if (enventor_object_project_unload(project))
+     free(project->enventor);
+#endif /* HAVE_ENVENTOR */
+
+   eet_close(project->ef);
+#ifdef _WIN32
+   if (project->pro_fd != INVALID_HANDLE_VALUE)
+     CloseHandle(project->pro_fd);
+#else
+   if (project->pro_fd != -1)
+     close(project->pro_fd);
+#endif
+   evas_object_smart_callback_call(ap.win, SIGNAL_PROJECT_CLOSED, NULL);
+   free(project);
+
+   return true;
+}
+static Eina_Bool
+_copy_progress(void *data, unsigned long long done, unsigned long long total)
+{
+   Project_Process_Data * ppd = data;
+
+   if (done == total)
+     {
+        ppd->result = PM_PROJECT_SUCCESS;
+        _end_send(ppd);
+     }
+   return true;
+}
+
+void
+pm_project_save(Project *project,
+                PM_Project_Progress_Cb func_progress,
+                PM_Project_End_Cb func_end,
+                const void *data)
+{
+   assert(project != NULL);
+
+   Project_Process_Data *ppd;
+   ppd = mem_calloc(1, sizeof(Project_Process_Data));
+   ppd->func_progress = func_progress;
+   ppd->func_end = func_end;
+   ppd->data = (void *)data;
+   ppd->project = project;
+   if (!editor_save_all(ppd->project->global_object))
+     {
+        ERR("Failed to save project.");
+        ppd->result = PM_PROJECT_ERROR;
+        _end_send(ppd);
+        return;
+     }
+   //ecore_file_cp(ppd->project->dev, ppd->project->saved_edj);
+   eina_file_copy(ppd->project->dev, ppd->project->saved_edj,
+                  EINA_FILE_COPY_PERMISSION | EINA_FILE_COPY_XATTR, 
_copy_progress, ppd);
+}
diff --git a/src/bin/project_manager/project_manager2.h 
b/src/bin/project_manager/project_manager2.h
index d1c0dcc..266f4bc 100644
--- a/src/bin/project_manager/project_manager2.h
+++ b/src/bin/project_manager/project_manager2.h
@@ -106,21 +106,12 @@ struct _Project
 
    Eina_List *nsimage_list;
 
-   TODO("Fix paths in enventor mode. Looks like enventor project can't be 
moved")
-   struct
-   {
-      Eina_List *images;  /**< pathes to the image dirs */
-      Eina_List *sounds;  /**< pathes to the sound dirs */
-      Eina_List *fonts;   /**< pathes to the font dirs */
-   } res;  /**< pathes to resource directories, which needed for opened 
project */
-
 #ifdef HAVE_ENVENTOR
    Enventor_Data *enventor;
 #endif
 
    Eina_Bool changed : 1;
    Eina_Bool close_request : 1;
-   //Ecore_Timer *autosave_timer;
 };
 
 /**

-- 


Reply via email to