add "current directory" to fileman menu browser when activating it from an fwin

SVN revision: 76724
This commit is contained in:
Mike Blumenkrantz 2012-09-17 04:11:27 +00:00
parent 0f35a6bf3c
commit 87ab5d8968
4 changed files with 16 additions and 6 deletions

View File

@ -2081,7 +2081,7 @@ _e_fwin_cb_menu_extend_start(void *data,
selected = e_fm2_selected_list_get(page->fm_obj);
#ifdef ENABLE_FILES
subm = e_mod_menu_add(m);
subm = e_mod_menu_add(m, e_fm2_real_path_get(page->fm_obj));
if (((!page->fwin->zone) || fileman_config->view.desktop_navigation) && e_fm2_has_parent_get(obj))
{

View File

@ -209,7 +209,7 @@ _e_mod_action_fileman_cb(E_Object *obj,
void
_e_mod_menu_add(void *data __UNUSED__, E_Menu *m)
{
e_mod_menu_add(m);
e_mod_menu_add(m, NULL);
}
/* Abstract fileman config load/create to one function for maintainability */

View File

@ -120,7 +120,7 @@ EAPI int e_modapi_save(E_Module *m);
extern Config *fileman_config;
Fileman_Path *e_mod_fileman_path_find(E_Zone *zone);
E_Menu *e_mod_menu_add(E_Menu *m);
E_Menu *e_mod_menu_add(E_Menu *m, const char *path);
E_Config_Dialog *e_int_config_fileman(E_Container *con, const char *params __UNUSED__);

View File

@ -296,10 +296,11 @@ _e_mod_menu_free(void *data)
/* menu item add hook */
static void
_e_mod_menu_generate(void *data __UNUSED__, E_Menu *m)
_e_mod_menu_generate(void *data, E_Menu *m)
{
E_Volume *vol;
E_Menu_Item *mi;
const char *path = data;
const char *s;
const Eina_List *l;
Eina_Bool need_separator;
@ -308,6 +309,15 @@ _e_mod_menu_generate(void *data __UNUSED__, E_Menu *m)
if (eina_list_count(m->items) > 4) return; /* parent, clone,, copy, and separator */
e_object_free_attach_func_set(E_OBJECT(m), _e_mod_menu_free);
if (path)
{
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Current Directory"));
e_util_menu_item_theme_icon_set(mi, "folder");
e_menu_item_submenu_pre_callback_set(mi, _e_mod_menu_populate, eina_stringshare_ref(path));
}
eina_stringshare_del(path);
/* Home */
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Home"));
@ -373,7 +383,7 @@ _e_mod_menu_generate(void *data __UNUSED__, E_Menu *m)
/* returns submenu so we can add Go to Parent */
E_Menu *
e_mod_menu_add(E_Menu *m)
e_mod_menu_add(E_Menu *m, const char *path)
{
#ifdef ENABLE_FILES
E_Menu_Item *mi;
@ -385,7 +395,7 @@ e_mod_menu_add(E_Menu *m)
sub = e_menu_new();
e_menu_item_submenu_set(mi, sub);
e_object_unref(E_OBJECT(sub)); //allow deletion whenever main menu deletes
e_menu_pre_activate_callback_set(sub, _e_mod_menu_generate, NULL);
e_menu_pre_activate_callback_set(sub, _e_mod_menu_generate, (void*)eina_stringshare_ref(path));
return sub;
#else
(void)m;