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

Reply via email to