another user suggestion: efm sorting by mtime

SVN revision: 76164
This commit is contained in:
Mike Blumenkrantz 2012-09-05 06:41:42 +00:00
parent 236c282692
commit 75e8629ebf
6 changed files with 33 additions and 0 deletions

View File

@ -7694,6 +7694,13 @@ _e_fm2_cb_icon_sort(const void *data1, const void *data2)
return -1;
}
}
if (ic1->sd->config->list.sort.mtime)
{
if (ic1->info.statinfo.st_mtime > ic2->info.statinfo.st_mtime)
return -1;
if (ic1->info.statinfo.st_mtime < ic2->info.statinfo.st_mtime)
return 1;
}
if (ic1->sd->config->list.sort.extension)
{
int cmp;
@ -8685,6 +8692,15 @@ _e_fm2_view_menu_sorting_change_size(void *data, E_Menu *m __UNUSED__, E_Menu_It
_e_fm2_refresh(sd, NULL, NULL);
}
static void
_e_fm2_view_menu_sorting_change_mtime(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi)
{
E_Fm2_Smart_Data *sd = data;
sd->config->list.sort.mtime = mi->toggle;
_e_fm2_refresh(sd, NULL, NULL);
}
static void
_e_fm2_view_menu_sorting_change_extension(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi)
{
@ -8735,6 +8751,12 @@ _e_fm2_view_menu_sorting_pre(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi)
e_menu_item_toggle_set(mi, sd->config->list.sort.extension);
e_menu_item_callback_set(mi, _e_fm2_view_menu_sorting_change_extension, sd);
mi = e_menu_item_new(subm);
e_menu_item_label_set(mi, _("Sort By Modification Time"));
e_menu_item_check_set(mi, 1);
e_menu_item_toggle_set(mi, sd->config->list.sort.mtime);
e_menu_item_callback_set(mi, _e_fm2_view_menu_sorting_change_mtime, sd);
mi = e_menu_item_new(subm);
e_menu_item_label_set(mi, _("Sort By Size"));
e_menu_item_check_set(mi, 1);

View File

@ -98,6 +98,7 @@ struct _E_Fm2_Config
Eina_Bool no_case : 1;
Eina_Bool size : 1;
Eina_Bool extension : 1;
Eina_Bool mtime : 1;
struct
{
Eina_Bool first : 1;

View File

@ -1305,6 +1305,7 @@ _e_fwin_config_set(E_Fwin_Page *page)
fmc.icon.extension.show = fileman_config->icon.extension.show;
fmc.list.sort.no_case = fileman_config->list.sort.no_case;
fmc.list.sort.extension = fileman_config->list.sort.extension;
fmc.list.sort.mtime = fileman_config->list.sort.mtime;
fmc.list.sort.size = fileman_config->list.sort.size;
fmc.list.sort.dirs.first = fileman_config->list.sort.dirs.first;
fmc.list.sort.dirs.last = fileman_config->list.sort.dirs.last;

View File

@ -52,6 +52,7 @@ struct _E_Config_Dialog_Data
{
int case_sen;
int extension;
int mtime;
int size;
struct
{
@ -151,6 +152,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->list.sort.dirs.first = fileman_config->list.sort.dirs.first;
cfdata->list.sort.case_sen = !(fileman_config->list.sort.no_case);
cfdata->list.sort.extension = fileman_config->list.sort.extension;
cfdata->list.sort.mtime = fileman_config->list.sort.mtime;
cfdata->list.sort.size = fileman_config->list.sort.size;
cfdata->dbus.desktop = e_config->device_desktop;
cfdata->dbus.auto_mount = e_config->device_auto_mount;
@ -193,6 +195,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__,
fileman_config->list.sort.dirs.first = cfdata->list.sort.dirs.first;
fileman_config->list.sort.dirs.last = !(cfdata->list.sort.dirs.first);
fileman_config->list.sort.extension = cfdata->list.sort.extension;
fileman_config->list.sort.mtime = cfdata->list.sort.mtime;
fileman_config->list.sort.size = cfdata->list.sort.size;
fileman_config->list.sort.no_case = !(cfdata->list.sort.case_sen);
@ -233,6 +236,7 @@ _basic_check_changed(E_Config_Dialog *cfd __UNUSED__,
(fileman_config->list.sort.dirs.last != !(cfdata->list.sort.dirs.first)) ||
(fileman_config->list.sort.size != cfdata->list.sort.size) ||
(fileman_config->list.sort.extension != cfdata->list.sort.extension) ||
(fileman_config->list.sort.mtime != cfdata->list.sort.mtime) ||
(fileman_config->list.sort.no_case != !(cfdata->list.sort.case_sen)) ||
(fileman_config->tooltip.delay != !(cfdata->tooltip.delay)) ||
(fileman_config->tooltip.size != !(cfdata->tooltip.size)) ||
@ -325,6 +329,9 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__,
ob = e_widget_check_add(evas, _("Sort By Extension"),
&(cfdata->list.sort.extension));
e_widget_list_object_append(o, ob, 1, 1, 0.5);
ob = e_widget_check_add(evas, _("Sort By Modification Time"),
&(cfdata->list.sort.mtime));
e_widget_list_object_append(o, ob, 1, 1, 0.5);
ob = e_widget_check_add(evas, _("Sort By Size"),
&(cfdata->list.sort.size));
e_widget_list_object_append(o, ob, 1, 1, 0.5);

View File

@ -689,6 +689,7 @@ _e_mod_fileman_config_load(void)
E_CONFIG_VAL(D, T, icon.extension.show, UCHAR);
E_CONFIG_VAL(D, T, list.sort.no_case, UCHAR);
E_CONFIG_VAL(D, T, list.sort.extension, UCHAR);
E_CONFIG_VAL(D, T, list.sort.mtime, UCHAR);
E_CONFIG_VAL(D, T, list.sort.size, UCHAR);
E_CONFIG_VAL(D, T, list.sort.dirs.first, UCHAR);
E_CONFIG_VAL(D, T, list.sort.dirs.last, UCHAR);

View File

@ -78,6 +78,7 @@ struct _Config
unsigned char no_case;
unsigned char extension;
unsigned char size;
unsigned char mtime;
struct
{
unsigned char first;