Mercurial > geeqie
diff src/view_dir.c @ 1637:cc3ccf3c7c27
unify code paths for New directory
keep the directory visible after rename
https://sourceforge.net/tracker/?func=detail&aid=1951183&group_id=222125&atid=1054680
author | nadvornik |
---|---|
date | Mon, 08 Jun 2009 19:05:49 +0000 |
parents | 66bf394d162a |
children | 349ebc02b8e2 |
line wrap: on
line diff
--- a/src/view_dir.c Sun Jun 07 10:11:05 2009 +0000 +++ b/src/view_dir.c Mon Jun 08 19:05:49 2009 +0000 @@ -242,6 +242,23 @@ return fd; } +static void vd_rename_finished_cb(gboolean success, const gchar *new_path, gpointer data) +{ + ViewDir *vd = data; + if (success) + { + FileData *fd = file_data_new_simple(new_path); + GtkTreeIter iter; + + if (vd_find_row(vd, fd, &iter)) + { + tree_view_row_make_visible(GTK_TREE_VIEW(vd->view), &iter, TRUE); + } + + file_data_unref(fd); + } +} + static gboolean vd_rename_cb(TreeEditData *td, const gchar *old, const gchar *new, gpointer data) { ViewDir *vd = data; @@ -256,7 +273,7 @@ new_path = g_build_filename(base, new, NULL); g_free(base); - file_util_rename_dir(fd, new_path, vd->view); + file_util_rename_dir(fd, new_path, vd->view, vd_rename_finished_cb, vd); g_free(new_path); @@ -686,6 +703,11 @@ return menu; } +void vd_new_folder(ViewDir *vd, FileData *dir_fd) +{ + file_util_create_dir(dir_fd, vd->widget, vd_pop_menu_new_rename_cb, vd); +} + /* *----------------------------------------------------------------------------- * dnd