against my better judgment, showing regular files in the Files menu is now an option that can be enabled in the settings panel to break the world

SVN revision: 74858
This commit is contained in:
Mike Blumenkrantz 2012-08-03 17:34:03 +00:00
parent f55b60e3af
commit 53c4f46337
3 changed files with 38 additions and 24 deletions

View File

@ -21,6 +21,7 @@ struct _E_Config_Dialog_Data
int show_desktop_icons;
int show_toolbar;
int show_sidebar;
int menu_shows_files;
} view;
struct
{
@ -164,6 +165,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__,
fileman_config->view.show_desktop_icons = cfdata->view.show_desktop_icons;
fileman_config->view.show_toolbar = cfdata->view.show_toolbar;
fileman_config->view.show_sidebar = cfdata->view.show_sidebar;
fileman_config->view.menu_shows_files = cfdata->view.menu_shows_files;
fileman_config->icon.extension.show = cfdata->icon.extension.show;
fileman_config->selection.windows_modifiers = cfdata->selection.windows_modifiers;
@ -206,6 +208,7 @@ _basic_check_changed(E_Config_Dialog *cfd __UNUSED__,
(fileman_config->view.show_desktop_icons != cfdata->view.show_desktop_icons) ||
(fileman_config->view.show_toolbar != cfdata->view.show_toolbar) ||
(fileman_config->view.show_sidebar != cfdata->view.show_sidebar) ||
(fileman_config->view.menu_shows_files != cfdata->view.menu_shows_files) ||
(fileman_config->icon.extension.show != cfdata->icon.extension.show) ||
(fileman_config->selection.windows_modifiers != cfdata->selection.windows_modifiers) ||
(fileman_config->icon.icon.w != cfdata->icon.icon.w) ||
@ -304,6 +307,9 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__,
ob = e_widget_check_add(evas, _("Show Sidebar"),
&(cfdata->view.show_sidebar));
e_widget_list_object_append(o, ob, 1, 1, 0.5);
ob = e_widget_check_add(evas, _("Show Regular Files In Menu"),
&(cfdata->view.menu_shows_files));
e_widget_list_object_append(o, ob, 1, 1, 0.5);
e_widget_toolbook_page_append(otb, NULL, _("Behavior"), o, 0, 0, 0, 0, 0.5, 0.0);

View File

@ -376,6 +376,8 @@ static Eina_Bool
_e_mod_menu_populate_filter(void *data __UNUSED__, Eio_File *handler __UNUSED__, const Eina_File_Direct_Info *info)
{
/* don't show .dotfiles */
if (fileman_config->view.menu_shows_files)
return (info->path[info->name_start] != '.');
return (info->path[info->name_start] != '.') && (info->type == EINA_FILE_DIR);
}
@ -392,37 +394,38 @@ _e_mod_menu_populate_item(void *data, Eio_File *handler __UNUSED__, const Eina_F
path = mi ? e_object_data_get(E_OBJECT(mi)) : "/";
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, info->path + info->name_start);
#if 0
if (info->type != EINA_FILE_DIR)
if (fileman_config->view.menu_shows_files)
{
const char *mime = NULL;
Efreet_Desktop *ed = NULL;
char group[1024];
if (eina_str_has_extension(mi->label, "desktop"))
if (info->type != EINA_FILE_DIR)
{
ed = efreet_desktop_new(info->path);
if (ed)
const char *mime = NULL;
Efreet_Desktop *ed = NULL;
char group[1024];
if (eina_str_has_extension(mi->label, "desktop"))
{
e_util_menu_item_theme_icon_set(mi, ed->icon);
efreet_desktop_free(ed);
ed = efreet_desktop_new(info->path);
if (ed)
{
e_util_menu_item_theme_icon_set(mi, ed->icon);
efreet_desktop_free(ed);
return;
}
}
mime = efreet_mime_type_get(mi->label);
if (!mime) return;
if (!strncmp(mime, "image/", 6))
{
e_menu_item_icon_file_set(mi, info->path);
return;
}
}
mime = efreet_mime_type_get(mi->label);
if (!mime) return;
if (!strncmp(mime, "image/", 6))
{
e_menu_item_icon_file_set(mi, info->path);
snprintf(group, sizeof(group), "fileman/mime/%s", mime);
if (e_util_menu_item_theme_icon_set(mi, group))
return;
e_util_menu_item_theme_icon_set(mi, "fileman/mime/unknown");
return;
}
snprintf(group, sizeof(group), "fileman/mime/%s", mime);
if (e_util_menu_item_theme_icon_set(mi, group))
return;
e_util_menu_item_theme_icon_set(mi, "fileman/mime/unknown");
return;
}
#endif
e_util_menu_item_theme_icon_set(mi, "folder");
e_object_data_set(E_OBJECT(mi), eina_stringshare_printf("%s/%s", path ?: "/", info->path + info->name_start));
//fprintf(stderr, "PATH SET: %s\n", e_object_data_get(E_OBJECT(mi)));
@ -732,6 +735,10 @@ _e_mod_fileman_config_load(void)
fileman_config->view.show_sidebar = 1;
IFMODCFGEND;
IFMODCFG(0x0108);
fileman_config->view.menu_shows_files = 0;
IFMODCFGEND;
fileman_config->config_version = MOD_CONFIG_FILE_VERSION;
/* UCHAR's give nasty compile warnings about comparisons so not gonna limit those */

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 0x0107
#define MOD_CONFIG_FILE_GENERATION 0x0108
#define MOD_CONFIG_FILE_VERSION ((MOD_CONFIG_FILE_EPOCH << 16) | MOD_CONFIG_FILE_GENERATION)
typedef struct _Config Config;
@ -39,6 +39,7 @@ struct _Config
unsigned char show_desktop_icons;
unsigned char show_toolbar;
unsigned char show_sidebar;
unsigned char menu_shows_files;
} view;
struct
{