static void fill_menu (CajaNavigationWindow *window, GtkWidget *menu, gboolean back) { CajaNavigationWindowSlot *slot; GtkWidget *menu_item; int index; GList *list; g_assert (CAJA_IS_NAVIGATION_WINDOW (window)); slot = CAJA_NAVIGATION_WINDOW_SLOT (CAJA_WINDOW (window)->details->active_pane->active_slot); list = back ? slot->back_list : slot->forward_list; index = 0; while (list != NULL) { menu_item = caja_bookmark_menu_item_new (CAJA_BOOKMARK (list->data)); g_object_set_data (G_OBJECT (menu_item), "user_data", GINT_TO_POINTER (index)); gtk_widget_show (GTK_WIDGET (menu_item)); g_signal_connect_object (menu_item, "activate", back ? G_CALLBACK (activate_back_menu_item_callback) : G_CALLBACK (activate_forward_menu_item_callback), window, 0); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); list = g_list_next (list); ++index; } }
static void open_selected_item (CajaHistorySidebar *sidebar, GtkTreePath *path, CajaWindowOpenFlags flags) { CajaWindowSlotInfo *slot; GtkTreeModel *model; GtkTreeIter iter; CajaBookmark *bookmark; GFile *location; model = gtk_tree_view_get_model (sidebar->tree_view); if (!gtk_tree_model_get_iter (model, &iter, path)) { return; } gtk_tree_model_get (model, &iter, HISTORY_SIDEBAR_COLUMN_BOOKMARK, &bookmark, -1); /* Navigate to the clicked location. */ location = caja_bookmark_get_location (CAJA_BOOKMARK (bookmark)); slot = caja_window_info_get_active_slot (sidebar->window); caja_window_slot_info_open_location (slot, location, CAJA_WINDOW_OPEN_ACCORDING_TO_MODE, flags, NULL); g_object_unref (location); }
static int bookmark_list_get_uri_index (GList *list, GFile *location) { CajaBookmark *bookmark; GList *l; GFile *tmp; int i; g_return_val_if_fail (location != NULL, -1); for (i = 0, l = list; l != NULL; i++, l = l->next) { bookmark = CAJA_BOOKMARK (l->data); tmp = caja_bookmark_get_location (bookmark); if (g_file_equal (location, tmp)) { g_object_unref (tmp); return i; } g_object_unref (tmp); } return -1; }
static void caja_bookmark_finalize (GObject *object) { CajaBookmark *bookmark; g_assert (CAJA_IS_BOOKMARK (object)); bookmark = CAJA_BOOKMARK (object); caja_bookmark_disconnect_file (bookmark); g_free (bookmark->details->name); g_object_unref (bookmark->details->location); if (bookmark->details->icon) { g_object_unref (bookmark->details->icon); } g_free (bookmark->details->scroll_file); g_free (bookmark->details); G_OBJECT_CLASS (caja_bookmark_parent_class)->finalize (object); }