annotate src/utilops.c @ 1532:fffb62c7ba1e

Add pgettext for some ambiguous strings There are some strings which are ambiguous to translate. There is the pgettext function to solf that problem. For example, locations can be translated to german by Ortsangaben (geographical) or by Pfad (filesystem). I am sure there are also some ambiguous in other languages.
author mow
date Fri, 10 Apr 2009 09:47:20 +0000
parents 24a12aa0cb54
children c10cd5197447
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1 /*
196
f6e307c7bad6 rename GQview -> Geeqie over the code
nadvornik
parents: 143
diff changeset
2 * Geeqie
67
f63ecca6c087 Fri Oct 13 05:22:43 2006 John Ellis <johne@verizon.net>
gqview
parents: 66
diff changeset
3 * (C) 2006 John Ellis
1284
8b89e3ff286b Add year 2009 to copyright info everywhere.
zas_
parents: 1272
diff changeset
4 * Copyright (C) 2008 - 2009 The Geeqie Team
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
5 *
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
6 * Author: John Ellis
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
7 *
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
8 * This software is released under the GNU General Public License (GNU GPL).
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
9 * Please read the included file COPYING for more information.
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
10 * This software comes with no warranty of any kind, use at your own risk!
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
11 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
12
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
13
281
9995c5fb202a gqview.h -> main.h
zas_
parents: 254
diff changeset
14 #include "main.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
15 #include "utilops.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
16
112
b15d4c18168f Fri Nov 17 19:06:19 2006 John Ellis <johne@verizon.net>
gqview
parents: 80
diff changeset
17 #include "cache.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
18 #include "cache_maint.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
19 #include "collect.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
20 #include "dupe.h"
586
905688aa2317 split filelist.c to filefilter.c and filedata.c
nadvornik
parents: 513
diff changeset
21 #include "filedata.h"
905688aa2317 split filelist.c to filefilter.c and filedata.c
nadvornik
parents: 513
diff changeset
22 #include "filefilter.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
23 #include "image.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
24 #include "img-view.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
25 #include "layout.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
26 #include "search.h"
112
b15d4c18168f Fri Nov 17 19:06:19 2006 John Ellis <johne@verizon.net>
gqview
parents: 80
diff changeset
27 #include "thumb_standard.h"
597
5da092a6a92a moved safe delete functions to separate file
nadvornik
parents: 596
diff changeset
28 #include "trash.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
29 #include "ui_bookmark.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
30 #include "ui_fileops.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
31 #include "ui_misc.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
32 #include "ui_tabcomp.h"
140
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
33 #include "editors.h"
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
34 #include "metadata.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
35
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
36 static GdkPixbuf *file_util_get_error_icon(FileData *fd, GtkWidget *widget);
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
37
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
38 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
39 *--------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
40 * Adds 1 or 2 images (if 2, side by side) to a GenericDialog
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
41 *--------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
42 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
43
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
44 #define DIALOG_DEF_IMAGE_DIM_X 200
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
45 #define DIALOG_DEF_IMAGE_DIM_Y 150
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
46
112
b15d4c18168f Fri Nov 17 19:06:19 2006 John Ellis <johne@verizon.net>
gqview
parents: 80
diff changeset
47 static void generic_dialog_add_image(GenericDialog *gd, GtkWidget *box,
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
48 FileData *fd1, const gchar *header1,
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
49 FileData *fd2, const gchar *header2,
1452
67b40740122e gint -> gboolean where applicable.
zas_
parents: 1405
diff changeset
50 gboolean show_filename)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
51 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
52 ImageWindow *imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
53 GtkWidget *hbox = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
54 GtkWidget *vbox;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
55 GtkWidget *label = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
56
112
b15d4c18168f Fri Nov 17 19:06:19 2006 John Ellis <johne@verizon.net>
gqview
parents: 80
diff changeset
57 if (!box) box = gd->vbox;
b15d4c18168f Fri Nov 17 19:06:19 2006 John Ellis <johne@verizon.net>
gqview
parents: 80
diff changeset
58
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
59 if (fd2)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
60 {
112
b15d4c18168f Fri Nov 17 19:06:19 2006 John Ellis <johne@verizon.net>
gqview
parents: 80
diff changeset
61 hbox = pref_box_new(box, TRUE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
62 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
63
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
64 /* image 1 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
65
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
66 vbox = gtk_vbox_new(FALSE, PREF_PAD_GAP);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
67 if (hbox)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
68 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
69 GtkWidget *sep;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
70
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
71 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
72
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
73 sep = gtk_vseparator_new();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
74 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
75 gtk_widget_show(sep);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
76 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
77 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
78 {
112
b15d4c18168f Fri Nov 17 19:06:19 2006 John Ellis <johne@verizon.net>
gqview
parents: 80
diff changeset
79 gtk_box_pack_start(GTK_BOX(box), vbox, TRUE, TRUE, PREF_PAD_GAP);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
80 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
81 gtk_widget_show(vbox);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
82
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
83 if (header1)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
84 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
85 GtkWidget *head;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
86
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
87 head = pref_label_new(vbox, header1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
88 pref_label_bold(head, TRUE, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
89 gtk_misc_set_alignment(GTK_MISC(head), 0.0, 0.5);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
90 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
91
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
92 imd = image_new(FALSE);
112
b15d4c18168f Fri Nov 17 19:06:19 2006 John Ellis <johne@verizon.net>
gqview
parents: 80
diff changeset
93 g_object_set(G_OBJECT(imd->pr), "zoom_expand", FALSE, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
94 gtk_widget_set_size_request(imd->widget, DIALOG_DEF_IMAGE_DIM_X, DIALOG_DEF_IMAGE_DIM_Y);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
95 gtk_box_pack_start(GTK_BOX(vbox), imd->widget, TRUE, TRUE, 0);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
96 image_change_fd(imd, fd1, 0.0);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
97 gtk_widget_show(imd->widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
98
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
99 if (show_filename)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
100 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
101 label = pref_label_new(vbox, (fd1 == NULL) ? "" : fd1->name);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
102 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
103
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
104 /* only the first image is stored (for use in gd_image_set) */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
105 g_object_set_data(G_OBJECT(gd->dialog), "img_image", imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
106 g_object_set_data(G_OBJECT(gd->dialog), "img_label", label);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 341
diff changeset
107
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
108
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
109 /* image 2 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
110
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
111 if (hbox && fd2)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
112 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
113 vbox = pref_box_new(hbox, TRUE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
114
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
115 if (header2)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
116 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
117 GtkWidget *head;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
118
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
119 head = pref_label_new(vbox, header2);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
120 pref_label_bold(head, TRUE, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
121 gtk_misc_set_alignment(GTK_MISC(head), 0.0, 0.5);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
122 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
123
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
124 imd = image_new(FALSE);
112
b15d4c18168f Fri Nov 17 19:06:19 2006 John Ellis <johne@verizon.net>
gqview
parents: 80
diff changeset
125 g_object_set(G_OBJECT(imd->pr), "zoom_expand", FALSE, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
126 gtk_widget_set_size_request(imd->widget, DIALOG_DEF_IMAGE_DIM_X, DIALOG_DEF_IMAGE_DIM_Y);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
127 gtk_box_pack_start(GTK_BOX(vbox), imd->widget, TRUE, TRUE, 0);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
128 image_change_fd(imd, fd2, 0.0);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
129 gtk_widget_show(imd->widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
130
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
131 pref_label_new(vbox, fd2->name);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
132 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
133 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
134
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
135 static void generic_dialog_image_set(GenericDialog *gd, FileData *fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
136 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
137 ImageWindow *imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
138 GtkWidget *label;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 341
diff changeset
139
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
140 imd = g_object_get_data(G_OBJECT(gd->dialog), "img_image");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
141 label = g_object_get_data(G_OBJECT(gd->dialog), "img_label");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
142
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
143 if (!imd) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
144
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
145 image_change_fd(imd, fd, 0.0);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
146 if (label) gtk_label_set_text(GTK_LABEL(label), fd->name);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
147 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
148
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
149 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
150 *--------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
151 * Wrappers to aid in setting additional dialog properties (unde mouse, etc.)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
152 *--------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
153 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
154
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
155 GenericDialog *file_util_gen_dlg(const gchar *title,
1175
2518a4a73d89 Rename wmsubclass and name to role, which corresponds better to the purpose of the parameter as it ends to be passed to gtk_window_set_role().
zas_
parents: 1174
diff changeset
156 const gchar *role,
1452
67b40740122e gint -> gboolean where applicable.
zas_
parents: 1405
diff changeset
157 GtkWidget *parent, gboolean auto_close,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
158 void (*cancel_cb)(GenericDialog *, gpointer), gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
159 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
160 GenericDialog *gd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
161
1175
2518a4a73d89 Rename wmsubclass and name to role, which corresponds better to the purpose of the parameter as it ends to be passed to gtk_window_set_role().
zas_
parents: 1174
diff changeset
162 gd = generic_dialog_new(title, role, parent, auto_close, cancel_cb, data);
318
b16b9b8979e5 Add a new struct ConfOptions to handle options.
zas_
parents: 288
diff changeset
163 if (options->place_dialogs_under_mouse)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
164 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
165 gtk_window_set_position(GTK_WINDOW(gd->dialog), GTK_WIN_POS_MOUSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
166 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
167
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
168 return gd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
169 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
170
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
171 FileDialog *file_util_file_dlg(const gchar *title,
1175
2518a4a73d89 Rename wmsubclass and name to role, which corresponds better to the purpose of the parameter as it ends to be passed to gtk_window_set_role().
zas_
parents: 1174
diff changeset
172 const gchar *role,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
173 GtkWidget *parent,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
174 void (*cancel_cb)(FileDialog *, gpointer), gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
175 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
176 FileDialog *fdlg;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
177
1175
2518a4a73d89 Rename wmsubclass and name to role, which corresponds better to the purpose of the parameter as it ends to be passed to gtk_window_set_role().
zas_
parents: 1174
diff changeset
178 fdlg = file_dialog_new(title, role, parent, cancel_cb, data);
318
b16b9b8979e5 Add a new struct ConfOptions to handle options.
zas_
parents: 288
diff changeset
179 if (options->place_dialogs_under_mouse)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
180 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
181 gtk_window_set_position(GTK_WINDOW(GENERIC_DIALOG(fdlg)->dialog), GTK_WIN_POS_MOUSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
182 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
183
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
184 return fdlg;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
185 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
186
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
187 /* this warning dialog is copied from SLIK's ui_utildg.c,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
188 * because it does not have a mouse center option,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
189 * and we must center it before show, implement it here.
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
190 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
191 static void file_util_warning_dialog_ok_cb(GenericDialog *gd, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
192 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
193 /* no op */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
194 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
195
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
196 GenericDialog *file_util_warning_dialog(const gchar *heading, const gchar *message,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
197 const gchar *icon_stock_id, GtkWidget *parent)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
198 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
199 GenericDialog *gd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
200
1174
0bea79d87065 Drop useless wmclass stuff. Gtk will take care of it and as said in the documentation using gtk_window_set_wmclass() is sort of pointless.
zas_
parents: 1055
diff changeset
201 gd = file_util_gen_dlg(heading, "warning", parent, TRUE, NULL, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
202 generic_dialog_add_message(gd, icon_stock_id, heading, message);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
203 generic_dialog_add_button(gd, GTK_STOCK_OK, NULL, file_util_warning_dialog_ok_cb, TRUE);
318
b16b9b8979e5 Add a new struct ConfOptions to handle options.
zas_
parents: 288
diff changeset
204 if (options->place_dialogs_under_mouse)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
205 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
206 gtk_window_set_position(GTK_WINDOW(gd->dialog), GTK_WIN_POS_MOUSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
207 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
208 gtk_widget_show(gd->dialog);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
209
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
210 return gd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
211 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
212
42
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
213 static gint filename_base_length(const gchar *name)
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
214 {
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
215 gint n;
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
216
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
217 if (!name) return 0;
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
218
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
219 n = strlen(name);
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
220
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
221 if (filter_name_exists(name))
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
222 {
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
223 const gchar *ext;
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
224
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
225 ext = extension_from_path(name);
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
226 if (ext) n -= strlen(ext);
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
227 }
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
228
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
229 return n;
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
230 }
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
231
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
232
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
233
140
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
234
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
235 typedef enum {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
236 UTILITY_TYPE_COPY,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
237 UTILITY_TYPE_MOVE,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
238 UTILITY_TYPE_RENAME,
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
239 UTILITY_TYPE_RENAME_FOLDER,
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
240 UTILITY_TYPE_EDITOR,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
241 UTILITY_TYPE_FILTER,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
242 UTILITY_TYPE_DELETE,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
243 UTILITY_TYPE_DELETE_LINK,
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
244 UTILITY_TYPE_DELETE_FOLDER,
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
245 UTILITY_TYPE_CREATE_FOLDER,
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
246 UTILITY_TYPE_WRITE_METADATA
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
247 } UtilityType;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
248
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
249 typedef enum {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
250 UTILITY_PHASE_START = 0,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
251 UTILITY_PHASE_ENTERING,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
252 UTILITY_PHASE_CHECKED,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
253 UTILITY_PHASE_DONE,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
254 UTILITY_PHASE_CANCEL
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
255 } UtilityPhase;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
256
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
257 enum {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
258 UTILITY_RENAME = 0,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
259 UTILITY_RENAME_AUTO,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
260 UTILITY_RENAME_FORMATTED
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
261 };
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
262
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
263 typedef struct _UtilityDataMessages UtilityDataMessages;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
264 struct _UtilityDataMessages {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
265 gchar *title;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
266 gchar *question;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
267 gchar *desc_flist;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
268 gchar *desc_source_fd;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
269 gchar *fail;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
270 };
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
271
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
272 typedef struct _UtilityData UtilityData;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
273
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
274 struct _UtilityData {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
275 UtilityType type;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
276 UtilityPhase phase;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
277
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
278 FileData *dir_fd;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
279 GList *content_list;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
280 GList *flist;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
281
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
282 GtkWidget *parent;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
283 GenericDialog *gd;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
284 FileDialog *fdlg;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
285
1523
24a12aa0cb54 Fix up event source ids type: gint -> guint.
zas_
parents: 1452
diff changeset
286 guint update_idle_id; /* event source id */
24a12aa0cb54 Fix up event source ids type: gint -> guint.
zas_
parents: 1452
diff changeset
287 guint perform_idle_id; /* event source id */
1221
584eae03d747 perform internal commands in idle call
nadvornik
parents: 1211
diff changeset
288
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
289 gboolean with_sidecars; /* operate on grouped or single files; TRUE = use file_data_sc_, FALSE = use file_data_ functions */
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
290
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
291 /* alternative dialog parts */
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
292 GtkWidget *notebook;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
293
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
294 UtilityDataMessages messages;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
295
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
296 /* helper entries for various modes */
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
297 GtkWidget *rename_entry;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
298 GtkWidget *rename_label;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
299 GtkWidget *auto_entry_front;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
300 GtkWidget *auto_entry_end;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
301 GtkWidget *auto_spin_start;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
302 GtkWidget *auto_spin_pad;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
303 GtkWidget *format_entry;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
304 GtkWidget *format_spin;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
305
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
306 GtkWidget *listview;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
307
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
308
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
309 gchar *dest_path;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
310
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
311 /* data for the operation itself, internal or external */
755
be382bffd11f Typo fix.
zas_
parents: 753
diff changeset
312 gboolean external; /* TRUE for external command, FALSE for internal */
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
313
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
314 gchar *external_command;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
315 gpointer resume_data;
1231
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
316
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
317 FileUtilDoneFunc done_func;
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
318 gpointer done_data;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
319 };
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
320
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
321 enum {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
322 UTILITY_COLUMN_FD = 0,
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
323 UTILITY_COLUMN_PIXBUF,
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
324 UTILITY_COLUMN_PATH,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
325 UTILITY_COLUMN_NAME,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
326 UTILITY_COLUMN_SIDECARS,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
327 UTILITY_COLUMN_DEST_PATH,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
328 UTILITY_COLUMN_DEST_NAME,
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
329 UTILITY_COLUMN_COUNT
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
330 };
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
331
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
332 #define UTILITY_LIST_MIN_WIDTH 250
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
333 #define UTILITY_LIST_MIN_HEIGHT 150
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
334
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
335 /* thumbnail spec has a max depth of 4 (.thumb??/fail/appname/??.png) */
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
336 #define UTILITY_DELETE_MAX_DEPTH 5
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
337
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
338 static UtilityData *file_util_data_new(UtilityType type)
136
18c2a29e681c more external commands
nadvornik
parents: 135
diff changeset
339 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
340 UtilityData *ud;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
341
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
342 ud = g_new0(UtilityData, 1);
1367
fe4da037be21 When g_new0() is used, drop redundant initializations to NULL, FALSE or 0, second pass.
zas_
parents: 1289
diff changeset
343
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
344 ud->type = type;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
345 ud->phase = UTILITY_PHASE_START;
1367
fe4da037be21 When g_new0() is used, drop redundant initializations to NULL, FALSE or 0, second pass.
zas_
parents: 1289
diff changeset
346
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
347 return ud;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
348 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
349
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
350 static void file_util_data_free(UtilityData *ud)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
351 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
352 if (!ud) return;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
353
1523
24a12aa0cb54 Fix up event source ids type: gint -> guint.
zas_
parents: 1452
diff changeset
354 if (ud->update_idle_id) g_source_remove(ud->update_idle_id);
24a12aa0cb54 Fix up event source ids type: gint -> guint.
zas_
parents: 1452
diff changeset
355 if (ud->perform_idle_id) g_source_remove(ud->perform_idle_id);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
356
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
357 file_data_unref(ud->dir_fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
358 filelist_free(ud->content_list);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
359 filelist_free(ud->flist);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
360
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
361 if (ud->gd) generic_dialog_close(ud->gd);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
362
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
363 g_free(ud->dest_path);
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
364 g_free(ud->external_command);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
365
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
366 g_free(ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
367 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
368
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
369 static GtkTreeViewColumn *file_util_dialog_add_list_column(GtkWidget *view, const gchar *text, gboolean image, gint n)
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
370 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
371 GtkTreeViewColumn *column;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
372 GtkCellRenderer *renderer;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
373
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
374 column = gtk_tree_view_column_new();
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
375 gtk_tree_view_column_set_title(column, text);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
376 gtk_tree_view_column_set_min_width(column, 4);
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
377 if (image)
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
378 {
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
379 gtk_tree_view_column_set_min_width(column, 20);
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
380 gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
381 renderer = gtk_cell_renderer_pixbuf_new();
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
382 gtk_tree_view_column_pack_start(column, renderer, TRUE);
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
383 gtk_tree_view_column_add_attribute(column, renderer, "pixbuf", n);
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
384 }
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
385 else
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
386 {
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
387 gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_GROW_ONLY);
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
388 renderer = gtk_cell_renderer_text_new();
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
389 gtk_tree_view_column_pack_start(column, renderer, TRUE);
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
390 gtk_tree_view_column_add_attribute(column, renderer, "text", n);
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
391 }
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
392 gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
393
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
394 return column;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
395 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
396
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
397 static void file_util_dialog_list_select(GtkWidget *view, gint n)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
398 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
399 GtkTreeModel *store;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
400 GtkTreeIter iter;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
401 GtkTreeSelection *selection;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
402
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
403 store = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
404 if (gtk_tree_model_iter_nth_child(store, &iter, NULL, n))
140
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
405 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
406 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
407 gtk_tree_selection_select_iter(selection, &iter);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
408 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
409 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
410
1452
67b40740122e gint -> gboolean where applicable.
zas_
parents: 1405
diff changeset
411 static GtkWidget *file_util_dialog_add_list(GtkWidget *box, GList *list, gboolean full_paths, gboolean with_sidecars)
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
412 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
413 GtkWidget *scrolled;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
414 GtkWidget *view;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
415 GtkListStore *store;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
416
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
417 scrolled = gtk_scrolled_window_new(NULL, NULL);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
418 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
419 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
420 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
421 gtk_box_pack_start(GTK_BOX(box), scrolled, TRUE, TRUE, 0);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
422 gtk_widget_show(scrolled);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
423
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
424 store = gtk_list_store_new(UTILITY_COLUMN_COUNT, G_TYPE_POINTER, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
425 view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
426 g_object_unref(store);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
427
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
428 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(view), TRUE);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
429 gtk_tree_view_set_enable_search(GTK_TREE_VIEW(view), FALSE);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
430
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
431 file_util_dialog_add_list_column(view, "", TRUE, UTILITY_COLUMN_PIXBUF);
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
432
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
433 if (full_paths)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
434 {
1532
fffb62c7ba1e Add pgettext for some ambiguous strings
mow
parents: 1523
diff changeset
435 file_util_dialog_add_list_column(view, pgettext("filesystem","Location"), FALSE, UTILITY_COLUMN_PATH);
140
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
436 }
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
437 else
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
438 {
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
439 file_util_dialog_add_list_column(view, _("Name"), FALSE, UTILITY_COLUMN_NAME);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
440 }
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
441
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
442 gtk_widget_set_size_request(view, UTILITY_LIST_MIN_WIDTH, UTILITY_LIST_MIN_HEIGHT);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
443 gtk_container_add(GTK_CONTAINER(scrolled), view);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
444 gtk_widget_show(view);
136
18c2a29e681c more external commands
nadvornik
parents: 135
diff changeset
445
140
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
446 while (list)
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
447 {
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
448 FileData *fd = list->data;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
449 GtkTreeIter iter;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
450 gchar *sidecars;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
451
1211
e2bbe90b0dcd most of the metadata options now works
nadvornik
parents: 1205
diff changeset
452 sidecars = with_sidecars ? file_data_sc_list_to_string(fd) : NULL;
1224
ebfd305d902e improved sidecar writting
nadvornik
parents: 1221
diff changeset
453 GdkPixbuf *icon = file_util_get_error_icon(fd, view);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
454 gtk_list_store_append(store, &iter);
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
455 gtk_list_store_set(store, &iter,
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
456 UTILITY_COLUMN_FD, fd,
1224
ebfd305d902e improved sidecar writting
nadvornik
parents: 1221
diff changeset
457 UTILITY_COLUMN_PIXBUF, icon,
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
458 UTILITY_COLUMN_PATH, fd->path,
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
459 UTILITY_COLUMN_NAME, fd->name,
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
460 UTILITY_COLUMN_SIDECARS, sidecars,
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
461 UTILITY_COLUMN_DEST_PATH, fd->change ? fd->change->dest : "error",
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
462 UTILITY_COLUMN_DEST_NAME, fd->change ? filename_from_path(fd->change->dest) : "error",
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
463 -1);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
464 g_free(sidecars);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
465
140
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
466 list = list->next;
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
467 }
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
468
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
469 return view;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
470 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
471
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
472
1221
584eae03d747 perform internal commands in idle call
nadvornik
parents: 1211
diff changeset
473 static gboolean file_util_perform_ci_internal(gpointer data);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
474 void file_util_dialog_run(UtilityData *ud);
1405
03384485676d Introduce EditorFlags type, cleanup.
zas_
parents: 1400
diff changeset
475 static gint file_util_perform_ci_cb(gpointer resume_data, EditorFlags flags, GList *list, gpointer data);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
476
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
477 /* call file_util_perform_ci_internal or start_editor_from_filelist_full */
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
478
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
479
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
480 static void file_util_resume_cb(GenericDialog *gd, gpointer data)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
481 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
482 UtilityData *ud = data;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
483 if (ud->external)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
484 editor_resume(ud->resume_data);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
485 else
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
486 file_util_perform_ci_internal(ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
487 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
488
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
489 static void file_util_abort_cb(GenericDialog *gd, gpointer data)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
490 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
491 UtilityData *ud = data;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
492 if (ud->external)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
493 editor_skip(ud->resume_data);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
494 else
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
495 file_util_perform_ci_cb(NULL, EDITOR_ERROR_SKIPPED, ud->flist, ud);
140
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
496
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
497 }
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
498
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
499
1405
03384485676d Introduce EditorFlags type, cleanup.
zas_
parents: 1400
diff changeset
500 static gint file_util_perform_ci_cb(gpointer resume_data, EditorFlags flags, GList *list, gpointer data)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
501 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
502 UtilityData *ud = data;
1400
67573155210c Add helper macros EDITOR_ERRORS() and EDITOR_ERRORS_BUT_SKIPPED() to clean up the code a bit. Minor tidy up.
zas_
parents: 1367
diff changeset
503 gint ret = EDITOR_CB_CONTINUE;
67573155210c Add helper macros EDITOR_ERRORS() and EDITOR_ERRORS_BUT_SKIPPED() to clean up the code a bit. Minor tidy up.
zas_
parents: 1367
diff changeset
504
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
505 ud->resume_data = resume_data;
497
a33badd85f16 Allow the copy of file paths to clipboard.
zas_
parents: 495
diff changeset
506
1400
67573155210c Add helper macros EDITOR_ERRORS() and EDITOR_ERRORS_BUT_SKIPPED() to clean up the code a bit. Minor tidy up.
zas_
parents: 1367
diff changeset
507 if (EDITOR_ERRORS_BUT_SKIPPED(flags))
140
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
508 {
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
509 GString *msg = g_string_new(editor_get_error_str(flags));
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
510 GenericDialog *d;
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
511 g_string_append(msg, "\n");
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
512 g_string_append(msg, ud->messages.fail);
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
513 g_string_append(msg, "\n");
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
514 while (list)
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
515 {
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
516 FileData *fd = list->data;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 341
diff changeset
517
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
518 g_string_append(msg, fd->path);
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
519 g_string_append(msg, "\n");
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
520 list = list->next;
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
521 }
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
522 if (resume_data)
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
523 {
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
524 g_string_append(msg, _("\n Continue multiple file operation?"));
1174
0bea79d87065 Drop useless wmclass stuff. Gtk will take care of it and as said in the documentation using gtk_window_set_wmclass() is sort of pointless.
zas_
parents: 1055
diff changeset
525 d = file_util_gen_dlg(ud->messages.fail, "dlg_confirm",
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
526 NULL, TRUE,
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
527 file_util_abort_cb, ud);
140
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
528
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
529 generic_dialog_add_message(d, GTK_STOCK_DIALOG_WARNING, NULL, msg->str);
140
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
530
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
531 generic_dialog_add_button(d, GTK_STOCK_GO_FORWARD, _("Co_ntinue"),
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
532 file_util_resume_cb, TRUE);
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
533 gtk_widget_show(d->dialog);
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
534 ret = EDITOR_CB_SUSPEND;
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
535 }
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
536 else
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
537 {
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
538 file_util_warning_dialog(ud->messages.fail, msg->str, GTK_STOCK_DIALOG_ERROR, NULL);
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
539 }
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
540 g_string_free(msg, TRUE);
140
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
541 }
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 341
diff changeset
542
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 341
diff changeset
543
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
544 while (list) /* be careful, file_util_perform_ci_internal can pass ud->flist as list */
140
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
545 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
546 FileData *fd = list->data;
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 974
diff changeset
547 list = list->next;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
548
1400
67573155210c Add helper macros EDITOR_ERRORS() and EDITOR_ERRORS_BUT_SKIPPED() to clean up the code a bit. Minor tidy up.
zas_
parents: 1367
diff changeset
549 if (!EDITOR_ERRORS(flags)) /* files were successfully deleted, call the maint functions */
761
a2dda8e61e0f another fix in notification
nadvornik
parents: 758
diff changeset
550 {
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
551 if (ud->with_sidecars)
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
552 file_data_sc_apply_ci(fd);
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
553 else
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
554 file_data_apply_ci(fd);
761
a2dda8e61e0f another fix in notification
nadvornik
parents: 758
diff changeset
555 }
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
556
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
557 ud->flist = g_list_remove(ud->flist, fd);
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
558
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
559 /* FIXME: put it here for now */
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
560 if (ud->type == UTILITY_TYPE_WRITE_METADATA)
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
561 {
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
562 metadata_write_queue_remove(fd);
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
563 }
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
564
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
565 if (ud->with_sidecars)
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
566 file_data_sc_free_ci(fd);
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
567 else
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
568 file_data_free_ci(fd);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
569 file_data_unref(fd);
140
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
570 }
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
571
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
572 if (!resume_data) /* end of the list */
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
573 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
574 ud->phase = UTILITY_PHASE_DONE;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
575 file_util_dialog_run(ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
576 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
577
140
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
578 return ret;
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
579 }
e57b0207e180 editors.c was almost completely rewritten:
nadvornik
parents: 138
diff changeset
580
143
0d1bf3ac6cd8 improved FileDataChangeInfo structure, check for another file operation in progress
nadvornik
parents: 140
diff changeset
581
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
582 /*
756
573121c002c3 Typo fix.
zas_
parents: 755
diff changeset
583 * Perform the operation described by FileDataChangeInfo on all files in the list
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
584 * it is an alternative to start_editor_from_filelist_full, it should use similar interface
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 974
diff changeset
585 */
143
0d1bf3ac6cd8 improved FileDataChangeInfo structure, check for another file operation in progress
nadvornik
parents: 140
diff changeset
586
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
587
1221
584eae03d747 perform internal commands in idle call
nadvornik
parents: 1211
diff changeset
588 static gboolean file_util_perform_ci_internal(gpointer data)
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
589 {
1221
584eae03d747 perform internal commands in idle call
nadvornik
parents: 1211
diff changeset
590 UtilityData *ud = data;
584eae03d747 perform internal commands in idle call
nadvornik
parents: 1211
diff changeset
591
1523
24a12aa0cb54 Fix up event source ids type: gint -> guint.
zas_
parents: 1452
diff changeset
592 if (!ud->perform_idle_id)
1289
deb0876c29d2 force at least one idle call before writting metadata
nadvornik
parents: 1284
diff changeset
593 {
deb0876c29d2 force at least one idle call before writting metadata
nadvornik
parents: 1284
diff changeset
594 /* this function was called directly
deb0876c29d2 force at least one idle call before writting metadata
nadvornik
parents: 1284
diff changeset
595 just setup idle callback and wait until we are called again
deb0876c29d2 force at least one idle call before writting metadata
nadvornik
parents: 1284
diff changeset
596 */
deb0876c29d2 force at least one idle call before writting metadata
nadvornik
parents: 1284
diff changeset
597
deb0876c29d2 force at least one idle call before writting metadata
nadvornik
parents: 1284
diff changeset
598 /* this is removed when ud is destroyed */
deb0876c29d2 force at least one idle call before writting metadata
nadvornik
parents: 1284
diff changeset
599 ud->perform_idle_id = g_idle_add(file_util_perform_ci_internal, ud);
deb0876c29d2 force at least one idle call before writting metadata
nadvornik
parents: 1284
diff changeset
600 return TRUE;
deb0876c29d2 force at least one idle call before writting metadata
nadvornik
parents: 1284
diff changeset
601 }
1221
584eae03d747 perform internal commands in idle call
nadvornik
parents: 1211
diff changeset
602
584eae03d747 perform internal commands in idle call
nadvornik
parents: 1211
diff changeset
603 g_assert(ud->flist);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
604
1221
584eae03d747 perform internal commands in idle call
nadvornik
parents: 1211
diff changeset
605 if (ud->flist)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
606 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
607 gint ret;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
608
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
609 /* take a single entry each time, this allows better control over the operation */
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
610 GList *single_entry = g_list_append(NULL, ud->flist->data);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
611 gboolean last = !ud->flist->next;
1405
03384485676d Introduce EditorFlags type, cleanup.
zas_
parents: 1400
diff changeset
612 EditorFlags status = EDITOR_ERROR_STATUS;
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
613
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
614 if (ud->with_sidecars ? file_data_sc_perform_ci(single_entry->data)
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
615 : file_data_perform_ci(single_entry->data))
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
616 status = 0; /* OK */
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
617
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
618 ret = file_util_perform_ci_cb(GINT_TO_POINTER(!last), status, single_entry, ud);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
619 g_list_free(single_entry);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
620
1221
584eae03d747 perform internal commands in idle call
nadvornik
parents: 1211
diff changeset
621 if (ret == EDITOR_CB_SUSPEND || last) return FALSE;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
622
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
623 if (ret == EDITOR_CB_SKIP)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
624 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
625 file_util_perform_ci_cb(NULL, EDITOR_ERROR_SKIPPED, ud->flist, ud);
1221
584eae03d747 perform internal commands in idle call
nadvornik
parents: 1211
diff changeset
626 return FALSE;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
627 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
628 }
1221
584eae03d747 perform internal commands in idle call
nadvornik
parents: 1211
diff changeset
629
584eae03d747 perform internal commands in idle call
nadvornik
parents: 1211
diff changeset
630 return TRUE;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
631 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
632
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
633 static void file_util_perform_ci_dir(UtilityData *ud, gboolean internal, gboolean ext_result)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
634 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
635 switch (ud->type)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
636 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
637 case UTILITY_TYPE_DELETE_LINK:
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
638 {
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
639 g_assert(ud->dir_fd->sidecar_files == NULL); // directories should not have sidecars
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
640 if ((internal && file_data_perform_ci(ud->dir_fd)) ||
897
6c676d3eef5b fixed previous checkin
nadvornik
parents: 896
diff changeset
641 (!internal && ext_result))
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
642 {
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
643 file_data_apply_ci(ud->dir_fd);
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
644 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
645 else
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
646 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
647 gchar *text;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
648
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
649 text = g_strdup_printf("%s:\n\n%s", ud->messages.fail, ud->dir_fd->path);
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
650 file_util_warning_dialog(ud->messages.fail, text, GTK_STOCK_DIALOG_ERROR, NULL);
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
651 g_free(text);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
652 }
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
653 file_data_free_ci(ud->dir_fd);
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
654 break;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
655 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
656 case UTILITY_TYPE_DELETE_FOLDER:
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
657 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
658 FileData *fail = NULL;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
659 GList *work;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
660 work = ud->content_list;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
661 while (work)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
662 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
663 FileData *fd;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
664
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
665 fd = work->data;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
666 work = work->next;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
667
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
668 if (!fail)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
669 {
897
6c676d3eef5b fixed previous checkin
nadvornik
parents: 896
diff changeset
670 if ((internal && file_data_sc_perform_ci(fd)) ||
6c676d3eef5b fixed previous checkin
nadvornik
parents: 896
diff changeset
671 (!internal && ext_result))
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
672 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
673 file_data_sc_apply_ci(fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
674 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
675 else
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
676 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
677 if (internal) fail = file_data_ref(fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
678 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
679 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
680 file_data_sc_free_ci(fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
681 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
682
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
683 if (!fail)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
684 {
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
685 g_assert(ud->dir_fd->sidecar_files == NULL); // directories should not have sidecars
897
6c676d3eef5b fixed previous checkin
nadvornik
parents: 896
diff changeset
686 if ((internal && file_data_sc_perform_ci(ud->dir_fd)) ||
6c676d3eef5b fixed previous checkin
nadvornik
parents: 896
diff changeset
687 (!internal && ext_result))
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
688 {
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
689 file_data_apply_ci(ud->dir_fd);
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
690 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
691 else
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
692 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
693 fail = file_data_ref(ud->dir_fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
694 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
695 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
696
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
697 if (fail)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
698 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
699 gchar *text;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
700 GenericDialog *gd;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
701
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
702 text = g_strdup_printf("%s:\n\n%s", ud->messages.fail, ud->dir_fd->path);
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
703 gd = file_util_warning_dialog(ud->messages.fail, text, GTK_STOCK_DIALOG_ERROR, NULL);
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
704 g_free(text);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
705
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
706 if (fail != ud->dir_fd)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
707 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
708 pref_spacer(gd->vbox, PREF_PAD_GROUP);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
709 text = g_strdup_printf(_("Removal of folder contents failed at this file:\n\n%s"),
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
710 fail->path);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
711 pref_label_new(gd->vbox, text);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
712 g_free(text);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
713 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
714
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
715 file_data_unref(fail);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
716 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
717 break;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
718 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
719 case UTILITY_TYPE_RENAME_FOLDER:
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
720 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
721 FileData *fail = NULL;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
722 GList *work;
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
723 g_assert(ud->dir_fd->sidecar_files == NULL); // directories should not have sidecars
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
724
897
6c676d3eef5b fixed previous checkin
nadvornik
parents: 896
diff changeset
725 if ((internal && file_data_sc_perform_ci(ud->dir_fd)) ||
6c676d3eef5b fixed previous checkin
nadvornik
parents: 896
diff changeset
726 (!internal && ext_result))
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
727 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
728 file_data_sc_apply_ci(ud->dir_fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
729 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
730 else
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
731 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
732 fail = file_data_ref(ud->dir_fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
733 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
734
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
735
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
736 work = ud->content_list;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
737 while (work)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
738 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
739 FileData *fd;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
740
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
741 fd = work->data;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
742 work = work->next;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
743
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
744 if (!fail)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
745 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
746 file_data_sc_apply_ci(fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
747 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
748 file_data_sc_free_ci(fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
749 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
750
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
751 if (fail)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
752 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
753 gchar *text;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
754 GenericDialog *gd;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
755
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
756 text = g_strdup_printf("%s:\n\n%s", ud->messages.fail, ud->dir_fd->path);
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
757 gd = file_util_warning_dialog(ud->messages.fail, text, GTK_STOCK_DIALOG_ERROR, NULL);
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
758 g_free(text);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
759
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
760 file_data_unref(fail);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
761 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
762 break;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
763 }
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
764 case UTILITY_TYPE_CREATE_FOLDER:
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
765 {
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
766 if ((internal && mkdir_utf8(ud->dir_fd->path, 0755)) ||
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
767 (!internal && ext_result))
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
768 {
974
c466b8fabcc3 update the FileData structure when a new folder is created
nadvornik
parents: 947
diff changeset
769 file_data_check_changed_files(ud->dir_fd); /* this will update the FileData and send notification */
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
770 }
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
771 else
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
772 {
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
773 gchar *text;
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
774 GenericDialog *gd;
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
775
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
776 text = g_strdup_printf("%s:\n\n%s", ud->messages.fail, ud->dir_fd->path);
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
777 gd = file_util_warning_dialog(ud->messages.fail, text, GTK_STOCK_DIALOG_ERROR, NULL);
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
778 g_free(text);
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
779 }
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
780
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
781 break;
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
782 }
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
783 default:
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
784 g_warning("unhandled operation");
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
785 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
786 ud->phase = UTILITY_PHASE_DONE;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
787 file_util_dialog_run(ud);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
788 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
789
1405
03384485676d Introduce EditorFlags type, cleanup.
zas_
parents: 1400
diff changeset
790 static gint file_util_perform_ci_dir_cb(gpointer resume_data, EditorFlags flags, GList *list, gpointer data)
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
791 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
792 UtilityData *ud = data;
1400
67573155210c Add helper macros EDITOR_ERRORS() and EDITOR_ERRORS_BUT_SKIPPED() to clean up the code a bit. Minor tidy up.
zas_
parents: 1367
diff changeset
793 file_util_perform_ci_dir(ud, FALSE, !EDITOR_ERRORS_BUT_SKIPPED(flags));
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
794 return EDITOR_CB_CONTINUE; /* does not matter, there was just single directory */
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
795 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
796
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
797 void file_util_perform_ci(UtilityData *ud)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
798 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
799 switch (ud->type)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
800 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
801 case UTILITY_TYPE_COPY:
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
802 ud->external_command = g_strdup(CMD_COPY);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
803 break;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
804 case UTILITY_TYPE_MOVE:
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
805 ud->external_command = g_strdup(CMD_MOVE);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
806 break;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
807 case UTILITY_TYPE_RENAME:
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
808 case UTILITY_TYPE_RENAME_FOLDER:
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
809 ud->external_command = g_strdup(CMD_RENAME);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
810 break;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
811 case UTILITY_TYPE_DELETE:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
812 case UTILITY_TYPE_DELETE_LINK:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
813 case UTILITY_TYPE_DELETE_FOLDER:
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
814 ud->external_command = g_strdup(CMD_DELETE);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
815 break;
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
816 case UTILITY_TYPE_CREATE_FOLDER:
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
817 ud->external_command = g_strdup(CMD_FOLDER);
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
818 break;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
819 case UTILITY_TYPE_FILTER:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
820 case UTILITY_TYPE_EDITOR:
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
821 g_assert(ud->external_command != NULL); /* it should be already set */
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
822 break;
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
823 case UTILITY_TYPE_WRITE_METADATA:
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
824 ud->external_command = NULL;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
825 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
826
766
7148e125bf23 Check for existing editor command using is_valid_editor_command().
zas_
parents: 761
diff changeset
827 if (is_valid_editor_command(ud->external_command))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
828 {
1405
03384485676d Introduce EditorFlags type, cleanup.
zas_
parents: 1400
diff changeset
829 EditorFlags flags;
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
830
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
831 ud->external = TRUE;
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
832
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
833 if (ud->dir_fd)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
834 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
835 flags = start_editor_from_file_full(ud->external_command, ud->dir_fd, file_util_perform_ci_dir_cb, ud);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
836 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
837 else
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
838 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
839 flags = start_editor_from_filelist_full(ud->external_command, ud->flist, file_util_perform_ci_cb, ud);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
840 }
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
841
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
842 if (flags)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
843 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
844 gchar *text = g_strdup_printf(_("%s\nUnable to start external command.\n"), editor_get_error_str(flags));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
845 file_util_warning_dialog(ud->messages.fail, text, GTK_STOCK_DIALOG_ERROR, NULL);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
846 g_free(text);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
847 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
848 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
849 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
850 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
851 ud->external = FALSE;
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
852 if (ud->dir_fd)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
853 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
854 file_util_perform_ci_dir(ud, TRUE, FALSE);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
855 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
856 else
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
857 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
858 file_util_perform_ci_internal(ud);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
859 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
860 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
861 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
862
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
863 static GdkPixbuf *file_util_get_error_icon(FileData *fd, GtkWidget *widget)
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
864 {
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
865 static GdkPixbuf *pb_warning;
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
866 static GdkPixbuf *pb_error;
932
988eff509920 added icon for changes without warnings
nadvornik
parents: 931
diff changeset
867 static GdkPixbuf *pb_apply;
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
868 gint error;
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
869
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
870 if (!pb_warning)
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
871 {
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 974
diff changeset
872 pb_warning = gtk_widget_render_icon(widget, GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_MENU, NULL);
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
873 }
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
874
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
875 if (!pb_error)
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
876 {
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 974
diff changeset
877 pb_error = gtk_widget_render_icon(widget, GTK_STOCK_DIALOG_ERROR, GTK_ICON_SIZE_MENU, NULL);
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
878 }
932
988eff509920 added icon for changes without warnings
nadvornik
parents: 931
diff changeset
879
988eff509920 added icon for changes without warnings
nadvornik
parents: 931
diff changeset
880 if (!pb_apply)
988eff509920 added icon for changes without warnings
nadvornik
parents: 931
diff changeset
881 {
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 974
diff changeset
882 pb_apply = gtk_widget_render_icon(widget, GTK_STOCK_APPLY, GTK_ICON_SIZE_MENU, NULL);
932
988eff509920 added icon for changes without warnings
nadvornik
parents: 931
diff changeset
883 }
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
884
928
6a42ab7051f2 improved error reporting
nadvornik
parents: 924
diff changeset
885 error = file_data_sc_verify_ci(fd);
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
886
932
988eff509920 added icon for changes without warnings
nadvornik
parents: 931
diff changeset
887 if (!error) return pb_apply;
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
888
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 974
diff changeset
889 if (error & CHANGE_ERROR_MASK)
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
890 {
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
891 return pb_error;
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
892 }
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
893 else
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
894 {
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
895 return pb_warning;
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
896 }
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
897 }
914
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
898
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
899 static void file_util_check_resume_cb(GenericDialog *gd, gpointer data)
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
900 {
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
901 UtilityData *ud = data;
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
902 ud->phase = UTILITY_PHASE_CHECKED;
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
903 file_util_dialog_run(ud);
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
904 }
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
905
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
906 static void file_util_check_abort_cb(GenericDialog *gd, gpointer data)
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
907 {
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
908 UtilityData *ud = data;
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
909 ud->phase = UTILITY_PHASE_START;
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
910 file_util_dialog_run(ud);
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
911 }
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
912
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
913 void file_util_check_ci(UtilityData *ud)
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
914 {
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
915 gint error = CHANGE_OK;
928
6a42ab7051f2 improved error reporting
nadvornik
parents: 924
diff changeset
916 gchar *desc = NULL;
914
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
917
935
ae641f36159d fixed new folder command
nadvornik
parents: 934
diff changeset
918 if (ud->type != UTILITY_TYPE_CREATE_FOLDER)
914
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
919 {
935
ae641f36159d fixed new folder command
nadvornik
parents: 934
diff changeset
920 if (ud->dest_path && !isdir(ud->dest_path))
ae641f36159d fixed new folder command
nadvornik
parents: 934
diff changeset
921 {
ae641f36159d fixed new folder command
nadvornik
parents: 934
diff changeset
922 error = CHANGE_GENERIC_ERROR;
ae641f36159d fixed new folder command
nadvornik
parents: 934
diff changeset
923 desc = g_strdup_printf(_("%s is not a directory"), ud->dest_path);
ae641f36159d fixed new folder command
nadvornik
parents: 934
diff changeset
924 }
ae641f36159d fixed new folder command
nadvornik
parents: 934
diff changeset
925 else if (ud->dir_fd)
ae641f36159d fixed new folder command
nadvornik
parents: 934
diff changeset
926 {
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
927 g_assert(ud->dir_fd->sidecar_files == NULL); // directories should not have sidecars
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
928 error = file_data_verify_ci(ud->dir_fd);
935
ae641f36159d fixed new folder command
nadvornik
parents: 934
diff changeset
929 if (error) desc = file_data_get_error_string(error);
ae641f36159d fixed new folder command
nadvornik
parents: 934
diff changeset
930 }
ae641f36159d fixed new folder command
nadvornik
parents: 934
diff changeset
931 else
ae641f36159d fixed new folder command
nadvornik
parents: 934
diff changeset
932 {
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
933 error = file_data_verify_ci_list(ud->flist, &desc, ud->with_sidecars);
935
ae641f36159d fixed new folder command
nadvornik
parents: 934
diff changeset
934 }
914
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
935 }
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
936
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
937 if (!error)
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
938 {
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
939 ud->phase = UTILITY_PHASE_CHECKED;
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
940 file_util_dialog_run(ud);
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
941 return;
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
942 }
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
943
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
944 if (!(error & CHANGE_ERROR_MASK))
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
945 {
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
946 /* just a warning */
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
947 GenericDialog *d;
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
948
1174
0bea79d87065 Drop useless wmclass stuff. Gtk will take care of it and as said in the documentation using gtk_window_set_wmclass() is sort of pointless.
zas_
parents: 1055
diff changeset
949 d = file_util_gen_dlg(ud->messages.title, "dlg_confirm",
914
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
950 ud->parent, TRUE,
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
951 file_util_check_abort_cb, ud);
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
952
928
6a42ab7051f2 improved error reporting
nadvornik
parents: 924
diff changeset
953 generic_dialog_add_message(d, GTK_STOCK_DIALOG_WARNING, _("Really continue?"), desc);
914
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
954
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
955 generic_dialog_add_button(d, GTK_STOCK_GO_FORWARD, _("Co_ntinue"),
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
956 file_util_check_resume_cb, TRUE);
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
957 gtk_widget_show(d->dialog);
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
958 }
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
959 else
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
960 {
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
961 /* fatal error */
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
962 GenericDialog *d;
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
963
1174
0bea79d87065 Drop useless wmclass stuff. Gtk will take care of it and as said in the documentation using gtk_window_set_wmclass() is sort of pointless.
zas_
parents: 1055
diff changeset
964 d = file_util_gen_dlg(ud->messages.title, "dlg_confirm",
914
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
965 ud->parent, TRUE,
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
966 file_util_check_abort_cb, ud);
937
ed7ff10c0656 string cleanup
nadvornik
parents: 936
diff changeset
967 generic_dialog_add_message(d, GTK_STOCK_DIALOG_WARNING, _("This operation can't continue:"), desc);
914
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
968
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
969 gtk_widget_show(d->dialog);
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
970 }
928
6a42ab7051f2 improved error reporting
nadvornik
parents: 924
diff changeset
971 g_free(desc);
914
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
972 }
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
973
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
974
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
975
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
976
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
977
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
978 static void file_util_cancel_cb(GenericDialog *gd, gpointer data)
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
979 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
980 UtilityData *ud = data;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
981
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
982 generic_dialog_close(gd);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
983
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
984 ud->gd = NULL;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
985
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
986 ud->phase = UTILITY_PHASE_CANCEL;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
987 file_util_dialog_run(ud);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
988 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
989
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
990 static void file_util_ok_cb(GenericDialog *gd, gpointer data)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
991 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
992 UtilityData *ud = data;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
993
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
994 generic_dialog_close(gd);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
995
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
996 ud->gd = NULL;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
997
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
998 file_util_dialog_run(ud);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
999 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1000
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1001 static void file_util_fdlg_cancel_cb(FileDialog *fdlg, gpointer data)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1002 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1003 UtilityData *ud = data;
675
cca86176bf81 Fix redundant application name in window titles.
zas_
parents: 673
diff changeset
1004
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1005 file_dialog_close(fdlg);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1006
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1007 ud->fdlg = NULL;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1008
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1009 ud->phase = UTILITY_PHASE_CANCEL;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1010 file_util_dialog_run(ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1011 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1012
900
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1013 static void file_util_dest_folder_update_path(UtilityData *ud)
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1014 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1015 g_free(ud->dest_path);
900
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1016 ud->dest_path = g_strdup(gtk_entry_get_text(GTK_ENTRY(ud->fdlg->entry)));
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1017
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1018 switch (ud->type)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1019 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1020 case UTILITY_TYPE_COPY:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1021 file_data_sc_update_ci_copy_list(ud->flist, ud->dest_path);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1022 case UTILITY_TYPE_MOVE:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1023 file_data_sc_update_ci_move_list(ud->flist, ud->dest_path);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1024 break;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1025 case UTILITY_TYPE_FILTER:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1026 case UTILITY_TYPE_EDITOR:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1027 file_data_sc_update_ci_unspecified_list(ud->flist, ud->dest_path);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1028 break;
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1029 case UTILITY_TYPE_CREATE_FOLDER:
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1030 file_data_unref(ud->dir_fd);
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1031 ud->dir_fd = file_data_new_simple(ud->dest_path);
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1032 break;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1033 case UTILITY_TYPE_DELETE:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1034 case UTILITY_TYPE_DELETE_LINK:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1035 case UTILITY_TYPE_DELETE_FOLDER:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1036 case UTILITY_TYPE_RENAME:
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1037 case UTILITY_TYPE_RENAME_FOLDER:
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1038 case UTILITY_TYPE_WRITE_METADATA:
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1039 g_warning("unhandled operation");
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1040 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1041 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1042
900
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1043 static void file_util_fdlg_ok_cb(FileDialog *fdlg, gpointer data)
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1044 {
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1045 UtilityData *ud = data;
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1046
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1047 file_util_dest_folder_update_path(ud);
946
1d6e01950e85 remember path entered in file dialog
nadvornik
parents: 937
diff changeset
1048 if (isdir(ud->dest_path)) file_dialog_sync_history(fdlg, TRUE);
900
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1049 file_dialog_close(fdlg);
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1050
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1051 ud->fdlg = NULL;
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1052
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1053 file_util_dialog_run(ud);
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1054 }
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1055
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1056
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1057 static void file_util_dest_folder_entry_cb(GtkWidget *entry, gpointer data)
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1058 {
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1059 UtilityData *ud = data;
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1060 file_util_dest_folder_update_path(ud);
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1061 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1062
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1063 /* format: * = filename without extension, ## = number position, extension is kept */
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1064 static gchar *file_util_rename_multiple_auto_format_name(const gchar *format, const gchar *name, gint n)
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1065 {
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1066 gchar *new_name;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1067 gchar *parsed;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1068 const gchar *ext;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1069 gchar *middle;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1070 gchar *tmp;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1071 gchar *pad_start;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1072 gchar *pad_end;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1073 gint padding;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1074
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1075 if (!format || !name) return NULL;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1076
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1077 tmp = g_strdup(format);
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1078 pad_start = strchr(tmp, '#');
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1079 if (pad_start)
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1080 {
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1081 pad_end = pad_start;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1082 padding = 0;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1083 while (*pad_end == '#')
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1084 {
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1085 pad_end++;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1086 padding++;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1087 }
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1088 *pad_start = '\0';
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1089
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1090 parsed = g_strdup_printf("%s%0*d%s", tmp, padding, n, pad_end);
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1091 g_free(tmp);
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1092 }
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1093 else
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1094 {
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1095 parsed = tmp;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1096 }
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1097
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1098 ext = extension_from_path(name);
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1099
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1100 middle = strchr(parsed, '*');
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1101 if (middle)
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1102 {
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1103 gchar *base;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1104
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1105 *middle = '\0';
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1106 middle++;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1107
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1108 base = remove_extension_from_path(name);
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1109 new_name = g_strconcat(parsed, base, middle, ext, NULL);
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1110 g_free(base);
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1111 }
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1112 else
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1113 {
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1114 new_name = g_strconcat(parsed, ext, NULL);
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1115 }
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1116
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1117 g_free(parsed);
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1118
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1119 return new_name;
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1120 }
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1121
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1122
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1123 static void file_util_rename_preview_update(UtilityData *ud)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1124 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1125 GtkTreeModel *store;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1126 GtkTreeSelection *selection;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1127 GtkTreeIter iter;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1128 const gchar *front;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1129 const gchar *end;
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1130 const gchar *format;
1452
67b40740122e gint -> gboolean where applicable.
zas_
parents: 1405
diff changeset
1131 gboolean valid;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1132 gint start_n;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1133 gint padding;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1134 gint n;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1135 gint mode;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1136
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1137 mode = gtk_notebook_get_current_page(GTK_NOTEBOOK(ud->notebook));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1138
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1139 if (mode == UTILITY_RENAME)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1140 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1141 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ud->listview));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1142 if (gtk_tree_selection_get_selected(selection, &store, &iter))
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1143 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1144 FileData *fd;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1145 const gchar *dest = gtk_entry_get_text(GTK_ENTRY(ud->rename_entry));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1146
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1147 gtk_tree_model_get(store, &iter, UTILITY_COLUMN_FD, &fd, -1);
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1148 g_assert(ud->with_sidecars); /* sidecars must be renamed too, it would break the pairing otherwise */
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1149 file_data_sc_update_ci_rename(fd, dest);
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 974
diff changeset
1150 gtk_list_store_set(GTK_LIST_STORE(store), &iter,
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
1151 UTILITY_COLUMN_PIXBUF, file_util_get_error_icon(fd, ud->listview),
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 974
diff changeset
1152 UTILITY_COLUMN_DEST_PATH, fd->change->dest,
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 974
diff changeset
1153 UTILITY_COLUMN_DEST_NAME, filename_from_path(fd->change->dest),
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1154 -1);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1155 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1156 return;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1157 }
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1158
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1159
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1160 front = gtk_entry_get_text(GTK_ENTRY(ud->auto_entry_front));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1161 end = gtk_entry_get_text(GTK_ENTRY(ud->auto_entry_end));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1162 padding = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(ud->auto_spin_pad));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1163
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1164 format = gtk_entry_get_text(GTK_ENTRY(ud->format_entry));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1165
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1166 if (mode == UTILITY_RENAME_FORMATTED)
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1167 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1168 start_n = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(ud->format_spin));
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1169 }
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1170 else
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1171 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1172 start_n = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(ud->auto_spin_start));
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1173 }
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1174
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1175 store = gtk_tree_view_get_model(GTK_TREE_VIEW(ud->listview));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1176 n = start_n;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1177 valid = gtk_tree_model_get_iter_first(store, &iter);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1178 while (valid)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1179 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1180 gchar *dest;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1181 FileData *fd;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1182 gtk_tree_model_get(store, &iter, UTILITY_COLUMN_FD, &fd, -1);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1183
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1184 if (mode == UTILITY_RENAME_FORMATTED)
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1185 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
1186 dest = file_util_rename_multiple_auto_format_name(format, fd->name, n);
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1187 }
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1188 else
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1189 {
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1190 dest = g_strdup_printf("%s%0*d%s", front, padding, n, end);
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1191 }
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1192
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1193 g_assert(ud->with_sidecars); /* sidecars must be renamed too, it would break the pairing otherwise */
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1194 file_data_sc_update_ci_rename(fd, dest);
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 974
diff changeset
1195 gtk_list_store_set(GTK_LIST_STORE(store), &iter,
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
1196 UTILITY_COLUMN_PIXBUF, file_util_get_error_icon(fd, ud->listview),
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
1197 UTILITY_COLUMN_DEST_PATH, fd->change->dest,
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1198 UTILITY_COLUMN_DEST_NAME, filename_from_path(fd->change->dest),
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1199 -1);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1200 g_free(dest);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1201
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1202 n++;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1203 valid = gtk_tree_model_iter_next(store, &iter);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1204 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1205
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1206 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1207
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1208 static void file_util_rename_preview_entry_cb(GtkWidget *entry, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1209 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1210 UtilityData *ud = data;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1211 file_util_rename_preview_update(ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1212 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1213
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1214 static void file_util_rename_preview_adj_cb(GtkWidget *spin, gpointer data)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1215 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1216 UtilityData *ud = data;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1217 file_util_rename_preview_update(ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1218 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1219
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1220 static gboolean file_util_rename_idle_cb(gpointer data)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1221 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1222 UtilityData *ud = data;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1223
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1224 file_util_rename_preview_update(ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1225
1523
24a12aa0cb54 Fix up event source ids type: gint -> guint.
zas_
parents: 1452
diff changeset
1226 ud->update_idle_id = 0;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1227 return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1228 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1229
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1230 static void file_util_rename_preview_order_cb(GtkTreeModel *treemodel, GtkTreePath *tpath,
1452
67b40740122e gint -> gboolean where applicable.
zas_
parents: 1405
diff changeset
1231 GtkTreeIter *iter, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1232 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1233 UtilityData *ud = data;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1234
1523
24a12aa0cb54 Fix up event source ids type: gint -> guint.
zas_
parents: 1452
diff changeset
1235 if (ud->update_idle_id) return;
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1236
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1237 ud->update_idle_id = g_idle_add(file_util_rename_idle_cb, ud);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1238 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1239
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1240
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1241 static gboolean file_util_preview_cb(GtkTreeSelection *selection, GtkTreeModel *store,
1452
67b40740122e gint -> gboolean where applicable.
zas_
parents: 1405
diff changeset
1242 GtkTreePath *tpath, gboolean path_currently_selected,
67b40740122e gint -> gboolean where applicable.
zas_
parents: 1405
diff changeset
1243 gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1244 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1245 UtilityData *ud = data;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1246 GtkTreeIter iter;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1247 FileData *fd = NULL;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1248
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1249 if (path_currently_selected ||
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1250 !gtk_tree_model_get_iter(store, &iter, tpath)) return TRUE;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1251
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1252 gtk_tree_model_get(store, &iter, UTILITY_COLUMN_FD, &fd, -1);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1253 generic_dialog_image_set(ud->gd, fd);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1254
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1255 if (ud->type == UTILITY_TYPE_RENAME)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1256 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1257 const gchar *name = filename_from_path(fd->change->dest);
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1258
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1259 gtk_widget_grab_focus(ud->rename_entry);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1260 gtk_label_set_text(GTK_LABEL(ud->rename_label), fd->name);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1261 g_signal_handlers_block_by_func(ud->rename_entry, G_CALLBACK(file_util_rename_preview_entry_cb), ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1262 gtk_entry_set_text(GTK_ENTRY(ud->rename_entry), name);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1263 gtk_editable_select_region(GTK_EDITABLE(ud->rename_entry), 0, filename_base_length(name));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1264 g_signal_handlers_unblock_by_func(ud->rename_entry, G_CALLBACK(file_util_rename_preview_entry_cb), ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1265 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1266
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1267 return TRUE;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1268 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1269
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1270
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1271
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1272 static void box_append_safe_delete_status(GenericDialog *gd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1273 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1274 GtkWidget *label;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1275 gchar *buf;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1276
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1277 buf = file_util_safe_delete_status();
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1278 label = pref_label_new(gd->vbox, buf);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1279 g_free(buf);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1280
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1281 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1282 gtk_widget_set_sensitive(label, FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1283 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1284
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1285
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1286 static void file_util_dialog_init_simple_list(UtilityData *ud)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1287 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1288 GtkWidget *box;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1289 GtkTreeSelection *selection;
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1290 gchar *dir_msg;
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1291
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1292 const gchar *stock_id;
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1293
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1294 if (ud->type == UTILITY_TYPE_DELETE ||
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1295 ud->type == UTILITY_TYPE_DELETE_LINK ||
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1296 ud->type == UTILITY_TYPE_DELETE_FOLDER)
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1297 {
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1298 stock_id = GTK_STOCK_DELETE;
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1299 }
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1300 else
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1301 {
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1302 stock_id = GTK_STOCK_OK;
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1303 }
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1304
1174
0bea79d87065 Drop useless wmclass stuff. Gtk will take care of it and as said in the documentation using gtk_window_set_wmclass() is sort of pointless.
zas_
parents: 1055
diff changeset
1305 ud->gd = file_util_gen_dlg(ud->messages.title, "dlg_confirm",
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1306 ud->parent, FALSE, file_util_cancel_cb, ud);
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1307 generic_dialog_add_button(ud->gd, stock_id, NULL, file_util_ok_cb, TRUE);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1308
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1309
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1310 if (ud->dir_fd)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1311 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1312 dir_msg = g_strdup_printf("%s\n\n%s\n", ud->messages.desc_source_fd, ud->dir_fd->path);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1313 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1314 else
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1315 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1316 dir_msg = g_strdup("");
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1317 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1318
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1319 box = generic_dialog_add_message(ud->gd, GTK_STOCK_DIALOG_QUESTION,
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1320 ud->messages.question,
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1321 dir_msg);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1322
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1323 g_free(dir_msg);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1324
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1325 box = pref_group_new(box, TRUE, ud->messages.desc_flist, GTK_ORIENTATION_HORIZONTAL);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1326
1211
e2bbe90b0dcd most of the metadata options now works
nadvornik
parents: 1205
diff changeset
1327 ud->listview = file_util_dialog_add_list(box, ud->flist, FALSE, ud->with_sidecars);
e2bbe90b0dcd most of the metadata options now works
nadvornik
parents: 1205
diff changeset
1328 if (ud->with_sidecars) file_util_dialog_add_list_column(ud->listview, _("Sidecars"), FALSE, UTILITY_COLUMN_SIDECARS);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1329
1224
ebfd305d902e improved sidecar writting
nadvornik
parents: 1221
diff changeset
1330 if (ud->type == UTILITY_TYPE_WRITE_METADATA) file_util_dialog_add_list_column(ud->listview, _("Write to file"), FALSE, UTILITY_COLUMN_DEST_NAME);
ebfd305d902e improved sidecar writting
nadvornik
parents: 1221
diff changeset
1331
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1332 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ud->listview));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1333 gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1334 gtk_tree_selection_set_select_function(selection, file_util_preview_cb, ud, NULL);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1335
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1336 generic_dialog_add_image(ud->gd, box, NULL, NULL, NULL, NULL, FALSE);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1337
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1338 if (ud->type == UTILITY_TYPE_DELETE ||
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1339 ud->type == UTILITY_TYPE_DELETE_LINK ||
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1340 ud->type == UTILITY_TYPE_DELETE_FOLDER)
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1341 box_append_safe_delete_status(ud->gd);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1342
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1343 gtk_widget_show(ud->gd->dialog);
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1344
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1345 file_util_dialog_list_select(ud->listview, 0);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1346 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1347
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1348 static void file_util_dialog_init_dest_folder(UtilityData *ud)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1349 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1350 FileDialog *fdlg;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1351 GtkWidget *label;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1352 const gchar *stock_id;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1353
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 974
diff changeset
1354 if (ud->type == UTILITY_TYPE_COPY)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1355 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1356 stock_id = GTK_STOCK_COPY;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1357 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1358 else
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1359 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1360 stock_id = GTK_STOCK_OK;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1361 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1362
1174
0bea79d87065 Drop useless wmclass stuff. Gtk will take care of it and as said in the documentation using gtk_window_set_wmclass() is sort of pointless.
zas_
parents: 1055
diff changeset
1363 fdlg = file_util_file_dlg(ud->messages.title, "dlg_dest_folder", ud->parent,
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1364 file_util_fdlg_cancel_cb, ud);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1365
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1366 ud->fdlg = fdlg;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1367
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1368 generic_dialog_add_message(GENERIC_DIALOG(fdlg), NULL, ud->messages.question, NULL);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1369
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1370 label = pref_label_new(GENERIC_DIALOG(fdlg)->vbox, _("Choose the destination folder."));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1371 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1372 pref_spacer(GENERIC_DIALOG(fdlg)->vbox, 0);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1373
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1374 file_dialog_add_button(fdlg, stock_id, ud->messages.title, file_util_fdlg_ok_cb, TRUE);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1375
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1376 file_dialog_add_path_widgets(fdlg, NULL, ud->dest_path, "move_copy", NULL, NULL);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1377
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1378 g_signal_connect(G_OBJECT(fdlg->entry), "changed",
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1379 G_CALLBACK(file_util_dest_folder_entry_cb), ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1380
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1381 gtk_widget_show(GENERIC_DIALOG(fdlg)->dialog);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1382 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1383
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1384
1452
67b40740122e gint -> gboolean where applicable.
zas_
parents: 1405
diff changeset
1385 static GtkWidget *furm_simple_vlabel(GtkWidget *box, const gchar *text, gboolean expand)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1386 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1387 GtkWidget *vbox;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1388 GtkWidget *label;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1389
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1390 vbox = gtk_vbox_new(FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1391 gtk_box_pack_start(GTK_BOX(box), vbox, expand, expand, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1392 gtk_widget_show(vbox);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1393
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1394 label = gtk_label_new(text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1395 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1396 gtk_widget_show(label);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1397
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1398 return vbox;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1399 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1400
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1401
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1402 static void file_util_dialog_init_source_dest(UtilityData *ud)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1403 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1404 GtkTreeModel *store;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1405 GtkTreeSelection *selection;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1406 GtkWidget *box;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1407 GtkWidget *hbox;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1408 GtkWidget *box2;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1409 GtkWidget *table;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1410 GtkWidget *combo;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1411 GtkWidget *page;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1412
1174
0bea79d87065 Drop useless wmclass stuff. Gtk will take care of it and as said in the documentation using gtk_window_set_wmclass() is sort of pointless.
zas_
parents: 1055
diff changeset
1413 ud->gd = file_util_gen_dlg(ud->messages.title, "dlg_confirm",
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1414 ud->parent, FALSE, file_util_cancel_cb, ud);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
1415
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1416 box = generic_dialog_add_message(ud->gd, NULL, ud->messages.question, NULL);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1417 generic_dialog_add_button(ud->gd, GTK_STOCK_OK, ud->messages.title, file_util_ok_cb, TRUE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1418
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1419 box = pref_group_new(box, TRUE, ud->messages.desc_flist, GTK_ORIENTATION_HORIZONTAL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1420
1211
e2bbe90b0dcd most of the metadata options now works
nadvornik
parents: 1205
diff changeset
1421 ud->listview = file_util_dialog_add_list(box, ud->flist, FALSE, ud->with_sidecars);
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
1422 file_util_dialog_add_list_column(ud->listview, _("Sidecars"), FALSE, UTILITY_COLUMN_SIDECARS);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 341
diff changeset
1423
924
96a1f535ce89 indicate check warnings and errors in delete and rename dialogs
nadvornik
parents: 921
diff changeset
1424 file_util_dialog_add_list_column(ud->listview, _("New name"), FALSE, UTILITY_COLUMN_DEST_NAME);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1425
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1426 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ud->listview));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1427 gtk_tree_selection_set_mode(GTK_TREE_SELECTION(selection), GTK_SELECTION_SINGLE);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1428 gtk_tree_selection_set_select_function(selection, file_util_preview_cb, ud, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1429
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1430
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1431 // column = file_util_rename_multiple_add_column(rd, _("Preview"), RENAME_COLUMN_PREVIEW);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1432 // gtk_tree_view_column_set_visible(column, FALSE);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 341
diff changeset
1433
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1434 gtk_tree_view_set_reorderable(GTK_TREE_VIEW(ud->listview), TRUE);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1435
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1436 store = gtk_tree_view_get_model(GTK_TREE_VIEW(ud->listview));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1437 g_signal_connect(G_OBJECT(store), "row_changed",
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1438 G_CALLBACK(file_util_rename_preview_order_cb), ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1439 gtk_widget_set_size_request(ud->listview, 300, 150);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1440
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1441 generic_dialog_add_image(ud->gd, box, NULL, NULL, NULL, NULL, FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1442
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1443 // gtk_container_add(GTK_CONTAINER(scrolled), view);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1444 gtk_widget_show(ud->gd->dialog);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1445
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1446
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1447 ud->notebook = gtk_notebook_new();
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1448
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1449 gtk_box_pack_start(GTK_BOX(ud->gd->vbox), ud->notebook, FALSE, FALSE, 0);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1450 gtk_widget_show(ud->notebook);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1451
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1452
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1453 page = gtk_vbox_new(FALSE, PREF_PAD_GAP);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1454 gtk_notebook_append_page(GTK_NOTEBOOK(ud->notebook), page, gtk_label_new(_("Manual rename")));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1455 gtk_widget_show(page);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1456
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1457 table = pref_table_new(page, 2, 2, FALSE, FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1458
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1459 pref_table_label(table, 0, 0, _("Original name:"), 1.0);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1460 ud->rename_label = pref_table_label(table, 1, 0, "", 0.0);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1461
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1462 pref_table_label(table, 0, 1, _("New name:"), 1.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1463
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1464 ud->rename_entry = gtk_entry_new();
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1465 gtk_table_attach(GTK_TABLE(table), ud->rename_entry, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1466 generic_dialog_attach_default(GENERIC_DIALOG(ud->gd), ud->rename_entry);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1467 gtk_widget_grab_focus(ud->rename_entry);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1468
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1469 g_signal_connect(G_OBJECT(ud->rename_entry), "changed",
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1470 G_CALLBACK(file_util_rename_preview_entry_cb), ud);
42
606fcf461a68 Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
gqview
parents: 15
diff changeset
1471
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1472 gtk_widget_show(ud->rename_entry);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1473
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1474 page = gtk_vbox_new(FALSE, PREF_PAD_GAP);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1475 gtk_notebook_append_page(GTK_NOTEBOOK(ud->notebook), page, gtk_label_new(_("Auto rename")));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1476 gtk_widget_show(page);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1477
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1478
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1479 hbox = pref_box_new(page, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_GAP);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1480
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1481 box2 = furm_simple_vlabel(hbox, _("Begin text"), TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1482
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1483 combo = history_combo_new(&ud->auto_entry_front, "", "numerical_rename_prefix", -1);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1484 g_signal_connect(G_OBJECT(ud->auto_entry_front), "changed",
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1485 G_CALLBACK(file_util_rename_preview_entry_cb), ud);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1486 gtk_box_pack_start(GTK_BOX(box2), combo, TRUE, TRUE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1487 gtk_widget_show(combo);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 341
diff changeset
1488
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1489 box2 = furm_simple_vlabel(hbox, _("Start #"), FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1490
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1491 ud->auto_spin_start = pref_spin_new(box2, NULL, NULL,
80
a10fc0308c12 Thu Oct 19 07:42:38 2006 John Ellis <johne@verizon.net>
gqview
parents: 71
diff changeset
1492 0.0, 1000000.0, 1.0, 0, 1.0,
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1493 G_CALLBACK(file_util_rename_preview_adj_cb), ud);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1494
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1495 box2 = furm_simple_vlabel(hbox, _("End text"), TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1496
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1497 combo = history_combo_new(&ud->auto_entry_end, "", "numerical_rename_suffix", -1);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1498 g_signal_connect(G_OBJECT(ud->auto_entry_end), "changed",
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1499 G_CALLBACK(file_util_rename_preview_entry_cb), ud);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1500 gtk_box_pack_start(GTK_BOX(box2), combo, TRUE, TRUE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1501 gtk_widget_show(combo);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1502
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1503 ud->auto_spin_pad = pref_spin_new(page, _("Padding:"), NULL,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1504 1.0, 8.0, 1.0, 0, 1.0,
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1505 G_CALLBACK(file_util_rename_preview_adj_cb), ud);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1506
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1507 page = gtk_vbox_new(FALSE, PREF_PAD_GAP);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1508 gtk_notebook_append_page(GTK_NOTEBOOK(ud->notebook), page, gtk_label_new(_("Formatted rename")));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1509 gtk_widget_show(page);
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1510
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1511 hbox = pref_box_new(page, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_GAP);
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1512
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1513 box2 = furm_simple_vlabel(hbox, _("Format (* = original name, ## = numbers)"), TRUE);
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1514
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1515 combo = history_combo_new(&ud->format_entry, "", "auto_rename_format", -1);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1516 g_signal_connect(G_OBJECT(ud->format_entry), "changed",
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1517 G_CALLBACK(file_util_rename_preview_entry_cb), ud);
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1518 gtk_box_pack_start(GTK_BOX(box2), combo, TRUE, TRUE, 0);
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1519 gtk_widget_show(combo);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 341
diff changeset
1520
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1521 box2 = furm_simple_vlabel(hbox, _("Start #"), FALSE);
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1522
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1523 ud->format_spin = pref_spin_new(box2, NULL, NULL,
80
a10fc0308c12 Thu Oct 19 07:42:38 2006 John Ellis <johne@verizon.net>
gqview
parents: 71
diff changeset
1524 0.0, 1000000.0, 1.0, 0, 1.0,
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1525 G_CALLBACK(file_util_rename_preview_adj_cb), ud);
66
ebbff299ad0d Fri Sep 1 02:12:45 2006 John Ellis <johne@verizon.net>
gqview
parents: 44
diff changeset
1526
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1527 // gtk_combo_box_set_active(GTK_COMBO_BOX(ud->combo_type), 0); /* callback will take care of the rest */
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
1528
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1529 file_util_dialog_list_select(ud->listview, 0);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1530 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1531
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1532
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1533 void file_util_dialog_run(UtilityData *ud)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1534 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1535 switch (ud->phase)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1536 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1537 case UTILITY_PHASE_START:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1538 /* create the dialogs */
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1539 switch (ud->type)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1540 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1541 case UTILITY_TYPE_DELETE:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1542 case UTILITY_TYPE_DELETE_LINK:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1543 case UTILITY_TYPE_DELETE_FOLDER:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1544 case UTILITY_TYPE_EDITOR:
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1545 case UTILITY_TYPE_WRITE_METADATA:
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1546 file_util_dialog_init_simple_list(ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1547 break;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1548 case UTILITY_TYPE_RENAME:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1549 file_util_dialog_init_source_dest(ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1550 break;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1551 case UTILITY_TYPE_COPY:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1552 case UTILITY_TYPE_MOVE:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1553 case UTILITY_TYPE_FILTER:
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1554 case UTILITY_TYPE_CREATE_FOLDER:
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1555 file_util_dialog_init_dest_folder(ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1556 break;
934
6aa60ae6f274 fixed renaming of directories
nadvornik
parents: 932
diff changeset
1557 case UTILITY_TYPE_RENAME_FOLDER:
6aa60ae6f274 fixed renaming of directories
nadvornik
parents: 932
diff changeset
1558 ud->phase = UTILITY_PHASE_CANCEL; /* FIXME - not handled for now */
6aa60ae6f274 fixed renaming of directories
nadvornik
parents: 932
diff changeset
1559 file_util_dialog_run(ud);
6aa60ae6f274 fixed renaming of directories
nadvornik
parents: 932
diff changeset
1560 return;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1561 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1562 ud->phase = UTILITY_PHASE_ENTERING;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1563 break;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1564 case UTILITY_PHASE_ENTERING:
914
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
1565 file_util_check_ci(ud);
9427c91951e8 basic infrastructure for early error and dangerous operations checking
nadvornik
parents: 908
diff changeset
1566 break;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1567
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1568 ud->phase = UTILITY_PHASE_CHECKED;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1569 case UTILITY_PHASE_CHECKED:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1570 file_util_perform_ci(ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1571 break;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1572 case UTILITY_PHASE_CANCEL:
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1573 case UTILITY_PHASE_DONE:
1211
e2bbe90b0dcd most of the metadata options now works
nadvornik
parents: 1205
diff changeset
1574
e2bbe90b0dcd most of the metadata options now works
nadvornik
parents: 1205
diff changeset
1575 /* FIXME: put it here for now */
e2bbe90b0dcd most of the metadata options now works
nadvornik
parents: 1205
diff changeset
1576 if (ud->type == UTILITY_TYPE_WRITE_METADATA)
e2bbe90b0dcd most of the metadata options now works
nadvornik
parents: 1205
diff changeset
1577 {
e2bbe90b0dcd most of the metadata options now works
nadvornik
parents: 1205
diff changeset
1578 metadata_write_queue_remove_list(ud->flist);
e2bbe90b0dcd most of the metadata options now works
nadvornik
parents: 1205
diff changeset
1579 }
1231
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
1580
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
1581 if (ud->done_func)
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
1582 ud->done_func((ud->phase == UTILITY_PHASE_DONE), ud->dest_path, ud->done_data);
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
1583
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1584 if (ud->with_sidecars)
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1585 file_data_sc_free_ci_list(ud->flist);
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1586 else
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1587 file_data_free_ci_list(ud->flist);
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1588
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1589 /* directory content is always handled including sidecars */
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1590 file_data_sc_free_ci_list(ud->content_list);
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1591
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1592 if (ud->dir_fd) file_data_free_ci(ud->dir_fd);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1593 file_util_data_free(ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1594 break;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1595 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1596 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1597
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1598
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1599
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1600
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1601 static void file_util_warn_op_in_progress(const gchar *title)
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1602 {
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1603 file_util_warning_dialog(title, _("Another operation in progress.\n"), GTK_STOCK_DIALOG_ERROR, NULL);
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1604 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1605
849
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1606 static void file_util_disable_grouping_sc_list(GList *list)
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1607 {
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1608 GList *work = list;
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1609
855
0c3f6ef17d18 Tidy up.
zas_
parents: 849
diff changeset
1610 while (work)
849
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1611 {
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1612 FileData *fd = work->data;
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1613 work = work->next;
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1614
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1615 if (fd->parent) file_data_disable_grouping(fd, TRUE);
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1616 }
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1617
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1618 }
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1619
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1620 static void file_util_delete_full(FileData *source_fd, GList *source_list, GtkWidget *parent, UtilityPhase phase)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1621 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1622 UtilityData *ud;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1623 GList *flist = filelist_copy(source_list);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1624
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1625 if (source_fd)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1626 flist = g_list_append(flist, file_data_ref(source_fd));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1627
947
368643594bc8 abort file operations when the file list is empty
nadvornik
parents: 946
diff changeset
1628 if (!flist) return;
368643594bc8 abort file operations when the file list is empty
nadvornik
parents: 946
diff changeset
1629
849
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1630 file_util_disable_grouping_sc_list(flist);
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1631
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1632 if (!file_data_sc_add_ci_delete_list(flist))
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1633 {
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1634 file_util_warn_op_in_progress(_("File deletion failed"));
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1635 filelist_free(flist);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1636 return;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1637 }
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1638
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1639 ud = file_util_data_new(UTILITY_TYPE_DELETE);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1640
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1641 ud->phase = phase;
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1642
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1643 ud->with_sidecars = TRUE;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
1644
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1645 ud->dir_fd = NULL;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1646 ud->flist = flist;
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1647 ud->content_list = NULL;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1648 ud->parent = parent;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1649
1532
fffb62c7ba1e Add pgettext for some ambiguous strings
mow
parents: 1523
diff changeset
1650 ud->messages.title = pgettext("physical","Delete");
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1651 ud->messages.question = _("Delete files?");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1652 ud->messages.desc_flist = _("This will delete the following files");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1653 ud->messages.desc_source_fd = "";
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1654 ud->messages.fail = _("File deletion failed");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1655
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1656 file_util_dialog_run(ud);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1657 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1658
1231
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
1659 static void file_util_write_metadata_full(FileData *source_fd, GList *source_list, GtkWidget *parent, UtilityPhase phase, FileUtilDoneFunc done_func, gpointer done_data)
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1660 {
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1661 UtilityData *ud;
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1662 GList *flist = filelist_copy(source_list);
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1663
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1664 if (source_fd)
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1665 flist = g_list_append(flist, file_data_ref(source_fd));
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1666
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1667 if (!flist) return;
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1668
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1669 if (!file_data_add_ci_write_metadata_list(flist))
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1670 {
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1671 file_util_warn_op_in_progress(_("Can't write metadata"));
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1672 filelist_free(flist);
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1673 return;
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1674 }
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1675
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1676 ud = file_util_data_new(UTILITY_TYPE_WRITE_METADATA);
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1677
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1678 ud->phase = phase;
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1679
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1680 ud->with_sidecars = FALSE; /* operate on individual files, not groups */
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1681
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1682 ud->dir_fd = NULL;
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1683 ud->flist = flist;
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1684 ud->content_list = NULL;
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1685 ud->parent = parent;
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1686
1231
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
1687 ud->done_func = done_func;
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
1688 ud->done_data = done_data;
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
1689
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1690 ud->messages.title = _("Write metadata");
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1691 ud->messages.question = _("Write metadata?");
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1692 ud->messages.desc_flist = _("This will write the changed metadata into the following files");
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1693 ud->messages.desc_source_fd = "";
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1694 ud->messages.fail = _("Metadata writting failed");
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1695
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1696 file_util_dialog_run(ud);
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1697 }
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1698
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1699
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1700 static void file_util_move_full(FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1701 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1702 UtilityData *ud;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1703 GList *flist = filelist_copy(source_list);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1704
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1705 if (source_fd)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1706 flist = g_list_append(flist, file_data_ref(source_fd));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1707
947
368643594bc8 abort file operations when the file list is empty
nadvornik
parents: 946
diff changeset
1708 if (!flist) return;
368643594bc8 abort file operations when the file list is empty
nadvornik
parents: 946
diff changeset
1709
849
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1710 file_util_disable_grouping_sc_list(flist);
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1711
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1712 if (!file_data_sc_add_ci_move_list(flist, dest_path))
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1713 {
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1714 file_util_warn_op_in_progress(_("Move failed"));
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1715 filelist_free(flist);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1716 return;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1717 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1718
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1719 ud = file_util_data_new(UTILITY_TYPE_MOVE);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1720
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1721 ud->phase = phase;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1722
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1723 ud->with_sidecars = TRUE;
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1724
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1725 ud->dir_fd = NULL;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1726 ud->flist = flist;
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1727 ud->content_list = NULL;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1728 ud->parent = parent;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1729
900
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1730 if (dest_path) ud->dest_path = g_strdup(dest_path);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1731
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1732 ud->messages.title = _("Move");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1733 ud->messages.question = _("Move files?");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1734 ud->messages.desc_flist = _("This will move the following files");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1735 ud->messages.desc_source_fd = "";
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1736 ud->messages.fail = _("Move failed");
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
1737
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1738 file_util_dialog_run(ud);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1739 }
1452
67b40740122e gint -> gboolean where applicable.
zas_
parents: 1405
diff changeset
1740
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1741 static void file_util_copy_full(FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1742 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1743 UtilityData *ud;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1744 GList *flist = filelist_copy(source_list);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1745
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1746 if (source_fd)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1747 flist = g_list_append(flist, file_data_ref(source_fd));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1748
947
368643594bc8 abort file operations when the file list is empty
nadvornik
parents: 946
diff changeset
1749 if (!flist) return;
368643594bc8 abort file operations when the file list is empty
nadvornik
parents: 946
diff changeset
1750
849
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1751 file_util_disable_grouping_sc_list(flist);
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1752
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1753 if (!file_data_sc_add_ci_copy_list(flist, dest_path))
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1754 {
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1755 file_util_warn_op_in_progress(_("Copy failed"));
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1756 filelist_free(flist);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1757 return;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1758 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1759
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1760 ud = file_util_data_new(UTILITY_TYPE_COPY);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1761
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1762 ud->phase = phase;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1763
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1764 ud->with_sidecars = TRUE;
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1765
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1766 ud->dir_fd = NULL;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1767 ud->flist = flist;
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1768 ud->content_list = NULL;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1769 ud->parent = parent;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1770
900
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1771 if (dest_path) ud->dest_path = g_strdup(dest_path);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1772
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1773 ud->messages.title = _("Copy");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1774 ud->messages.question = _("Copy files?");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1775 ud->messages.desc_flist = _("This will copy the following files");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1776 ud->messages.desc_source_fd = "";
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1777 ud->messages.fail = _("Copy failed");
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1778
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1779 file_util_dialog_run(ud);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1780 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1781
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1782 static void file_util_rename_full(FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1783 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1784 UtilityData *ud;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1785 GList *flist = filelist_copy(source_list);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1786
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1787 if (source_fd)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1788 flist = g_list_append(flist, file_data_ref(source_fd));
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
1789
947
368643594bc8 abort file operations when the file list is empty
nadvornik
parents: 946
diff changeset
1790 if (!flist) return;
368643594bc8 abort file operations when the file list is empty
nadvornik
parents: 946
diff changeset
1791
849
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1792 file_util_disable_grouping_sc_list(flist);
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1793
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1794 if (!file_data_sc_add_ci_rename_list(flist, dest_path))
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1795 {
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1796 file_util_warn_op_in_progress(_("Rename failed"));
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1797 filelist_free(flist);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1798 return;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1799 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1800
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1801 ud = file_util_data_new(UTILITY_TYPE_RENAME);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
1802
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1803 ud->phase = phase;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1804
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1805 ud->with_sidecars = TRUE;
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1806
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1807 ud->dir_fd = NULL;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1808 ud->flist = flist;
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1809 ud->content_list = NULL;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1810 ud->parent = parent;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1811
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1812 ud->messages.title = _("Rename");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1813 ud->messages.question = _("Rename files?");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1814 ud->messages.desc_flist = _("This will rename the following files");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1815 ud->messages.desc_source_fd = "";
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1816 ud->messages.fail = _("Rename failed");
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
1817
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1818 file_util_dialog_run(ud);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1819 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1820
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
1821 static void file_util_start_editor_full(const gchar *key, FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase)
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1822 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1823 UtilityData *ud;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1824 GList *flist = filelist_copy(source_list);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1825
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1826 if (source_fd)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1827 flist = g_list_append(flist, file_data_ref(source_fd));
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1828
947
368643594bc8 abort file operations when the file list is empty
nadvornik
parents: 946
diff changeset
1829 if (!flist) return;
368643594bc8 abort file operations when the file list is empty
nadvornik
parents: 946
diff changeset
1830
849
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1831 file_util_disable_grouping_sc_list(flist);
db68d673448f added possibility to disable grouping of selected files
nadvornik
parents: 800
diff changeset
1832
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1833 if (!file_data_sc_add_ci_unspecified_list(flist, dest_path))
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1834 {
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
1835 file_util_warn_op_in_progress(_("Can't run external editor"));
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1836 filelist_free(flist);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1837 return;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1838 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
1839
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
1840 if (editor_is_filter(key))
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1841 ud = file_util_data_new(UTILITY_TYPE_FILTER);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1842 else
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1843 ud = file_util_data_new(UTILITY_TYPE_EDITOR);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1844
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1845
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1846 /* ask for destination if we don't have it */
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1847 if (ud->type == UTILITY_TYPE_FILTER && dest_path == NULL) phase = UTILITY_PHASE_START;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1848
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1849 ud->phase = phase;
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1850
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
1851 ud->with_sidecars = TRUE;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1852
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
1853 ud->external_command = g_strdup(key);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1854
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1855 ud->dir_fd = NULL;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1856 ud->flist = flist;
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1857 ud->content_list = NULL;
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1858 ud->parent = parent;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1859
900
dc13766d1eeb fixed file copy/move dialog
nadvornik
parents: 897
diff changeset
1860 if (dest_path) ud->dest_path = g_strdup(dest_path);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1861
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1862 ud->messages.title = _("Editor");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1863 ud->messages.question = _("Run editor?");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1864 ud->messages.desc_flist = _("This will copy the following files");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1865 ud->messages.desc_source_fd = "";
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1866 ud->messages.fail = _("External command failed");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1867
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
1868 file_util_dialog_run(ud);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1869 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1870
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1871 static GList *file_util_delete_dir_remaining_folders(GList *dlist)
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1872 {
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1873 GList *rlist = NULL;
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1874
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1875 while (dlist)
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1876 {
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1877 FileData *fd;
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1878
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1879 fd = dlist->data;
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1880 dlist = dlist->next;
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1881
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1882 if (!fd->name ||
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1883 (strcmp(fd->name, THUMB_FOLDER_GLOBAL) != 0 &&
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1884 strcmp(fd->name, THUMB_FOLDER_LOCAL) != 0 &&
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1885 strcmp(fd->name, GQ_CACHE_LOCAL_METADATA) != 0) )
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1886 {
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1887 rlist = g_list_prepend(rlist, fd);
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1888 }
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1889 }
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1890
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1891 return g_list_reverse(rlist);
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
1892 }
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1893
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1894 static gboolean file_util_delete_dir_empty_path(UtilityData *ud, FileData *fd, gint level)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1895 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1896 GList *dlist;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1897 GList *flist;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1898 GList *work;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1899
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1900 gboolean ok = TRUE;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1901
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1902 DEBUG_1("deltree into: %s", fd->path);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1903
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1904 level++;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1905 if (level > UTILITY_DELETE_MAX_DEPTH)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1906 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1907 log_printf("folder recursion depth past %d, giving up\n", UTILITY_DELETE_MAX_DEPTH);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1908 // ud->fail_fd = fd
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1909 return 0;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1910 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1911
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1912 if (!filelist_read_lstat(fd, &flist, &dlist))
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1913 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1914 // ud->fail_fd = fd
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1915 return 0;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1916 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1917
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1918 if (ok)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1919 {
921
b416159a5820 Tidy up.
zas_
parents: 914
diff changeset
1920 ok = file_data_sc_add_ci_delete(fd);
b416159a5820 Tidy up.
zas_
parents: 914
diff changeset
1921 if (ok)
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1922 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1923 ud->content_list = g_list_prepend(ud->content_list, fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1924 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1925 // ud->fail_fd = fd
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1926 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1927
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1928 work = dlist;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1929 while (work && ok)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1930 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1931 FileData *lfd;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1932
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1933 lfd = work->data;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1934 work = work->next;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1935
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1936 ok = file_util_delete_dir_empty_path(ud, lfd, level);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1937 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1938
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1939 work = flist;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1940 while (work && ok)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1941 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1942 FileData *lfd;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1943
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1944 lfd = work->data;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1945 work = work->next;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1946
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1947 DEBUG_1("deltree child: %s", lfd->path);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1948
921
b416159a5820 Tidy up.
zas_
parents: 914
diff changeset
1949 ok = file_data_sc_add_ci_delete(lfd);
b416159a5820 Tidy up.
zas_
parents: 914
diff changeset
1950 if (ok)
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1951 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1952 ud->content_list = g_list_prepend(ud->content_list, lfd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1953 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1954 // ud->fail_fd = fd
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1955 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1956
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1957 filelist_free(dlist);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1958 filelist_free(flist);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1959
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1960
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1961 DEBUG_1("deltree done: %s", fd->path);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1962
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1963 return ok;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1964 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1965
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1966 static gboolean file_util_delete_dir_prepare(UtilityData *ud, GList *flist, GList *dlist)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1967 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1968 gboolean ok = TRUE;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1969 GList *work;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1970
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1971
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1972 work = dlist;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1973 while (work && ok)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1974 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1975 FileData *fd;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1976
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1977 fd = work->data;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1978 work = work->next;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1979
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1980 ok = file_util_delete_dir_empty_path(ud, fd, 0);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1981 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1982
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1983 work = flist;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1984 if (ok && file_data_sc_add_ci_delete_list(flist))
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1985 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1986 ud->content_list = g_list_concat(filelist_copy(flist), ud->content_list);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1987 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1988 else
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1989 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1990 ok = FALSE;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1991 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1992
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1993 if (ok)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1994 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1995 ok = file_data_sc_add_ci_delete(ud->dir_fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1996 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1997
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1998 if (!ok)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
1999 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2000 work = ud->content_list;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2001 while (work)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2002 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2003 FileData *fd;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2004
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2005 fd = work->data;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2006 work = work->next;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2007 file_data_sc_free_ci(fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2008 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2009 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2010
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2011 return ok;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2012 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2013
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2014 static void file_util_delete_dir_full(FileData *fd, GtkWidget *parent, UtilityPhase phase)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2015 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2016 GList *dlist;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2017 GList *flist;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2018 GList *rlist;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2019
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2020 if (!isdir(fd->path)) return;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2021
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2022 if (islink(fd->path))
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2023 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2024 UtilityData *ud;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2025 ud = file_util_data_new(UTILITY_TYPE_DELETE_LINK);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2026
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2027 ud->phase = phase;
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
2028 ud->with_sidecars = TRUE;
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2029 ud->dir_fd = file_data_ref(fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2030 ud->content_list = NULL;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2031 ud->flist = NULL;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2032
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2033 ud->parent = parent;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2034
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2035 ud->messages.title = _("Delete folder");
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2036 ud->messages.question = _("Delete symbolic link?");
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2037 ud->messages.desc_flist = "";
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2038 ud->messages.desc_source_fd = _("This will delete the symbolic link.\n"
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 974
diff changeset
2039 "The folder this link points to will not be deleted.");
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2040 ud->messages.fail = _("Link deletion failed");
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2041
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2042 file_util_dialog_run(ud);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2043 return;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2044 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2045
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2046 if (!access_file(fd->path, W_OK | X_OK))
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2047 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2048 gchar *text;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2049
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2050 text = g_strdup_printf(_("Unable to remove folder %s\n"
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2051 "Permissions do not allow writing to the folder."), fd->path);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2052 file_util_warning_dialog(_("Delete failed"), text, GTK_STOCK_DIALOG_ERROR, parent);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2053 g_free(text);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2054
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2055 return;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2056 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2057
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2058 if (!filelist_read_lstat(fd, &flist, &dlist))
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2059 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2060 gchar *text;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2061
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2062 text = g_strdup_printf(_("Unable to list contents of folder %s"), fd->path);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2063 file_util_warning_dialog(_("Delete failed"), text, GTK_STOCK_DIALOG_ERROR, parent);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2064 g_free(text);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2065
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2066 return;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2067 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2068
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2069 rlist = file_util_delete_dir_remaining_folders(dlist);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2070 if (rlist)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2071 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2072 GenericDialog *gd;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2073 GtkWidget *box;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2074 gchar *text;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2075
1174
0bea79d87065 Drop useless wmclass stuff. Gtk will take care of it and as said in the documentation using gtk_window_set_wmclass() is sort of pointless.
zas_
parents: 1055
diff changeset
2076 gd = file_util_gen_dlg(_("Folder contains subfolders"), "dlg_warning",
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2077 parent, TRUE, NULL, NULL);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2078 generic_dialog_add_button(gd, GTK_STOCK_CLOSE, NULL, NULL, TRUE);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2079
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2080 text = g_strdup_printf(_("Unable to delete the folder:\n\n%s\n\n"
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2081 "This folder contains subfolders which must be moved before it can be deleted."),
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2082 fd->path);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2083 box = generic_dialog_add_message(gd, GTK_STOCK_DIALOG_WARNING,
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2084 _("Folder contains subfolders"),
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2085 text);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2086 g_free(text);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2087
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2088 box = pref_group_new(box, TRUE, _("Subfolders:"), GTK_ORIENTATION_VERTICAL);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2089
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2090 rlist = filelist_sort_path(rlist);
1211
e2bbe90b0dcd most of the metadata options now works
nadvornik
parents: 1205
diff changeset
2091 file_util_dialog_add_list(box, rlist, FALSE, FALSE);
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2092
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2093 gtk_widget_show(gd->dialog);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2094 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2095 else
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2096 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2097 UtilityData *ud;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2098 ud = file_util_data_new(UTILITY_TYPE_DELETE_FOLDER);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2099
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2100 ud->phase = phase;
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
2101 ud->with_sidecars = TRUE;
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2102 ud->dir_fd = file_data_ref(fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2103 ud->content_list = NULL; /* will be filled by file_util_delete_dir_prepare */
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2104 ud->flist = flist = filelist_sort_path(flist);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2105
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2106 ud->parent = parent;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2107
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2108 ud->messages.title = _("Delete folder");
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2109 ud->messages.question = _("Delete folder?");
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2110 ud->messages.desc_flist = _("The folder contains these files:");
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2111 ud->messages.desc_source_fd = _("This will delete the folder.\n"
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 974
diff changeset
2112 "The contents of this folder will also be deleted.");
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2113 ud->messages.fail = _("File deletion failed");
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2114
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2115 if (!file_util_delete_dir_prepare(ud, flist, dlist))
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2116 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2117 gchar *text;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2118
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2119 text = g_strdup_printf(_("Unable to list contents of folder %s"), fd->path);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2120 file_util_warning_dialog(_("Delete failed"), text, GTK_STOCK_DIALOG_ERROR, parent);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2121 g_free(text);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2122 file_data_unref(ud->dir_fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2123 file_util_data_free(ud);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2124 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2125 else
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2126 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2127 filelist_free(dlist);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2128 file_util_dialog_run(ud);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2129 return;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2130 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2131 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2132
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2133 g_list_free(rlist);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2134 filelist_free(dlist);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2135 filelist_free(flist);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2136 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2137
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2138 static gboolean file_util_rename_dir_scan(UtilityData *ud, FileData *fd)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2139 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2140 GList *dlist;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2141 GList *flist;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2142 GList *work;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2143
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2144 gboolean ok = TRUE;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2145
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2146 if (!filelist_read_lstat(fd, &flist, &dlist))
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2147 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2148 // ud->fail_fd = fd
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2149 return 0;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2150 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2151
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2152 ud->content_list = g_list_concat(flist, ud->content_list);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2153
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2154 work = dlist;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2155 while (work && ok)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2156 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2157 FileData *lfd;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2158
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2159 lfd = work->data;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2160 work = work->next;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2161
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2162 ud->content_list = g_list_prepend(ud->content_list, file_data_ref(lfd));
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2163 ok = file_util_rename_dir_scan(ud, lfd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2164 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2165
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2166 filelist_free(dlist);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2167
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2168 return ok;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2169 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2170
1000
4fe8f9656107 For the sake of consistency, use glib basic types everywhere.
zas_
parents: 995
diff changeset
2171 static gboolean file_util_rename_dir_prepare(UtilityData *ud, const gchar *new_path)
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2172 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2173 gboolean ok;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2174 GList *work;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2175 gint orig_len = strlen(ud->dir_fd->path);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2176
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2177 ok = file_util_rename_dir_scan(ud, ud->dir_fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2178
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2179 work = ud->content_list;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2180
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2181 while (ok && work)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2182 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2183 gchar *np;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2184 FileData *fd;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2185
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2186 fd = work->data;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2187 work = work->next;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2188
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2189 g_assert(strncmp(fd->path, ud->dir_fd->path, orig_len) == 0);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2190
921
b416159a5820 Tidy up.
zas_
parents: 914
diff changeset
2191 np = g_strconcat(new_path, fd->path + orig_len, NULL);
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2192
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2193 ok = file_data_sc_add_ci_rename(fd, np);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2194
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2195 DEBUG_1("Dir rename: %s -> %s", fd->path, np);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2196 g_free(np);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2197 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2198
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2199 if (ok)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2200 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2201 ok = file_data_sc_add_ci_rename(ud->dir_fd, new_path);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2202 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2203
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2204 if (!ok)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2205 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2206 work = ud->content_list;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2207 while (work)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2208 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2209 FileData *fd;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2210
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2211 fd = work->data;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2212 work = work->next;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2213 file_data_sc_free_ci(fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2214 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2215 }
921
b416159a5820 Tidy up.
zas_
parents: 914
diff changeset
2216
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2217 return ok;
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 974
diff changeset
2218 }
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2219
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2220
1000
4fe8f9656107 For the sake of consistency, use glib basic types everywhere.
zas_
parents: 995
diff changeset
2221 static void file_util_rename_dir_full(FileData *fd, const gchar *new_path, GtkWidget *parent, UtilityPhase phase)
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2222 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2223 UtilityData *ud;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2224
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2225 ud = file_util_data_new(UTILITY_TYPE_RENAME_FOLDER);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2226
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2227 ud->phase = phase;
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
2228 ud->with_sidecars = TRUE; /* does not matter, the directory should not have sidecars
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
2229 and the content must be handled including sidecars */
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2230
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2231 ud->dir_fd = file_data_ref(fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2232 ud->flist = NULL;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2233 ud->content_list = NULL;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2234 ud->parent = parent;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2235
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2236 ud->messages.title = _("Rename");
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2237 ud->messages.question = _("Rename folder?");
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2238 ud->messages.desc_flist = _("The folder contains the following files");
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2239 ud->messages.desc_source_fd = "";
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2240 ud->messages.fail = _("Rename failed");
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2241
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2242 if (!file_util_rename_dir_prepare(ud, new_path))
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2243 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2244 file_util_warn_op_in_progress(ud->messages.fail);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2245 file_util_data_free(ud);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2246 return;
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2247 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2248
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2249 // ud->flist = filelist_recursive(fd);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2250
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2251 file_util_dialog_run(ud);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2252 }
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2253
1231
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
2254 static void file_util_create_dir_full(FileData *fd, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase, FileUtilDoneFunc done_func, gpointer done_data)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
2255 {
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
2256 UtilityData *ud;
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2257
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2258 ud = file_util_data_new(UTILITY_TYPE_CREATE_FOLDER);
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2259
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2260 ud->phase = phase;
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
2261 ud->with_sidecars = TRUE;
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2262
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2263 ud->dir_fd = NULL;
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2264 ud->flist = NULL;
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2265 ud->content_list = NULL;
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2266 ud->parent = parent;
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2267
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 974
diff changeset
2268 if (dest_path)
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2269 {
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2270 ud->dest_path = g_strdup(dest_path);
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2271 }
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2272 else
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2273 {
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2274 gchar *buf = g_build_filename(fd->path, _("New folder"), NULL);
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2275 ud->dest_path = unique_filename(buf, NULL, " ", FALSE);
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2276 g_free(buf);
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2277 }
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2278
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2279 ud->dir_fd = file_data_new_simple(ud->dest_path);
1231
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
2280
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
2281 ud->done_func = done_func;
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
2282 ud->done_data = done_data;
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2283
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2284 ud->messages.title = _("Create Folder");
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2285 ud->messages.question = _("Create folder?");
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2286 ud->messages.desc_flist = "";
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2287 ud->messages.desc_source_fd = "";
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2288 ud->messages.fail = _("Can't create folder");
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2289
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2290 file_util_dialog_run(ud);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
2291 }
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
2292
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
2293
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
2294 /* full-featured entry points
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2295 */
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
2296
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2297 void file_util_delete(FileData *source_fd, GList *source_list, GtkWidget *parent)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2298 {
1054
9157291b79a4 fixed confirm_delete option
nadvornik
parents: 1000
diff changeset
2299 file_util_delete_full(source_fd, source_list, parent, options->file_ops.confirm_delete ? UTILITY_PHASE_START : UTILITY_PHASE_ENTERING);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2300 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
2301
1231
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
2302 void file_util_write_metadata(FileData *source_fd, GList *source_list, GtkWidget *parent, FileUtilDoneFunc done_func, gpointer done_data)
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
2303 {
1211
e2bbe90b0dcd most of the metadata options now works
nadvornik
parents: 1205
diff changeset
2304 file_util_write_metadata_full(source_fd, source_list, parent,
1231
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
2305 (options->metadata.save_in_image_file && options->metadata.confirm_write) ? UTILITY_PHASE_START : UTILITY_PHASE_ENTERING,
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
2306 done_func, done_data);
1205
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
2307 }
3ff2aa99108b use the workflow in utilops.c for metadata approving and writting
nadvornik
parents: 1175
diff changeset
2308
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2309 void file_util_copy(FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2310 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2311 file_util_copy_full(source_fd, source_list, dest_path, parent, UTILITY_PHASE_START);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2312 }
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
2313
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2314 void file_util_move(FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2315 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2316 file_util_move_full(source_fd, source_list, dest_path, parent, UTILITY_PHASE_START);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2317 }
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
2318
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2319 void file_util_rename(FileData *source_fd, GList *source_list, GtkWidget *parent)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2320 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2321 file_util_rename_full(source_fd, source_list, NULL, parent, UTILITY_PHASE_START);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
2322 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
2323
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2324 /* these avoid the location entry dialog unless there is an error, list must be files only and
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2325 * dest_path must be a valid directory path
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
2326 */
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2327 void file_util_move_simple(GList *list, const gchar *dest_path, GtkWidget *parent)
44
458e396d3f35 Wed May 18 19:36:49 2005 John Ellis <johne@verizon.net>
gqview
parents: 42
diff changeset
2328 {
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2329 file_util_move_full(NULL, list, dest_path, parent, UTILITY_PHASE_ENTERING);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2330 }
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
2331
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2332 void file_util_copy_simple(GList *list, const gchar *dest_path, GtkWidget *parent)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2333 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2334 file_util_copy_full(NULL, list, dest_path, parent, UTILITY_PHASE_ENTERING);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2335 }
757
eb2e2dac712d Tidy up: indentation fixes, typo fixes, ...
zas_
parents: 756
diff changeset
2336
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2337 void file_util_rename_simple(FileData *fd, const gchar *dest_path, GtkWidget *parent)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2338 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2339 file_util_rename_full(fd, NULL, dest_path, parent, UTILITY_PHASE_ENTERING);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2340 }
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 136
diff changeset
2341
44
458e396d3f35 Wed May 18 19:36:49 2005 John Ellis <johne@verizon.net>
gqview
parents: 42
diff changeset
2342
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
2343 void file_util_start_editor_from_file(const gchar *key, FileData *fd, GtkWidget *parent)
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2344 {
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
2345 file_util_start_editor_full(key, fd, NULL, NULL, parent, UTILITY_PHASE_ENTERING);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2346 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2347
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
2348 void file_util_start_editor_from_filelist(const gchar *key, GList *list, GtkWidget *parent)
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2349 {
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
2350 file_util_start_editor_full(key, NULL, list, NULL, parent, UTILITY_PHASE_ENTERING);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2351 }
44
458e396d3f35 Wed May 18 19:36:49 2005 John Ellis <johne@verizon.net>
gqview
parents: 42
diff changeset
2352
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
2353 void file_util_start_filter_from_file(const gchar *key, FileData *fd, const gchar *dest_path, GtkWidget *parent)
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2354 {
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
2355 file_util_start_editor_full(key, fd, NULL, dest_path, parent, UTILITY_PHASE_ENTERING);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2356 }
44
458e396d3f35 Wed May 18 19:36:49 2005 John Ellis <johne@verizon.net>
gqview
parents: 42
diff changeset
2357
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
2358 void file_util_start_filter_from_filelist(const gchar *key, GList *list, const gchar *dest_path, GtkWidget *parent)
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2359 {
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1231
diff changeset
2360 file_util_start_editor_full(key, NULL, list, dest_path, parent, UTILITY_PHASE_ENTERING);
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2361 }
44
458e396d3f35 Wed May 18 19:36:49 2005 John Ellis <johne@verizon.net>
gqview
parents: 42
diff changeset
2362
896
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2363 void file_util_delete_dir(FileData *fd, GtkWidget *parent)
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2364 {
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2365 file_util_delete_dir_full(fd, parent, UTILITY_PHASE_START);
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2366 }
cf21dc928122 implemented directory rename and delete operations
nadvornik
parents: 855
diff changeset
2367
1231
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
2368 void file_util_create_dir(FileData *dir_fd, GtkWidget *parent, FileUtilDoneFunc done_func, gpointer done_data)
112
b15d4c18168f Fri Nov 17 19:06:19 2006 John Ellis <johne@verizon.net>
gqview
parents: 80
diff changeset
2369 {
1231
ca8ccf0c3e81 added done callback to utilops
nadvornik
parents: 1224
diff changeset
2370 file_util_create_dir_full(dir_fd, NULL, parent, UTILITY_PHASE_ENTERING, done_func, done_data);
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2371 }
112
b15d4c18168f Fri Nov 17 19:06:19 2006 John Ellis <johne@verizon.net>
gqview
parents: 80
diff changeset
2372
908
5a737cc935cc file_util_rename_dir should not return anything
nadvornik
parents: 907
diff changeset
2373 void file_util_rename_dir(FileData *source_fd, const gchar *new_path, GtkWidget *parent)
901
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2374 {
ae75cd2b4d76 implemented "create directory" command
nadvornik
parents: 900
diff changeset
2375 file_util_rename_dir_full(source_fd, new_path, parent, UTILITY_PHASE_ENTERING);
112
b15d4c18168f Fri Nov 17 19:06:19 2006 John Ellis <johne@verizon.net>
gqview
parents: 80
diff changeset
2376 }
b15d4c18168f Fri Nov 17 19:06:19 2006 John Ellis <johne@verizon.net>
gqview
parents: 80
diff changeset
2377
753
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2378
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2379 void file_util_copy_path_to_clipboard(FileData *fd)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2380 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2381 GtkClipboard *clipboard;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2382
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2383 if (!fd || !*fd->path) return;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2384
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2385 clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2386 gtk_clipboard_set_text(clipboard, g_shell_quote(fd->path), -1);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2387 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2388
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2389 void file_util_copy_path_list_to_clipboard(GList *list)
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2390 {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2391 GtkClipboard *clipboard;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2392 GList *work;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2393 GString *new;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2394
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2395 clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2396
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2397 new = g_string_new("");
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2398 work = list;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2399 while (work) {
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2400 FileData *fd = work->data;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2401 work = work->next;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2402
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2403 if (!fd || !*fd->path) continue;
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2404
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2405 g_string_append(new, g_shell_quote(fd->path));
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2406 if (work) g_string_append_c(new, ' ');
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2407 }
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2408
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2409 gtk_clipboard_set_text(clipboard, new->str, new->len);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2410 g_string_free(new, TRUE);
477f48ba28d8 rewritten utilops.h:
nadvornik
parents: 730
diff changeset
2411 }
1055
1646720364cf Adding a vim modeline to all files - patch by Klaus Ethgen
nadvornik
parents: 1054
diff changeset
2412 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */