view src/view_dir_tree.h @ 565:85b9cec260bc

Fix a bug occuring when using certain actions on a collection item which is not in the selection. Triggering it will either result in an assertion failure or a segfault. To reproduce: - open a collection - right-click on a non-selected image - select Delete... menu entry (or Copy, Move, Rename, Properties...) It results in the best case: ** ERROR **: file filelist.c: line 905 (file_data_ref): assertion failed: (fd->magick == 0x12345678) or a pure segfault due to corrupted data. collection_table_popup_file_list() has to return a list of filedata * not a list of gchar *.
author zas_
date Sat, 03 May 2008 16:58:17 +0000
parents 48c8e49b571c
children d6a7fb4b8e7c
line wrap: on
line source

/*
 * Geeqie
 * (C) 2004 John Ellis
 * Copyright (C) 2008 The Geeqie Team
 *
 * Author: John Ellis
 *
 * This software is released under the GNU General Public License (GNU GPL).
 * Please read the included file COPYING for more information.
 * This software comes with no warranty of any kind, use at your own risk!
 */

#ifndef VIEW_DIR_TREE_H
#define VIEW_DIR_TREE_H

typedef struct _NodeData NodeData;
struct _NodeData
{
	FileData *fd;
	gint expanded;
	time_t last_update;
};

ViewDir *vdtree_new(ViewDir *vd, const gchar *path);

void vdtree_select_row(ViewDir *vd, FileData *fd);

gint vdtree_set_path(ViewDir *vd, const gchar *path);
void vdtree_refresh(ViewDir *vd);

const gchar *vdtree_row_get_path(ViewDir *vd, gint row);
gint vdtree_find_row(ViewDir *vd, FileData *fd, GtkTreeIter *iter, GtkTreeIter *parent);

FileData *vdtree_populate_path(ViewDir *vd, const gchar *path, gint expand, gint force);
void vdtree_rename_by_data(ViewDir *vd, FileData *fd);

gint vdtree_press_key_cb(GtkWidget *widget, GdkEventKey *event, gpointer data);
gint vdtree_press_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data);

void vdtree_destroy_cb(GtkWidget *widget, gpointer data);

#endif