add configurable max file size to generate thumbnails for, also block thumbnail generation for movie files entirely since this isn't even possible

ticket #1545


SVN revision: 76931
This commit is contained in:
Mike Blumenkrantz 2012-09-21 07:08:21 +00:00
parent 37f4478e0a
commit 709c740a27
6 changed files with 33 additions and 1 deletions

View File

@ -1025,6 +1025,7 @@ e_fm2_path_set(Evas_Object *obj, const char *dev, const char *path)
sd->config->view.single_click = e_config->filemanager_single_click;
sd->config->view.single_click_delay = EINA_FALSE;
sd->config->view.no_subdir_jump = EINA_FALSE;
sd->config->icon.max_thumb_size = 5;
sd->config->icon.icon.w = 128;
sd->config->icon.icon.h = 128;
sd->config->icon.list.w = 24;
@ -2176,6 +2177,19 @@ e_fm2_icon_get(Evas *evas, E_Fm2_Icon *ic,
if (o) return o;
}
if (eina_str_has_extension(ic->info.file, ".avi") ||
eina_str_has_extension(ic->info.file, ".mpg") ||
eina_str_has_extension(ic->info.file, ".mpeg") ||
eina_str_has_extension(ic->info.file, ".mkv") ||
(ic->info.statinfo.st_size >= (ic->sd->config->icon.max_thumb_size ?: 5) * 1024 * 1024))
{
/* block movie thumbnails, which we can't do, and large file previews,
* which we won't do
*/
ic->thumb_failed = EINA_TRUE;
}
/* create thumbnails for edje files */
if (_e_fm2_file_is_edje(ic->info.file))
{

View File

@ -90,6 +90,7 @@ struct _E_Fm2_Config
Eina_Bool show : 1;
} extension;
const char *key_hint;
unsigned int max_thumb_size;
} icon;
/* how to sort files */
struct

View File

@ -1432,6 +1432,7 @@ _e_fwin_config_set(E_Fwin_Page *page)
fmc.view.selector = 0;
fmc.view.single_click = fileman_config->view.single_click;
fmc.view.no_subdir_jump = 0;
fmc.icon.max_thumb_size = fileman_config->icon.max_thumb_size;
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;

View File

@ -44,6 +44,7 @@ struct _E_Config_Dialog_Data
int show;
} extension;
const char *key_hint;
int max_thumb_size;
} icon;
/* how to sort files */
struct
@ -147,6 +148,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->view.show_sidebar = fileman_config->view.show_sidebar;
cfdata->view.desktop_navigation = fileman_config->view.desktop_navigation;
cfdata->view.menu_shows_files = fileman_config->view.menu_shows_files;
cfdata->icon.max_thumb_size = fileman_config->icon.max_thumb_size;
cfdata->icon.icon.w = fileman_config->icon.icon.w;
cfdata->icon.icon.h = fileman_config->icon.icon.h;
cfdata->tooltip.delay = fileman_config->tooltip.delay;
@ -237,6 +239,7 @@ _basic_check_changed(E_Config_Dialog *cfd __UNUSED__,
(fileman_config->view.desktop_navigation != cfdata->view.desktop_navigation) ||
(fileman_config->view.menu_shows_files != cfdata->view.menu_shows_files) ||
(fileman_config->icon.extension.show != cfdata->icon.extension.show) ||
((int)fileman_config->icon.max_thumb_size != cfdata->icon.max_thumb_size) ||
(fileman_config->selection.windows_modifiers != cfdata->selection.windows_modifiers) ||
(fileman_config->icon.icon.w != cfdata->icon.icon.w) ||
(fileman_config->icon.icon.h != cfdata->icon.icon.w) ||
@ -391,6 +394,12 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__,
&(cfdata->view.desktop_navigation));
e_widget_list_object_append(o, ob, 1, 1, 0.5);
ob = e_widget_label_add(evas, _("Max File Size For Thumbnailing"));
e_widget_list_object_append(o, ob, 1, 1, 0.5);
ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), 1.0, 10.0, 1, 0,
NULL, &(cfdata->icon.max_thumb_size), 150);
e_widget_list_object_append(o, ob, 1, 1, 0.5);
ob = e_widget_label_add(evas, _("Spring Delay"));
e_widget_list_object_append(o, ob, 1, 1, 0.5);
ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), 1.0, 10.0, 1, 0,

View File

@ -252,6 +252,7 @@ _e_mod_fileman_config_load(void)
E_CONFIG_VAL(D, T, icon.fixed.w, UCHAR);
E_CONFIG_VAL(D, T, icon.fixed.h, UCHAR);
E_CONFIG_VAL(D, T, icon.extension.show, UCHAR);
E_CONFIG_VAL(D, T, icon.max_thumb_size, UINT);
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);
@ -340,6 +341,10 @@ _e_mod_fileman_config_load(void)
fileman_config->view.spring_delay = 1;
IFMODCFGEND;
IFMODCFG(0x0115);
fileman_config->icon.max_thumb_size = 5;
IFMODCFGEND;
fileman_config->config_version = MOD_CONFIG_FILE_VERSION;
/* UCHAR's give nasty compile warnings about comparisons so not gonna limit those */
@ -352,6 +357,7 @@ _e_mod_fileman_config_load(void)
E_CONFIG_LIMIT(fileman_config->tooltip.delay, 0.0, 5.0);
E_CONFIG_LIMIT(fileman_config->tooltip.size, 10.0, 75.0);
E_CONFIG_LIMIT(fileman_config->view.spring_delay, 1, 10);
E_CONFIG_LIMIT(fileman_config->icon.max_thumb_size, 1, 10);
e_config_save_queue();
}

View File

@ -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 0x0114
#define MOD_CONFIG_FILE_GENERATION 0x0115
#define MOD_CONFIG_FILE_VERSION ((MOD_CONFIG_FILE_EPOCH << 16) | MOD_CONFIG_FILE_GENERATION)
typedef struct _Config Config;
@ -76,6 +76,7 @@ struct _Config
unsigned char show;
} extension;
const char *key_hint;
unsigned int max_thumb_size;
} icon;
/* how to sort files */
struct