{
CollectTable *ct;
const gchar *key = data;
- GList *list;
ct = submenu_item_get_data(widget);
if (!ct) return;
- list = collection_table_popup_file_list(ct);
- if (list)
- {
- file_util_start_editor_from_filelist(key, list, NULL, ct->listview);
- filelist_free(list);
- }
+ file_util_start_editor_from_filelist(key, collection_table_popup_file_list(ct), NULL, ct->listview);
}
static void collection_table_popup_copy_cb(GtkWidget *widget, gpointer data)
break;
}
}
-#if 0
- if (edit_val != -1)
- {
- list = collection_table_selection_get_list(cw->table);
- file_util_start_editor_from_filelist(edit_val, list, cw->window);
- filelist_free(list);
- }
-#endif
return stop_signal;
}
static void dupe_window_edit_selected(DupeWindow *dw, const gchar *key)
{
- GList *list;
-
- list = dupe_listview_get_selection(dw, dw->listview);
-
- file_util_start_editor_from_filelist(key, list, NULL, dw->window);
-
- filelist_free(list);
+ file_util_start_editor_from_filelist(key, dupe_listview_get_selection(dw, dw->listview), NULL, dw->window);
}
static void dupe_window_collection_from_selection(DupeWindow *dw)
static void layout_menu_edit_cb(GtkAction *action, gpointer data)
{
LayoutWindow *lw = data;
- GList *list;
const gchar *key = gtk_action_get_name(action);
if (!editor_window_flag_set(key))
layout_exit_fullscreen(lw);
- list = layout_selection_list(lw);
- file_util_start_editor_from_filelist(key, list, layout_get_path(lw), lw->window);
- filelist_free(list);
+ file_util_start_editor_from_filelist(key, layout_selection_list(lw), layout_get_path(lw), lw->window);
}
#if 0
file_util_write_metadata(NULL, to_approve, NULL, force_dialog, done_func, done_data);
- filelist_free(to_approve);
-
return (metadata_write_queue != NULL);
}
static void search_result_edit_selected(SearchData *sd, const gchar *key)
{
- GList *list;
-
- list = search_result_selection_list(sd);
- file_util_start_editor_from_filelist(key, list, NULL, sd->window);
- filelist_free(list);
+ file_util_start_editor_from_filelist(key, search_result_selection_list(sd), NULL, sd->window);
}
static void search_result_collection_from_selection(SearchData *sd)
}
}
-static void file_util_delete_full(FileData *source_fd, GList *source_list, GtkWidget *parent, UtilityPhase phase)
+static void file_util_delete_full(FileData *source_fd, GList *flist, GtkWidget *parent, UtilityPhase phase)
{
UtilityData *ud;
- GList *flist = filelist_copy(source_list);
GList *ungrouped = NULL;
if (source_fd)
}
-static void file_util_write_metadata_full(FileData *source_fd, GList *source_list, GtkWidget *parent, UtilityPhase phase, FileUtilDoneFunc done_func, gpointer done_data)
+static void file_util_write_metadata_full(FileData *source_fd, GList *flist, GtkWidget *parent, UtilityPhase phase, FileUtilDoneFunc done_func, gpointer done_data)
{
UtilityData *ud;
- GList *flist = filelist_copy(source_list);
if (source_fd)
flist = g_list_append(flist, file_data_ref(source_fd));
file_util_dialog_run(ud);
}
-static void file_util_move_full(FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase)
+static void file_util_move_full(FileData *source_fd, GList *flist, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase)
{
UtilityData *ud;
- GList *flist = filelist_copy(source_list);
GList *ungrouped = NULL;
if (source_fd)
file_util_dialog_run(ud);
}
-static void file_util_copy_full(FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase)
+static void file_util_copy_full(FileData *source_fd, GList *flist, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase)
{
UtilityData *ud;
- GList *flist = filelist_copy(source_list);
GList *ungrouped = NULL;
if (source_fd)
file_util_dialog_run(ud);
}
-static void file_util_rename_full(FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase)
+static void file_util_rename_full(FileData *source_fd, GList *flist, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase)
{
UtilityData *ud;
- GList *flist = filelist_copy(source_list);
GList *ungrouped = NULL;
if (source_fd)
file_util_dialog_run(ud);
}
-static void file_util_start_editor_full(const gchar *key, FileData *source_fd, GList *source_list, const gchar *dest_path, const gchar *working_directory, GtkWidget *parent, UtilityPhase phase)
+static void file_util_start_editor_full(const gchar *key, FileData *source_fd, GList *flist, const gchar *dest_path, const gchar *working_directory, GtkWidget *parent, UtilityPhase phase)
{
UtilityData *ud;
- GList *flist;
GList *ungrouped = NULL;
if (editor_no_param(key))
if (source_fd)
file_directory = remove_level_from_path(source_fd->path);
- if (!file_directory && source_list)
- file_directory = remove_level_from_path(((FileData *)source_list->data)->path);
+ if (!file_directory && flist)
+ file_directory = remove_level_from_path(((FileData *)flist->data)->path);
working_directory = file_directory;
}
/* just start the editor, don't care about files */
start_editor(key, working_directory);
g_free(file_directory);
+ filelist_free(flist);
return;
}
- flist = filelist_copy(source_list);
if (source_fd)
{
gtk_clipboard_set_text(clipboard, new->str, new->len);
g_string_free(new, TRUE);
+ filelist_free(list);
}
/* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */
GenericDialog *file_util_warning_dialog(const gchar *heading, const gchar *message,
const gchar *icon_stock_id, GtkWidget *parent);
+/* all functions takes over the filelist and frees it when done */
+
void file_util_delete(FileData *source_fd, GList *source_list, GtkWidget *parent);
void file_util_move(FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent);
void file_util_copy(FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent);
{
file_util_copy_simple(list, fd->path, vd->widget);
done = TRUE;
+ list = NULL;
}
else if (context->actions == GDK_ACTION_MOVE)
{
file_util_move_simple(list, fd->path, vd->widget);
done = TRUE;
+ list = NULL;
}
}
{
ViewFile *vf;
const gchar *key = data;
- GList *list;
vf = submenu_item_get_data(widget);
if (!vf) return;
- list = vf_pop_menu_file_list(vf);
- file_util_start_editor_from_filelist(key, list, vf->dir_fd->path, vf->listview);
- filelist_free(list);
+ file_util_start_editor_from_filelist(key, vf_pop_menu_file_list(vf), vf->dir_fd->path, vf->listview);
}
static void vf_pop_menu_view_cb(GtkWidget *widget, gpointer data)
g_free(str_sel_mark_minus);
}
- vf->editmenu_fd_list = vf_selection_get_list(vf);
+ vf->editmenu_fd_list = vf_pop_menu_file_list(vf);
submenu_add_edit(menu, &item, G_CALLBACK(vf_pop_menu_edit_cb), vf, vf->editmenu_fd_list);
gtk_widget_set_sensitive(item, active);