static void update_bookmarks (NautilusWindow *window) { NautilusBookmarkList *bookmarks; NautilusBookmark *bookmark; guint bookmark_count; guint index; GtkUIManager *ui_manager; g_assert (NAUTILUS_IS_WINDOW (window)); g_assert (window->details->bookmarks_merge_id == 0); g_assert (window->details->bookmarks_action_group == NULL); if (window->details->bookmark_list == NULL) { window->details->bookmark_list = nautilus_bookmark_list_new (); } bookmarks = window->details->bookmark_list; ui_manager = nautilus_window_get_ui_manager (NAUTILUS_WINDOW (window)); window->details->bookmarks_merge_id = gtk_ui_manager_new_merge_id (ui_manager); window->details->bookmarks_action_group = gtk_action_group_new ("BookmarksGroup"); g_signal_connect (window->details->bookmarks_action_group, "connect-proxy", G_CALLBACK (connect_proxy_cb), NULL); gtk_ui_manager_insert_action_group (ui_manager, window->details->bookmarks_action_group, -1); g_object_unref (window->details->bookmarks_action_group); /* append new set of bookmarks */ bookmark_count = nautilus_bookmark_list_length (bookmarks); for (index = 0; index < bookmark_count; ++index) { bookmark = nautilus_bookmark_list_item_at (bookmarks, index); if (nautilus_bookmark_uri_known_not_to_exist (bookmark)) { continue; } nautilus_menus_append_bookmark_to_menu (NAUTILUS_WINDOW (window), bookmark, NAUTILUS_WINDOW_GET_CLASS (window)->bookmarks_placeholder, "dynamic", index, window->details->bookmarks_action_group, window->details->bookmarks_merge_id, G_CALLBACK (refresh_bookmarks_menu), show_bogus_bookmark_window); } }
/** * refresh_go_menu: * * Refresh list of bookmarks at end of Go menu to match centralized history list. * @window: The NautilusWindow whose Go menu will be refreshed. **/ static void refresh_go_menu (NautilusNavigationWindow *window) { GtkUIManager *ui_manager; GList *node; int index; g_assert (NAUTILUS_IS_NAVIGATION_WINDOW (window)); /* Unregister any pending call to this function. */ nautilus_navigation_window_remove_go_menu_callback (window); /* Remove old set of history items. */ nautilus_navigation_window_remove_go_menu_items (window); ui_manager = nautilus_window_get_ui_manager (NAUTILUS_WINDOW (window)); window->details->go_menu_merge_id = gtk_ui_manager_new_merge_id (ui_manager); window->details->go_menu_action_group = gtk_action_group_new ("GoMenuGroup"); g_signal_connect (window->details->go_menu_action_group, "connect-proxy", G_CALLBACK (connect_proxy_cb), NULL); gtk_ui_manager_insert_action_group (ui_manager, window->details->go_menu_action_group, -1); g_object_unref (window->details->go_menu_action_group); /* Add in a new set of history items. */ for (node = nautilus_get_history_list (), index = 0; node != NULL && index < 10; node = node->next, index++) { nautilus_menus_append_bookmark_to_menu (NAUTILUS_WINDOW (window), NAUTILUS_BOOKMARK (node->data), MENU_PATH_HISTORY_PLACEHOLDER, "history", index, window->details->go_menu_action_group, window->details->go_menu_merge_id, G_CALLBACK (schedule_refresh_go_menu), show_bogus_history_window); } }