static gint bar_sort_selection_state = BAR_SORT_SELECTION_IMAGE;
-static void bar_sort_undo_set(SortData *sd, GList *src_list, const gchar *src, const gchar *dest);
+static void bar_sort_undo_set(SortData *sd, GList *src_list, FileData *src, const gchar *dest);
static void bar_sort_add_close(SortData *sd);
g_free(name);
}
- path_list_free(list);
+ string_list_free(list);
}
static void bar_sort_mode_sync(SortData *sd, SortModeType mode)
}
/* this takes control of src_list */
-static void bar_sort_undo_set(SortData *sd, GList *src_list, const gchar *src, const gchar *dest)
+static void bar_sort_undo_set(SortData *sd, GList *src_list, FileData *src, const gchar *dest)
{
- path_list_free(sd->undo_src_list);
- sd->undo_src_list = src_list;
+ string_list_free(sd->undo_src_list);
+ sd->undo_src_list = filelist_to_path_list(src_list);
g_free(sd->undo_src);
- sd->undo_src = g_strdup(src);
+ sd->undo_src = src ? g_strdup(src->path) : NULL;
g_free(sd->undo_dest);
sd->undo_dest = g_strdup(dest);
GList *list;
gchar *src_dir;
- list = g_list_append(NULL, g_strdup(sd->undo_dest));
+ list = g_list_append(NULL, file_data_new_simple(sd->undo_dest));
src_dir = remove_level_from_path(sd->undo_src);
file_util_move_simple(list, src_dir);
g_free(src_dir);
}
break;
case BAR_SORT_COPY:
- file_util_delete(sd->undo_dest, NULL, button);
+ file_util_delete(file_data_new_simple(sd->undo_dest), NULL, button);
break;
case BAR_SORT_LINK:
if (!unlink_file(sd->undo_dest))
if (isfile(sd->undo_src))
{
- layout_image_set_path(sd->lw, sd->undo_src);
+ layout_image_set_fd(sd->lw, file_data_new_simple(sd->undo_src));
}
bar_sort_undo_set(sd, NULL, NULL, NULL);
source = work->data;
work = work->next;
- collect_manager_remove(source, sd->undo_dest);
+ collect_manager_remove(file_data_new_simple(source), sd->undo_dest);
}
bar_sort_undo_set(sd, NULL, NULL, NULL);
}
}
-static void bar_sort_bookmark_select_folder(SortData *sd, const gchar *source, const gchar *path)
+static void bar_sort_bookmark_select_folder(SortData *sd, FileData *source, const gchar *path)
{
GList *list;
gchar *dest_path;
if (!isdir(path)) return;
- dest_path = concat_dir_and_file(path, filename_from_path(source));
+ dest_path = concat_dir_and_file(path, source->name);
bar_sort_undo_set(sd, NULL, source, dest_path);
- list = g_list_append(NULL, g_strdup(source));
+ list = g_list_append(NULL, file_data_ref(source));
switch (sd->action)
{
list = NULL;
break;
case BAR_SORT_LINK:
- if (symlink_utf8(source, dest_path))
+ if (symlink_utf8(source->path, dest_path))
{
layout_image_next(sd->lw);
}
g_free(dest_path);
}
-static void bar_sort_bookmark_select_collection(SortData *sd, const gchar *source, const gchar *path)
+static void bar_sort_bookmark_select_collection(SortData *sd, FileData *source, const gchar *path)
{
GList *list = NULL;
switch (sd->selection)
{
case BAR_SORT_SELECTION_IMAGE:
- list = g_list_append(NULL, g_strdup(source));
+ list = g_list_append(NULL, file_data_ref(source));
break;
case BAR_SORT_SELECTION_SELECTED:
list = layout_selection_list(sd->lw);
while (list)
{
- gchar *image_path;
+ FileData *image_fd;
- image_path = list->data;
+ image_fd = list->data;
list = list->next;
- collect_manager_add(image_path, path);
+ collect_manager_add(image_fd, path);
}
}
static void bar_sort_bookmark_select(const gchar *path, gpointer data)
{
SortData *sd = data;
- const gchar *source;
+ FileData *source;
- source = layout_image_get_path(sd->lw);
+ source = layout_image_get_fd(sd->lw);
if (!path || !source) return;
if (sd->mode == BAR_SORT_MODE_FOLDER)