Revision: 1327
http://geeqie.svn.sourceforge.net/geeqie/?rev=1327&view=rev
Author: nadvornik
Date: 2009-01-02 22:57:09 +0000 (Fri, 02 Jan 2009)
Log Message:
-----------
do not enter a directory after rename
fixed dir tree updating
http://sourceforge.net/tracker/index.php?func=detail&aid=2481287&group_id=222125&atid=1054680
Modified Paths:
--------------
trunk/src/view_dir.c
trunk/src/view_dir_tree.c
Modified: trunk/src/view_dir.c
===================================================================
--- trunk/src/view_dir.c 2009-01-02 14:58:21 UTC (rev 1326)
+++ trunk/src/view_dir.c 2009-01-02 22:57:09 UTC (rev 1327)
@@ -231,11 +231,6 @@
file_util_rename_dir(fd, new_path, vd->view);
- if (vd->layout && vd->dir_fd != fd)
- {
- layout_set_path(vd->layout, new_path);
- }
-
g_free(new_path);
return FALSE;
Modified: trunk/src/view_dir_tree.c
===================================================================
--- trunk/src/view_dir_tree.c 2009-01-02 14:58:21 UTC (rev 1326)
+++ trunk/src/view_dir_tree.c 2009-01-02 22:57:09 UTC (rev 1327)
@@ -357,6 +357,22 @@
return NULL;
}
+static NodeData *vdtree_find_iter_by_fd(ViewDir *vd, GtkTreeIter *parent,
FileData *fd, GtkTreeIter *iter)
+{
+ GtkTreeModel *store;
+
+ store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view));
+ if (!fd || !gtk_tree_model_iter_children(store, iter, parent)) return
NULL;
+ do {
+ NodeData *nd;
+
+ gtk_tree_model_get(store, iter, DIR_COLUMN_POINTER, &nd, -1);
+ if (nd && nd->fd == fd) return nd;
+ } while (gtk_tree_model_iter_next(store, iter));
+
+ return NULL;
+}
+
static void vdtree_add_by_data(ViewDir *vd, FileData *fd, GtkTreeIter *parent)
{
GtkTreeStore *store;
@@ -512,17 +528,17 @@
{
NodeData *cnd;
- cnd = vdtree_find_iter_by_name(vd, iter, fd->name,
&child);
+ cnd = vdtree_find_iter_by_fd(vd, iter, fd, &child);
if (cnd)
{
- old = g_list_remove(old, cnd);
- if (cnd->expanded && cnd->version !=
fd->version &&
- vdtree_populate_path_by_iter(vd, &child,
FALSE, target_fd))
+ if (cnd->expanded && cnd->version !=
fd->version)
{
-
gtk_tree_store_set(GTK_TREE_STORE(store), &child, DIR_COLUMN_NAME, fd->name,
-1);
- cnd->version = fd->version;
+ vdtree_populate_path_by_iter(vd,
&child, FALSE, target_fd);
}
+ gtk_tree_store_set(GTK_TREE_STORE(store),
&child, DIR_COLUMN_NAME, fd->name, -1);
+ cnd->version = fd->version;
+ old = g_list_remove(old, cnd);
file_data_unref(fd);
}
else
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
_______________________________________________
Geeqie-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geeqie-svn