split off gtk bookmarks into their own submenu so the navigate menu doesn't get too huge

SVN revision: 76681
This commit is contained in:
Mike Blumenkrantz 2012-09-14 16:00:24 +00:00
parent e58b6f199b
commit eed83ff084
1 changed files with 23 additions and 21 deletions

View File

@ -226,6 +226,7 @@ _e_mod_fileman_parse_gtk_bookmarks(E_Menu *m,
{ {
char line[4096]; char line[4096];
char buf[PATH_MAX]; char buf[PATH_MAX];
E_Menu *subm = NULL;
E_Menu_Item *mi; E_Menu_Item *mi;
Efreet_Uri *uri; Efreet_Uri *uri;
char *alias; char *alias;
@ -235,7 +236,7 @@ _e_mod_fileman_parse_gtk_bookmarks(E_Menu *m,
fp = fopen(buf, "r"); fp = fopen(buf, "r");
if (fp) if (fp)
{ {
while(fgets(line, sizeof(line), fp)) while (fgets(line, sizeof(line), fp))
{ {
alias = NULL; alias = NULL;
line[strlen(line) - 1] = '\0'; line[strlen(line) - 1] = '\0';
@ -246,27 +247,32 @@ _e_mod_fileman_parse_gtk_bookmarks(E_Menu *m,
alias++; alias++;
} }
uri = efreet_uri_decode(line); uri = efreet_uri_decode(line);
if (uri && uri->path) if ((!uri) || (!uri->path)) continue;
if (!ecore_file_exists(uri->path)) continue;
if (!subm)
{ {
if (ecore_file_exists(uri->path)) if (need_separator)
{ {
if (need_separator)
{
mi = e_menu_item_new(m);
e_menu_item_separator_set(mi, 1);
need_separator = 0;
}
mi = e_menu_item_new(m); mi = e_menu_item_new(m);
e_object_data_set(E_OBJECT(mi), uri->path); e_menu_item_separator_set(mi, 1);
e_menu_item_label_set(mi, alias ? alias : need_separator = 0;
ecore_file_file_get(uri->path));
e_util_menu_item_theme_icon_set(mi, "folder");
e_menu_item_callback_set(mi, _e_mod_menu_gtk_cb,
(void *)eina_stringshare_add(uri->path));
e_menu_item_submenu_pre_callback_set(mi, _e_mod_menu_populate, eina_stringshare_add("/"));
} }
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("GTK Bookmarks"));
e_util_menu_item_theme_icon_set(mi, "bookmarks");
subm = e_menu_new();
e_menu_item_submenu_set(mi, subm);
e_object_unref(E_OBJECT(subm));
} }
mi = e_menu_item_new(subm);
e_object_data_set(E_OBJECT(mi), uri->path);
e_menu_item_label_set(mi, alias ? alias :
ecore_file_file_get(uri->path));
e_util_menu_item_theme_icon_set(mi, "folder");
e_menu_item_callback_set(mi, _e_mod_menu_gtk_cb,
(void *)eina_stringshare_add(uri->path));
e_menu_item_submenu_pre_callback_set(mi, _e_mod_menu_populate, eina_stringshare_add("/"));
if (uri) efreet_uri_free(uri); if (uri) efreet_uri_free(uri);
} }
fclose(fp); fclose(fp);
@ -361,11 +367,7 @@ _e_mod_menu_generate(void *data __UNUSED__, E_Menu *m)
volumes_visible = 1; volumes_visible = 1;
} }
/* Favorites */
//~ if (places_conf->show_bookm)
//~ {
_e_mod_fileman_parse_gtk_bookmarks(m, need_separator || volumes_visible > 0); _e_mod_fileman_parse_gtk_bookmarks(m, need_separator || volumes_visible > 0);
//~ }
e_menu_pre_activate_callback_set(m, NULL, NULL); e_menu_pre_activate_callback_set(m, NULL, NULL);
} }