forked from enlightenment/enlightenment
another user request: sorting by size in efm
SVN revision: 76124
This commit is contained in:
parent
22de6ede9b
commit
1fca248c55
|
@ -7710,6 +7710,21 @@ _e_fm2_cb_icon_sort(const void *data1, const void *data2)
|
|||
else if (f1) return 1;
|
||||
else if (f2) return -1;
|
||||
}
|
||||
if (ic1->sd->config->list.sort.size)
|
||||
{
|
||||
if (ic1->info.link)
|
||||
{
|
||||
if (!ic2->info.link) return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ic2->info.link) return -1;
|
||||
if (ic1->info.statinfo.st_size > ic2->info.statinfo.st_size)
|
||||
return -1;
|
||||
else if (ic1->info.statinfo.st_size < ic2->info.statinfo.st_size)
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (ic1->sd->config->list.sort.no_case)
|
||||
return strcasecmp(l1, l2);
|
||||
return strcmp(l1, l2);
|
||||
|
@ -8661,6 +8676,15 @@ _e_fm2_view_menu_sorting_change_case(void *data, E_Menu *m __UNUSED__, E_Menu_It
|
|||
_e_fm2_refresh(sd, NULL, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_fm2_view_menu_sorting_change_size(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi)
|
||||
{
|
||||
E_Fm2_Smart_Data *sd = data;
|
||||
|
||||
sd->config->list.sort.size = 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)
|
||||
{
|
||||
|
@ -8711,6 +8735,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 Size"));
|
||||
e_menu_item_check_set(mi, 1);
|
||||
e_menu_item_toggle_set(mi, sd->config->list.sort.size);
|
||||
e_menu_item_callback_set(mi, _e_fm2_view_menu_sorting_change_size, sd);
|
||||
|
||||
mi = e_menu_item_new(subm);
|
||||
e_menu_item_separator_set(mi, 1);
|
||||
|
||||
|
|
|
@ -96,6 +96,7 @@ struct _E_Fm2_Config
|
|||
struct
|
||||
{
|
||||
Eina_Bool no_case : 1;
|
||||
Eina_Bool size : 1;
|
||||
Eina_Bool extension : 1;
|
||||
struct
|
||||
{
|
||||
|
|
|
@ -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.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;
|
||||
fmc.selection.single = fileman_config->selection.single;
|
||||
|
|
|
@ -52,6 +52,7 @@ struct _E_Config_Dialog_Data
|
|||
{
|
||||
int case_sen;
|
||||
int extension;
|
||||
int size;
|
||||
struct
|
||||
{
|
||||
int first, last;
|
||||
|
@ -150,6 +151,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.size = fileman_config->list.sort.size;
|
||||
cfdata->dbus.desktop = e_config->device_desktop;
|
||||
cfdata->dbus.auto_mount = e_config->device_auto_mount;
|
||||
cfdata->dbus.auto_open = e_config->device_auto_open;
|
||||
|
@ -191,6 +193,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.size = cfdata->list.sort.size;
|
||||
fileman_config->list.sort.no_case = !(cfdata->list.sort.case_sen);
|
||||
|
||||
e_config->device_desktop = cfdata->dbus.desktop;
|
||||
|
@ -228,6 +231,7 @@ _basic_check_changed(E_Config_Dialog *cfd __UNUSED__,
|
|||
(fileman_config->icon.icon.h != cfdata->icon.icon.w) ||
|
||||
(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.size != cfdata->list.sort.size) ||
|
||||
(fileman_config->list.sort.extension != cfdata->list.sort.extension) ||
|
||||
(fileman_config->list.sort.no_case != !(cfdata->list.sort.case_sen)) ||
|
||||
(fileman_config->tooltip.delay != !(cfdata->tooltip.delay)) ||
|
||||
|
@ -321,6 +325,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 Size"),
|
||||
&(cfdata->list.sort.size));
|
||||
e_widget_list_object_append(o, ob, 1, 1, 0.5);
|
||||
ob = e_widget_check_add(evas, _("Use Single Click"),
|
||||
&(cfdata->view.single_click));
|
||||
e_widget_list_object_append(o, ob, 1, 1, 0.5);
|
||||
|
|
|
@ -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.size, UCHAR);
|
||||
E_CONFIG_VAL(D, T, list.sort.dirs.first, UCHAR);
|
||||
E_CONFIG_VAL(D, T, list.sort.dirs.last, UCHAR);
|
||||
E_CONFIG_VAL(D, T, selection.single, UCHAR);
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
/* Increment for Major Changes */
|
||||
#define MOD_CONFIG_FILE_EPOCH 0x0001
|
||||
/* Increment for Minor Changes (ie: user doesn't need a new config) */
|
||||
#define MOD_CONFIG_FILE_GENERATION 0x0110
|
||||
#define MOD_CONFIG_FILE_GENERATION 0x0111
|
||||
#define MOD_CONFIG_FILE_VERSION ((MOD_CONFIG_FILE_EPOCH << 16) | MOD_CONFIG_FILE_GENERATION)
|
||||
|
||||
typedef struct _Config Config;
|
||||
|
@ -77,6 +77,7 @@ struct _Config
|
|||
{
|
||||
unsigned char no_case;
|
||||
unsigned char extension;
|
||||
unsigned char size;
|
||||
struct
|
||||
{
|
||||
unsigned char first;
|
||||
|
|
Loading…
Reference in New Issue