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); } }
static void activate_bookmark_in_menu_item (GtkAction *action, gpointer user_data) { BookmarkHolder *holder; GFile *location; holder = (BookmarkHolder *)user_data; if (nautilus_bookmark_uri_known_not_to_exist (holder->bookmark)) { holder->failed_callback (holder->window, holder->bookmark); } else { location = nautilus_bookmark_get_location (holder->bookmark); nautilus_window_go_to (holder->window, location); g_object_unref (location); } }
static void activate_bookmark_in_menu_item (GtkAction *action, gpointer user_data) { NautilusWindowSlot *slot; BookmarkHolder *holder; GFile *location; holder = (BookmarkHolder *)user_data; if (nautilus_bookmark_uri_known_not_to_exist (holder->bookmark)) { holder->failed_callback (holder->window, holder->bookmark); } else { location = nautilus_bookmark_get_location (holder->bookmark); slot = nautilus_window_get_active_slot (holder->window); nautilus_window_slot_go_to (slot, location, should_open_in_new_tab ()); g_object_unref (location); } }