hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=59a5faf6e0c59257fc0daddd1539f2a0d747eb24

commit 59a5faf6e0c59257fc0daddd1539f2a0d747eb24
Author: Mykyta Biliavskyi <m.biliavs...@samsung.com>
Date:   Mon Jun 1 16:30:14 2015 +0000

    Save dialog: support save edj files.
    
    In case when user types filename.edj binary file will be
    compiled into that place, which chosen in fileselector.
---
 src/bin/menu.c | 55 +++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 35 insertions(+), 20 deletions(-)

diff --git a/src/bin/menu.c b/src/bin/menu.c
index f8b7eab..6fe0365 100644
--- a/src/bin/menu.c
+++ b/src/bin/menu.c
@@ -392,6 +392,8 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, 
void *event_info)
 {
    menu_data *md = data;
    const char *selected = event_info;
+   Eina_Bool is_edc = EINA_FALSE;
+   Eina_Bool is_edj = EINA_FALSE;
 
    eina_stringshare_refplace(&(md->last_accessed_path),
                             elm_fileselector_path_get(obj));
@@ -402,13 +404,14 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, 
void *event_info)
         return;
      }
 
-   //Filter to read only edc extension file.
-   char *ext = strrchr(selected, '.');
-   if (!ext || strcmp(ext, ".edc"))
+   //Filter to read only edc or edj extensions file.
+   is_edc = eina_str_has_extension(selected, "edc");
+   is_edj = eina_str_has_extension(selected, "edj");
+   if (!is_edc && !is_edj)
      {
         elm_object_part_text_set(md->fileselector_layout,
                                  "elm.text.msg",
-                                 "Support only .edc file.");
+                                 "Support only .edc or .edj file.");
         elm_object_signal_emit(md->fileselector_layout,
                                "elm,action,msg,show", "");
         return;
@@ -424,24 +427,36 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, 
void *event_info)
         return;
      }
 
-   config_edc_path_set(selected);
-
-   Eina_List *list = eina_list_append(NULL, config_edj_path_get());
-   enventor_object_path_set(md->enventor, ENVENTOR_OUT_EDJ, list);
-   eina_list_free(list);
-
-   if (!enventor_object_save(md->enventor, selected))
+   if (is_edc)
      {
-        char buf[PATH_MAX];
-        snprintf(buf, sizeof(buf), "Failed to save: %s.", selected);
-        elm_object_part_text_set(md->fileselector_layout,
-                                 "elm.text.msg", buf);
-        elm_object_signal_emit(md->fileselector_layout,
-                               "elm,action,msg,show", "");
-        return;
+        config_edc_path_set(selected);
+        Eina_List *list = eina_list_append(NULL, config_edj_path_get());
+        enventor_object_path_set(md->enventor, ENVENTOR_OUT_EDJ, list);
+        eina_list_free(list);
+        if (!enventor_object_save(md->enventor, selected))
+          {
+             char buf[PATH_MAX];
+             snprintf(buf, sizeof(buf), "Failed to save: %s.", selected);
+             elm_object_part_text_set(md->fileselector_layout,
+                                      "elm.text.msg", buf);
+             elm_object_signal_emit(md->fileselector_layout,
+                                    "elm,action,msg,show", "");
+             return;
+          }
+        enventor_object_file_set(md->enventor, selected);
+        base_title_set(selected);
      }
-   enventor_object_file_set(md->enventor, selected);
-   base_title_set(selected);
+   else if (is_edj)
+     {
+        Eina_List *edj_pathes = NULL;
+        edj_pathes = eina_list_append(edj_pathes, selected);
+        enventor_object_path_set(md->enventor, ENVENTOR_OUT_EDJ, edj_pathes);
+        enventor_object_modified_set(md->enventor, EINA_TRUE);
+        enventor_object_save(md->enventor, config_edc_path_get());
+        eina_list_free(edj_pathes);
+
+     }
+
    file_mgr_reset();
    fileselector_close(md);
    menu_close(md);

-- 


Reply via email to