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