diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index bf1f56de1..5c1a3cf15 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -1247,6 +1247,12 @@ _e_fm2_dir_load_props(E_Fm2_Smart_Data *sd) sd->order_file = !!cf->dir->prop.order_file; sd->show_hidden_files = !!cf->dir->prop.show_hidden_files; sd->inherited_dir_props = EINA_FALSE; + sd->config->list.sort.no_case = cf->dir->prop.sort.no_case; + sd->config->list.sort.size = cf->dir->prop.sort.size; + sd->config->list.sort.extension = cf->dir->prop.sort.extension; + sd->config->list.sort.mtime = cf->dir->prop.sort.mtime; + sd->config->list.sort.dirs.first = cf->dir->prop.sort.dirs.first; + sd->config->list.sort.dirs.last = cf->dir->prop.sort.dirs.last; return; } } @@ -1275,6 +1281,12 @@ _e_fm2_dir_load_props(E_Fm2_Smart_Data *sd) sd->icon_size = cf->dir->prop.icon_size; sd->order_file = !!cf->dir->prop.order_file; sd->show_hidden_files = !!cf->dir->prop.show_hidden_files; + sd->config->list.sort.no_case = cf->dir->prop.sort.no_case; + sd->config->list.sort.size = cf->dir->prop.sort.size; + sd->config->list.sort.extension = cf->dir->prop.sort.extension; + sd->config->list.sort.mtime = cf->dir->prop.sort.mtime; + sd->config->list.sort.dirs.first = cf->dir->prop.sort.dirs.first; + sd->config->list.sort.dirs.last = cf->dir->prop.sort.dirs.last; } else { @@ -1324,6 +1336,16 @@ _e_fm2_dir_save_props(E_Fm2_Smart_Data *sd) cf->dir->prop.show_hidden_files = sd->show_hidden_files; cf->dir->prop.in_use = !sd->inherited_dir_props; + if (sd->config) + { + cf->dir->prop.sort.no_case = sd->config->list.sort.no_case; + cf->dir->prop.sort.size = sd->config->list.sort.size; + cf->dir->prop.sort.extension = sd->config->list.sort.extension; + cf->dir->prop.sort.mtime = sd->config->list.sort.mtime; + cf->dir->prop.sort.dirs.first = sd->config->list.sort.dirs.first; + cf->dir->prop.sort.dirs.last = sd->config->list.sort.dirs.last; + } + e_fm2_custom_file_set(sd->realpath, cf); e_fm2_custom_file_flush(); } diff --git a/src/bin/e_fm_custom.c b/src/bin/e_fm_custom.c index 86b5a5b07..fd9db85fe 100644 --- a/src/bin/e_fm_custom.c +++ b/src/bin/e_fm_custom.c @@ -51,8 +51,14 @@ e_fm2_custom_file_init(void) DAT(prop.order_file, EET_T_UCHAR); DAT(prop.show_hidden_files, EET_T_UCHAR); DAT(prop.in_use, EET_T_UCHAR); -#undef DAT + DAT(prop.sort.no_case, EET_T_UCHAR); + DAT(prop.sort.size, EET_T_UCHAR); + DAT(prop.sort.extension, EET_T_UCHAR); + DAT(prop.sort.mtime, EET_T_UCHAR); + DAT(prop.sort.dirs.first, EET_T_UCHAR); + DAT(prop.sort.dirs.last, EET_T_UCHAR); +#undef DAT eddc.size = sizeof (E_Fm2_Custom_File); eddc.name = "e_fm_custom_file"; diff --git a/src/bin/e_fm_custom.h b/src/bin/e_fm_custom.h index 1099a85ef..091affd1a 100644 --- a/src/bin/e_fm_custom.h +++ b/src/bin/e_fm_custom.h @@ -18,6 +18,18 @@ struct _E_Fm2_Custom_Dir Eina_Bool order_file; Eina_Bool show_hidden_files; Eina_Bool in_use; + struct + { + Eina_Bool no_case; + Eina_Bool size; + Eina_Bool extension; + Eina_Bool mtime; + struct + { + Eina_Bool first; + Eina_Bool last; + } dirs; + } sort; } prop; };