feature: add fileman option to clamp video size for video previews

T102
This commit is contained in:
Mike Blumenkrantz 2014-01-27 12:28:35 -05:00
parent 3aa7a32618
commit bc3e1fd94f
5 changed files with 36 additions and 0 deletions

View File

@ -45,6 +45,7 @@ struct _E_Widget_Data
Eina_Bool prev_is_txt : 1;
Eina_Bool prev_is_font : 1;
Eina_Bool prev_is_video : 1;
Eina_Bool clamp_video : 1;
};
static void _e_wid_fprev_preview_update(void *data, Evas_Object *obj, void *event_info);
@ -254,6 +255,18 @@ _e_wid_fprev_preview_video_position(E_Widget_Data *wd, Evas_Object *obj, void *e
e_widget_size_min_set(wd->obj, mw, mh);
}
static void
_e_wid_fprev_preview_video_resize(E_Widget_Data *wd, Evas_Object *obj, void *event_info __UNUSED__)
{
int w, h, mw, mh;
emotion_object_size_get(obj, &w, &h);
if (!wd->clamp_video) return;
e_widget_size_min_get(wd->o_preview_preview, &mw, &mh);
e_table_pack_options_set(wd->o_preview_preview, 1, 1, 1, 1, 0.5, 0.5, mw, mh, w, h);
}
static void
_e_wid_fprev_preview_video_opened(E_Widget_Data *wd, Evas_Object *obj, void *event_info __UNUSED__)
{
@ -322,6 +335,7 @@ _e_wid_fprev_preview_video_widgets(E_Widget_Data *wd)
e_widget_table_object_append(wd->o_preview_properties_table,
wd->o_preview_preview, 0, 0, 2, 2, 1, 1, 1, 1);
evas_object_smart_callback_add(o, "frame_resize", (Evas_Smart_Cb)_e_wid_fprev_preview_video_resize, wd);
evas_object_smart_callback_add(o, "length_change", (Evas_Smart_Cb)_e_wid_fprev_preview_video_opened, wd);
evas_object_smart_callback_add(o, "frame_decode", (Evas_Smart_Cb)_e_wid_fprev_preview_video_position, wd);
@ -1237,3 +1251,13 @@ e_widget_filepreview_filemode_force(Evas_Object *obj)
_e_wid_fprev_preview_file_widgets(wd, 0, 0, 0);
}
EAPI void
e_widget_filepreview_clamp_video_set(Evas_Object *obj, Eina_Bool clamp)
{
E_Widget_Data *wd;
EINA_SAFETY_ON_NULL_RETURN(obj);
wd = e_widget_data_get(obj);
EINA_SAFETY_ON_NULL_RETURN(wd);
wd->clamp_video = !!clamp;
}

View File

@ -848,6 +848,7 @@ _e_fwin_icon_popup(void *data)
list = e_widget_list_add(e_comp_get(zone)->evas, 0, 0);
o = e_widget_filepreview_add(e_comp_get(zone)->evas, mw, mh, 0);
e_widget_filepreview_clamp_video_set(o, fileman_config->tooltip.clamp_size);
e_widget_filepreview_path_set(o, buf, fwin->popup_icon->mime);
e_widget_list_object_append(list, o, 1, 0, 0.5);
e_widget_size_min_get(list, &mw, &mh);

View File

@ -28,6 +28,8 @@ struct _E_Config_Dialog_Data
double delay;
double size;
Eina_Bool enable;
Eina_Bool clamp_size;
Evas_Object *check_clamp_size;
Evas_Object *delay_slider_text;
Evas_Object *delay_slider;
Evas_Object *size_slider_text;
@ -158,6 +160,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->tooltip.delay = fileman_config->tooltip.delay;
cfdata->tooltip.size = fileman_config->tooltip.size;
cfdata->tooltip.enable = fileman_config->tooltip.enable;
cfdata->tooltip.clamp_size = fileman_config->tooltip.clamp_size;
cfdata->selection.windows_modifiers = fileman_config->selection.windows_modifiers;
cfdata->list.sort.dirs.first = fileman_config->list.sort.dirs.first;
cfdata->list.sort.extension = fileman_config->list.sort.extension;
@ -201,6 +204,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__,
fileman_config->tooltip.delay = cfdata->tooltip.delay;
fileman_config->tooltip.size = cfdata->tooltip.size;
fileman_config->tooltip.enable = cfdata->tooltip.enable;
fileman_config->tooltip.clamp_size = cfdata->tooltip.clamp_size;
fileman_config->selection.windows_modifiers = cfdata->selection.windows_modifiers;
fileman_config->list.sort.dirs.first = cfdata->list.sort.dirs.first;
fileman_config->list.sort.dirs.last = !(cfdata->list.sort.dirs.first);
@ -248,6 +252,7 @@ _basic_check_changed(E_Config_Dialog *cfd __UNUSED__,
(fileman_config->tooltip.delay != cfdata->tooltip.delay) ||
(fileman_config->tooltip.size != cfdata->tooltip.size) ||
(fileman_config->tooltip.enable != cfdata->tooltip.enable) ||
(fileman_config->tooltip.clamp_size != cfdata->tooltip.clamp_size) ||
(fileman_config->selection.windows_modifiers != cfdata->selection.windows_modifiers) ||
(fileman_config->list.sort.dirs.first != cfdata->list.sort.dirs.first) ||
(fileman_config->list.sort.dirs.last != !(cfdata->list.sort.dirs.first)) ||
@ -283,6 +288,7 @@ _tooltip_changed(void *data, Evas_Object *obj __UNUSED__)
{
E_Config_Dialog_Data *cfdata = data;
e_widget_disabled_set(cfdata->tooltip.check_clamp_size, !cfdata->tooltip.enable);
e_widget_disabled_set(cfdata->tooltip.delay_slider_text, !cfdata->tooltip.enable);
e_widget_disabled_set(cfdata->tooltip.delay_slider, !cfdata->tooltip.enable);
e_widget_disabled_set(cfdata->tooltip.size_slider_text, !cfdata->tooltip.enable);
@ -459,6 +465,9 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__,
(int*)&(cfdata->tooltip.enable));
e_widget_on_change_hook_set(ob, _tooltip_changed, cfdata);
e_widget_list_object_append(o, ob, 1, 1, 0.5);
cfdata->tooltip.check_clamp_size = ob = e_widget_check_add(evas, _("Clamp video size"),
(int*)&(cfdata->tooltip.clamp_size));
e_widget_list_object_append(o, ob, 1, 1, 0.5);
cfdata->tooltip.delay_slider_text = ob = e_widget_label_add(evas, _("Tooltip delay"));
e_widget_list_object_append(o, ob, 1, 1, 0.5);
cfdata->tooltip.delay_slider = ob = e_widget_slider_add(evas, 1, 0, _("%1.1f"), 0.0, 5.0, 0.5, 0,

View File

@ -260,6 +260,7 @@ _e_mod_fileman_config_load(void)
E_CONFIG_VAL(D, T, tooltip.delay, DOUBLE);
E_CONFIG_VAL(D, T, tooltip.size, DOUBLE);
E_CONFIG_VAL(D, T, tooltip.enable, UCHAR);
E_CONFIG_VAL(D, T, tooltip.clamp_size, UCHAR);
E_CONFIG_VAL(D, T, view.spring_delay, INT);
E_CONFIG_VAL(D, T, view.toolbar_orient, UINT);
E_CONFIG_LIST(D, T, paths, paths_edd);

View File

@ -46,6 +46,7 @@ struct _Config
double delay;
double size;
Eina_Bool enable;
Eina_Bool clamp_size;
} tooltip;
/* display of icons */
struct