forked from enlightenment/enventor
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.
This commit is contained in:
parent
6854160251
commit
59a5faf6e0
|
@ -392,6 +392,8 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, void *event_info)
|
||||||
{
|
{
|
||||||
menu_data *md = data;
|
menu_data *md = data;
|
||||||
const char *selected = event_info;
|
const char *selected = event_info;
|
||||||
|
Eina_Bool is_edc = EINA_FALSE;
|
||||||
|
Eina_Bool is_edj = EINA_FALSE;
|
||||||
|
|
||||||
eina_stringshare_refplace(&(md->last_accessed_path),
|
eina_stringshare_refplace(&(md->last_accessed_path),
|
||||||
elm_fileselector_path_get(obj));
|
elm_fileselector_path_get(obj));
|
||||||
|
@ -402,13 +404,14 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, void *event_info)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Filter to read only edc extension file.
|
//Filter to read only edc or edj extensions file.
|
||||||
char *ext = strrchr(selected, '.');
|
is_edc = eina_str_has_extension(selected, "edc");
|
||||||
if (!ext || strcmp(ext, ".edc"))
|
is_edj = eina_str_has_extension(selected, "edj");
|
||||||
|
if (!is_edc && !is_edj)
|
||||||
{
|
{
|
||||||
elm_object_part_text_set(md->fileselector_layout,
|
elm_object_part_text_set(md->fileselector_layout,
|
||||||
"elm.text.msg",
|
"elm.text.msg",
|
||||||
"Support only .edc file.");
|
"Support only .edc or .edj file.");
|
||||||
elm_object_signal_emit(md->fileselector_layout,
|
elm_object_signal_emit(md->fileselector_layout,
|
||||||
"elm,action,msg,show", "");
|
"elm,action,msg,show", "");
|
||||||
return;
|
return;
|
||||||
|
@ -424,12 +427,12 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, void *event_info)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (is_edc)
|
||||||
|
{
|
||||||
config_edc_path_set(selected);
|
config_edc_path_set(selected);
|
||||||
|
|
||||||
Eina_List *list = eina_list_append(NULL, config_edj_path_get());
|
Eina_List *list = eina_list_append(NULL, config_edj_path_get());
|
||||||
enventor_object_path_set(md->enventor, ENVENTOR_OUT_EDJ, list);
|
enventor_object_path_set(md->enventor, ENVENTOR_OUT_EDJ, list);
|
||||||
eina_list_free(list);
|
eina_list_free(list);
|
||||||
|
|
||||||
if (!enventor_object_save(md->enventor, selected))
|
if (!enventor_object_save(md->enventor, selected))
|
||||||
{
|
{
|
||||||
char buf[PATH_MAX];
|
char buf[PATH_MAX];
|
||||||
|
@ -442,6 +445,18 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, void *event_info)
|
||||||
}
|
}
|
||||||
enventor_object_file_set(md->enventor, selected);
|
enventor_object_file_set(md->enventor, selected);
|
||||||
base_title_set(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();
|
file_mgr_reset();
|
||||||
fileselector_close(md);
|
fileselector_close(md);
|
||||||
menu_close(md);
|
menu_close(md);
|
||||||
|
|
Loading…
Reference in New Issue