Mercurial > geeqie
comparison src/view_dir_list.c @ 389:b78077f65eff
Merge few more vdlist/vdtree functions.
author | zas_ |
---|---|
date | Wed, 16 Apr 2008 21:58:05 +0000 |
parents | 5186f8e38cb8 |
children | 4a5e1377f3d7 |
comparison
equal
deleted
inserted
replaced
388:5186f8e38cb8 | 389:b78077f65eff |
---|---|
60 } | 60 } |
61 | 61 |
62 return -1; | 62 return -1; |
63 } | 63 } |
64 | 64 |
65 static gint vdlist_rename_row_cb(TreeEditData *td, const gchar *old, const gchar *new, gpointer data) | |
66 { | |
67 ViewDir *vd = data; | |
68 GtkTreeModel *store; | |
69 GtkTreeIter iter; | |
70 FileData *fd; | |
71 gchar *old_path; | |
72 gchar *new_path; | |
73 gchar *base; | |
74 | |
75 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view)); | |
76 if (!gtk_tree_model_get_iter(store, &iter, td->path)) return FALSE; | |
77 gtk_tree_model_get(store, &iter, DIR_COLUMN_POINTER, &fd, -1); | |
78 if (!fd) return FALSE; | |
79 | |
80 old_path = g_strdup(fd->path); | |
81 | |
82 base = remove_level_from_path(old_path); | |
83 new_path = concat_dir_and_file(base, new); | |
84 g_free(base); | |
85 | |
86 if (file_util_rename_dir(fd, new_path, vd->view)) | |
87 { | |
88 if (vd->layout && strcmp(vd->path, old_path) == 0) | |
89 { | |
90 layout_set_path(vd->layout, new_path); | |
91 } | |
92 else | |
93 { | |
94 vdlist_refresh(vd); | |
95 } | |
96 } | |
97 | |
98 g_free(old_path); | |
99 g_free(new_path); | |
100 return FALSE; | |
101 } | |
102 | |
103 void vdlist_rename_by_row(ViewDir *vd, FileData *fd) | |
104 { | |
105 GtkTreeModel *store; | |
106 GtkTreePath *tpath; | |
107 GtkTreeIter iter; | |
108 | |
109 if (vdlist_find_row(vd, fd, &iter) < 0) return; | |
110 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view)); | |
111 tpath = gtk_tree_model_get_path(store, &iter); | |
112 | |
113 tree_edit_by_path(GTK_TREE_VIEW(vd->view), tpath, 0, fd->name, | |
114 vdlist_rename_row_cb, vd); | |
115 gtk_tree_path_free(tpath); | |
116 } | |
117 | 65 |
118 FileData *vdlist_row_by_path(ViewDir *vd, const gchar *path, gint *row) | 66 FileData *vdlist_row_by_path(ViewDir *vd, const gchar *path, gint *row) |
119 { | 67 { |
120 GList *work; | 68 GList *work; |
121 gint n; | 69 gint n; |
272 GtkTreeIter iter; | 220 GtkTreeIter iter; |
273 | 221 |
274 GdkRectangle vrect; | 222 GdkRectangle vrect; |
275 GdkRectangle crect; | 223 GdkRectangle crect; |
276 | 224 |
277 if (!fd || vdlist_find_row(vd, fd, &iter) < 0) return 0; | 225 if (!fd || vd_find_row(vd, fd, &iter) < 0) return 0; |
278 | 226 |
279 column = gtk_tree_view_get_column(GTK_TREE_VIEW(vd->view), 0); | 227 column = gtk_tree_view_get_column(GTK_TREE_VIEW(vd->view), 0); |
280 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view)); | 228 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view)); |
281 tpath = gtk_tree_model_get_path(store, &iter); | 229 tpath = gtk_tree_model_get_path(store, &iter); |
282 | 230 |
294 static void vdlist_scroll_to_row(ViewDir *vd, FileData *fd, gfloat y_align) | 242 static void vdlist_scroll_to_row(ViewDir *vd, FileData *fd, gfloat y_align) |
295 { | 243 { |
296 GtkTreeIter iter; | 244 GtkTreeIter iter; |
297 | 245 |
298 if (GTK_WIDGET_REALIZED(vd->view) && | 246 if (GTK_WIDGET_REALIZED(vd->view) && |
299 vdlist_find_row(vd, fd, &iter) >= 0) | 247 vd_find_row(vd, fd, &iter) >= 0) |
300 { | 248 { |
301 GtkTreeModel *store; | 249 GtkTreeModel *store; |
302 GtkTreePath *tpath; | 250 GtkTreePath *tpath; |
303 | 251 |
304 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view)); | 252 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view)); |
611 GtkTreeModel *store; | 559 GtkTreeModel *store; |
612 GtkTreeIter iter; | 560 GtkTreeIter iter; |
613 GtkTreePath *tpath; | 561 GtkTreePath *tpath; |
614 gint cw, ch; | 562 gint cw, ch; |
615 | 563 |
616 if (vdlist_find_row(vd, vd->click_fd, &iter) < 0) return; | 564 if (vd_find_row(vd, vd->click_fd, &iter) < 0) return; |
617 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view)); | 565 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view)); |
618 tpath = gtk_tree_model_get_path(store, &iter); | 566 tpath = gtk_tree_model_get_path(store, &iter); |
619 tree_view_get_cell_clamped(GTK_TREE_VIEW(vd->view), tpath, 0, TRUE, x, y, &cw, &ch); | 567 tree_view_get_cell_clamped(GTK_TREE_VIEW(vd->view), tpath, 0, TRUE, x, y, &cw, &ch); |
620 gtk_tree_path_free(tpath); | 568 gtk_tree_path_free(tpath); |
621 *y += ch; | 569 *y += ch; |