filepreview directory previews now allow navigation, disable click rename in filepreview and fsel

SVN revision: 75015
This commit is contained in:
Mike Blumenkrantz 2012-08-08 12:21:33 +00:00
parent 8ab4a302b4
commit e58efabc1e
2 changed files with 70 additions and 1 deletions

View File

@ -294,6 +294,37 @@ _e_wid_fprev_preview_reset(E_Widget_Data *wd)
1, 1, 0.5);
}
static void
_e_wid_cb_selected(void *data, Evas_Object *obj, void *event __UNUSED__)
{
evas_object_smart_callback_call(data, "selected", obj);
}
static void
_e_wid_cb_selection_change(void *data, Evas_Object *obj, void *event __UNUSED__)
{
evas_object_smart_callback_call(data, "selection_change", obj);
}
static void
_e_wid_cb_dir_changed(void *data, Evas_Object *obj, void *event __UNUSED__)
{
evas_object_smart_callback_call(data, "dir_changed", obj);
}
static void
_e_wid_cb_changed(void *data, Evas_Object *obj, void *event __UNUSED__)
{
evas_object_smart_callback_call(data, "changed", obj);
}
static void
_e_wid_cb_file_deleted(void *data, Evas_Object *obj, void *event __UNUSED__)
{
evas_object_smart_callback_call(data, "files_deleted", obj);
}
static void
_e_wid_fprev_preview_fm(E_Widget_Data *wd)
{
@ -320,7 +351,7 @@ _e_wid_fprev_preview_fm(E_Widget_Data *wd)
fmc.view.mode = E_FM2_VIEW_MODE_LIST;
fmc.view.open_dirs_in_place = 1;
fmc.view.selector = 1;
fmc.view.single_click = 1;
fmc.view.single_click = 0;
fmc.view.no_subdir_jump = 1;
fmc.view.no_subdir_drop = 1;
fmc.view.link_drop = 1;
@ -329,8 +360,20 @@ _e_wid_fprev_preview_fm(E_Widget_Data *wd)
fmc.icon.fixed.w = 1;
fmc.icon.fixed.h = 1;
fmc.list.sort.no_case = 1;
fmc.view.no_click_rename = 1;
fmc.selection.single = 1;
e_fm2_config_set(o, &fmc);
e_fm2_icon_menu_flags_set(o, E_FM2_MENU_NO_VIEW_MENU);
evas_object_smart_callback_add(o, "dir_changed",
_e_wid_cb_dir_changed, wd->obj);
evas_object_smart_callback_add(o, "selection_change",
_e_wid_cb_selection_change, wd->obj);
evas_object_smart_callback_add(o, "changed",
_e_wid_cb_changed, wd->obj);
evas_object_smart_callback_add(o, "files_deleted",
_e_wid_cb_file_deleted, wd->obj);
evas_object_smart_callback_add(o, "selected",
_e_wid_cb_selected, wd->obj);
o = e_widget_scrollframe_pan_add(evas, wd->o_preview_preview,
e_fm2_pan_set,
e_fm2_pan_get,

View File

@ -229,6 +229,29 @@ _e_wid_fsel_files_selection_change(void *data, Evas_Object *obj __UNUSED__, void
if (wd->chg_func) wd->chg_func(wd->chg_data, wd->obj);
}
static void
_e_wid_fsel_preview_file_selected(void *data, Evas_Object *obj __UNUSED__, void *event_info)
{
E_Widget_Data *wd;
Eina_List *l;
E_Fm2_Icon_Info *ici;
const char *path, *dev, *newpath;
wd = data;
l = e_fm2_selected_list_get(event_info);
if (!l) return;
ici = eina_list_data_get(l);
if (S_ISDIR(ici->statinfo.st_mode))
{
e_fm2_path_get(event_info, &dev, &path);
newpath = eina_stringshare_printf("%s/%s", path, ici->file);
e_fm2_path_set(wd->o_files_fm, dev, newpath);
eina_stringshare_del(newpath);
return;
}
if (wd->sel_func) wd->sel_func(wd->sel_data, wd->obj);
}
static void
_e_wid_fsel_files_selected(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
@ -300,6 +323,8 @@ e_widget_fsel_add(Evas *evas, const char *dev, const char *path, char *selected,
wd->o_preview_frame = e_widget_framelist_add(evas, _("Preview"), 0);
wd->o_preview = e_widget_filepreview_add(evas, 128, 128, 0);
e_widget_framelist_object_append(wd->o_preview_frame, wd->o_preview);
evas_object_smart_callback_add(wd->o_preview, "selected",
_e_wid_fsel_preview_file_selected, wd);
}
o = e_fm2_add(evas);
@ -363,6 +388,7 @@ e_widget_fsel_add(Evas *evas, const char *dev, const char *path, char *selected,
fmc.list.sort.dirs.last = 0;
fmc.selection.single = 1;
fmc.selection.windows_modifiers = 0;
fmc.view.no_click_rename = 1;
e_fm2_config_set(o, &fmc);
e_fm2_icon_menu_flags_set(o, E_FM2_MENU_NO_VIEW_MENU);
evas_object_smart_callback_add(o, "dir_changed",