Mercurial > geeqie
annotate src/preferences.c @ 1672:994169573393
Complete commit @1747 (intltool usage)
With using intltool the localisation will fail cause of missing
desktop.in file. Also the old desktop files are obsoleted by this
commit.
Also it is not necessary any more to have a './' in front of the files
in POTFILES.in.
author | mow |
---|---|
date | Sat, 27 Jun 2009 22:57:56 +0000 |
parents | c7415c58435b |
children | 1e3bbaa772b9 |
rev | line source |
---|---|
9 | 1 /* |
196 | 2 * Geeqie |
67
f63ecca6c087
Fri Oct 13 05:22:43 2006 John Ellis <johne@verizon.net>
gqview
parents:
26
diff
changeset
|
3 * (C) 2006 John Ellis |
1284 | 4 * Copyright (C) 2008 - 2009 The Geeqie Team |
9 | 5 * |
6 * Author: John Ellis | |
7 * | |
8 * This software is released under the GNU General Public License (GNU GPL). | |
9 * Please read the included file COPYING for more information. | |
10 * This software comes with no warranty of any kind, use at your own risk! | |
11 */ | |
12 | |
13 | |
281 | 14 #include "main.h" |
9 | 15 #include "preferences.h" |
16 | |
648
e34c1002e553
Move some functions from main.[ch] to new window.[ch].
zas_
parents:
630
diff
changeset
|
17 #include "bar_exif.h" |
1599 | 18 #include "cache.h" |
9 | 19 #include "cache_maint.h" |
20 #include "editors.h" | |
648
e34c1002e553
Move some functions from main.[ch] to new window.[ch].
zas_
parents:
630
diff
changeset
|
21 #include "exif.h" |
586 | 22 #include "filedata.h" |
23 #include "filefilter.h" | |
9 | 24 #include "fullscreen.h" |
26
acd9885ebd78
Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
gqview
parents:
15
diff
changeset
|
25 #include "image.h" |
469
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
26 #include "image-overlay.h" |
426
9fe0ca1b5263
show the AdobeRGB profile in the menu, indicate input profile from image
nadvornik
parents:
413
diff
changeset
|
27 #include "color-man.h" |
9 | 28 #include "img-view.h" |
29 #include "layout_config.h" | |
30 #include "layout_util.h" | |
31 #include "pixbuf_util.h" | |
32 #include "slideshow.h" | |
597 | 33 #include "trash.h" |
9 | 34 #include "utilops.h" |
35 #include "ui_fileops.h" | |
36 #include "ui_misc.h" | |
37 #include "ui_tabcomp.h" | |
38 #include "ui_utildlg.h" | |
648
e34c1002e553
Move some functions from main.[ch] to new window.[ch].
zas_
parents:
630
diff
changeset
|
39 #include "window.h" |
9 | 40 |
41 #include <math.h> | |
42 | |
43 | |
44 #define EDITOR_NAME_MAX_LENGTH 32 | |
45 #define EDITOR_COMMAND_MAX_LENGTH 1024 | |
46 | |
47 | |
48 typedef struct _ThumbSize ThumbSize; | |
49 struct _ThumbSize | |
50 { | |
51 gint w; | |
52 gint h; | |
53 }; | |
54 | |
55 static ThumbSize thumb_size_list[] = | |
56 { | |
57 { 24, 24 }, | |
58 { 32, 32 }, | |
59 { 48, 48 }, | |
60 { 64, 64 }, | |
61 { 96, 72 }, | |
62 { 96, 96 }, | |
63 { 128, 96 }, | |
64 { 128, 128 }, | |
65 { 160, 120 }, | |
66 { 160, 160 }, | |
67 { 192, 144 }, | |
68 { 192, 192 }, | |
69 { 256, 192 }, | |
70 { 256, 256 } | |
71 }; | |
72 | |
73 enum { | |
74 FE_ENABLE, | |
75 FE_EXTENSION, | |
1216 | 76 FE_DESCRIPTION, |
1239
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
77 FE_CLASS, |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
78 FE_WRITABLE, |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
79 FE_ALLOW_SIDECAR |
9 | 80 }; |
81 | |
1601 | 82 enum { |
83 AE_ACTION, | |
84 AE_KEY, | |
85 AE_TOOLTIP, | |
86 AE_ACCEL | |
87 }; | |
1216 | 88 |
89 static gchar *format_class_list[] = { | |
90 N_("Unknown"), | |
91 N_("Image"), | |
92 N_("RAW Image"), | |
93 N_("Metadata") | |
94 }; | |
95 | |
9 | 96 /* config memory values */ |
321 | 97 static ConfOptions *c_options = NULL; |
9 | 98 |
99 | |
227
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
100 #ifdef DEBUG |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
101 static gint debug_c; |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
102 #endif |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
103 |
9 | 104 static GtkWidget *configwindow = NULL; |
105 static GtkListStore *filter_store = NULL; | |
1601 | 106 static GtkTreeStore *accel_store = NULL; |
9 | 107 |
108 static GtkWidget *safe_delete_path_entry; | |
109 | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
110 static GtkWidget *color_profile_input_file_entry[COLOR_PROFILE_INPUTS]; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
111 static GtkWidget *color_profile_input_name_entry[COLOR_PROFILE_INPUTS]; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
112 static GtkWidget *color_profile_screen_file_entry; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
113 |
170
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
114 static GtkWidget *sidecar_ext_entry; |
225
649f7cb544e0
Make the preferences window resizeable, and try to improve
zas_
parents:
224
diff
changeset
|
115 |
649f7cb544e0
Make the preferences window resizeable, and try to improve
zas_
parents:
224
diff
changeset
|
116 |
649f7cb544e0
Make the preferences window resizeable, and try to improve
zas_
parents:
224
diff
changeset
|
117 #define CONFIG_WINDOW_DEF_WIDTH 700 |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
118 #define CONFIG_WINDOW_DEF_HEIGHT 600 |
225
649f7cb544e0
Make the preferences window resizeable, and try to improve
zas_
parents:
224
diff
changeset
|
119 |
9 | 120 /* |
121 *----------------------------------------------------------------------------- | |
122 * option widget callbacks (private) | |
123 *----------------------------------------------------------------------------- | |
442 | 124 */ |
9 | 125 |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
126 static void zoom_mode_cb(GtkWidget *widget, gpointer data) |
9 | 127 { |
128 if (GTK_TOGGLE_BUTTON (widget)->active) | |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
129 c_options->image.zoom_mode = GPOINTER_TO_INT(data); |
9 | 130 } |
131 | |
1038
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
132 static void scroll_reset_cb(GtkWidget *widget, gpointer data) |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
133 { |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
134 if (GTK_TOGGLE_BUTTON (widget)->active) |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
135 c_options->image.scroll_reset_method = GPOINTER_TO_INT(data); |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
136 } |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
137 |
9 | 138 static void zoom_increment_cb(GtkWidget *spin, gpointer data) |
139 { | |
334 | 140 c_options->image.zoom_increment = (gint)(gtk_spin_button_get_value(GTK_SPIN_BUTTON(spin)) * 10.0 + 0.01); |
9 | 141 } |
142 | |
143 static void slideshow_delay_cb(GtkWidget *spin, gpointer data) | |
144 { | |
326 | 145 c_options->slideshow.delay = (gint)(gtk_spin_button_get_value(GTK_SPIN_BUTTON(spin)) * |
1000
4fe8f9656107
For the sake of consistency, use glib basic types everywhere.
zas_
parents:
995
diff
changeset
|
146 (gdouble)SLIDESHOW_SUBSECOND_PRECISION + 0.01); |
9 | 147 } |
148 | |
149 /* | |
150 *----------------------------------------------------------------------------- | |
151 * sync progam to config window routine (private) | |
152 *----------------------------------------------------------------------------- | |
442 | 153 */ |
9 | 154 |
1436
d7a6fb7a90dd
completely separated global and layout window options
nadvornik
parents:
1400
diff
changeset
|
155 void config_entry_to_option(GtkWidget *entry, gchar **option, gchar *(*func)(const gchar *)) |
9 | 156 { |
157 const gchar *buf; | |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
158 |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
159 g_free(*option); |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
160 *option = NULL; |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
161 buf = gtk_entry_get_text(GTK_ENTRY(entry)); |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
162 if (buf && strlen(buf) > 0) |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
163 { |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
164 if (func) |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
165 *option = func(buf); |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
166 else |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
167 *option = g_strdup(buf); |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
168 } |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
169 } |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
170 |
1272 | 171 #if 0 |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
172 static void config_parse_editor_entries(GtkWidget **editor_name_entry, GtkWidget **editor_command_entry) |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
173 { |
9 | 174 gint i; |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
175 const gchar *buf; |
670 | 176 GString *errmsg = g_string_new(""); |
177 | |
517 | 178 for (i = 0; i < GQ_EDITOR_SLOTS; i++) |
9 | 179 { |
768
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
180 gchar *command = NULL; |
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
181 |
283 | 182 if (i < GQ_EDITOR_GENERIC_SLOTS) |
134
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
183 { |
768
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
184 gchar *name = NULL; |
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
185 |
134
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
186 buf = gtk_entry_get_text(GTK_ENTRY(editor_name_entry[i])); |
768
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
187 if (buf && strlen(buf) > 0) name = g_strdup(buf); |
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
188 editor_set_name(i, name); |
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
189 g_free(name); |
134
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
190 } |
9 | 191 |
192 buf = gtk_entry_get_text(GTK_ENTRY(editor_command_entry[i])); | |
670 | 193 if (buf && strlen(buf) > 0) |
194 { | |
195 gint flags = editor_command_parse(buf, NULL, NULL); | |
196 | |
1400
67573155210c
Add helper macros EDITOR_ERRORS() and EDITOR_ERRORS_BUT_SKIPPED() to clean up the code a bit. Minor tidy up.
zas_
parents:
1353
diff
changeset
|
197 if (EDITOR_ERRORS(flags)) |
670 | 198 { |
199 if (errmsg->str[0]) g_string_append(errmsg, "\n\n"); | |
200 g_string_append_printf(errmsg, _("%s\n#%d \"%s\":\n%s"), editor_get_error_str(flags), | |
730 | 201 i+1, options->editor[i].name, buf); |
670 | 202 |
203 } | |
768
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
204 command = g_strdup(buf); |
670 | 205 } |
768
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
206 |
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
207 editor_set_command(i, command); |
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
208 g_free(command); |
9 | 209 } |
670 | 210 |
211 if (errmsg->str[0]) | |
212 { | |
213 file_util_warning_dialog(_("Invalid editor command"), errmsg->str, GTK_STOCK_DIALOG_ERROR, NULL); | |
214 } | |
215 | |
216 g_string_free(errmsg, TRUE); | |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
217 } |
1272 | 218 #endif |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
219 |
1601 | 220 static gboolean accel_apply_cb(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) |
221 { | |
222 gchar *accel_path, *accel; | |
223 | |
224 gtk_tree_model_get(model, iter, AE_ACCEL, &accel_path, AE_KEY, &accel, -1); | |
225 | |
226 if (accel_path && accel_path[0]) | |
227 { | |
228 GtkAccelKey key; | |
229 gtk_accelerator_parse(accel, &key.accel_key, &key.accel_mods); | |
230 gtk_accel_map_change_entry(accel_path, key.accel_key, key.accel_mods, TRUE); | |
231 } | |
232 | |
233 g_free(accel_path); | |
234 g_free(accel); | |
235 | |
236 return FALSE; | |
237 } | |
238 | |
239 | |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
240 static void config_window_apply(void) |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
241 { |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
242 gint i; |
1437 | 243 gboolean refresh = FALSE; |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
244 |
1272 | 245 // config_parse_editor_entries(editor_name_entry, editor_command_entry); |
246 // layout_edit_update_all(); | |
9 | 247 |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
248 config_entry_to_option(safe_delete_path_entry, &options->file_ops.safe_delete_path, remove_trailing_slash); |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
249 |
356 | 250 if (options->file_filter.show_hidden_files != c_options->file_filter.show_hidden_files) refresh = TRUE; |
373
61a3c8b05b24
Add a new option in Preferences > Filtering to allow the
zas_
parents:
356
diff
changeset
|
251 if (options->file_filter.show_dot_directory != c_options->file_filter.show_dot_directory) refresh = TRUE; |
329 | 252 if (options->file_sort.case_sensitive != c_options->file_sort.case_sensitive) refresh = TRUE; |
332 | 253 if (options->file_filter.disable != c_options->file_filter.disable) refresh = TRUE; |
9 | 254 |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
339
diff
changeset
|
255 options->file_ops.confirm_delete = c_options->file_ops.confirm_delete; |
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
339
diff
changeset
|
256 options->file_ops.enable_delete_key = c_options->file_ops.enable_delete_key; |
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
339
diff
changeset
|
257 options->file_ops.safe_delete_enable = c_options->file_ops.safe_delete_enable; |
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
339
diff
changeset
|
258 options->file_ops.safe_delete_folder_maxsize = c_options->file_ops.safe_delete_folder_maxsize; |
1436
d7a6fb7a90dd
completely separated global and layout window options
nadvornik
parents:
1400
diff
changeset
|
259 options->tools_restore_state = c_options->tools_restore_state; |
d7a6fb7a90dd
completely separated global and layout window options
nadvornik
parents:
1400
diff
changeset
|
260 options->save_window_positions = c_options->save_window_positions; |
334 | 261 options->image.zoom_mode = c_options->image.zoom_mode; |
1038
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
262 options->image.scroll_reset_method = c_options->image.scroll_reset_method; |
334 | 263 options->image.zoom_2pass = c_options->image.zoom_2pass; |
264 options->image.fit_window_to_image = c_options->image.fit_window_to_image; | |
265 options->image.limit_window_size = c_options->image.limit_window_size; | |
266 options->image.zoom_to_fit_allow_expand = c_options->image.zoom_to_fit_allow_expand; | |
267 options->image.max_window_size = c_options->image.max_window_size; | |
268 options->image.limit_autofit_size = c_options->image.limit_autofit_size; | |
269 options->image.max_autofit_size = c_options->image.max_autofit_size; | |
321 | 270 options->progressive_key_scrolling = c_options->progressive_key_scrolling; |
1506
d352a44545a6
Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents:
1443
diff
changeset
|
271 if (options->thumbnails.max_width != c_options->thumbnails.max_width |
d352a44545a6
Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents:
1443
diff
changeset
|
272 || options->thumbnails.max_height != c_options->thumbnails.max_height |
d352a44545a6
Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents:
1443
diff
changeset
|
273 || options->thumbnails.quality != c_options->thumbnails.quality) |
d352a44545a6
Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents:
1443
diff
changeset
|
274 { |
d352a44545a6
Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents:
1443
diff
changeset
|
275 thumb_format_changed = TRUE; |
d352a44545a6
Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents:
1443
diff
changeset
|
276 refresh = TRUE; |
d352a44545a6
Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents:
1443
diff
changeset
|
277 options->thumbnails.max_width = c_options->thumbnails.max_width; |
d352a44545a6
Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents:
1443
diff
changeset
|
278 options->thumbnails.max_height = c_options->thumbnails.max_height; |
d352a44545a6
Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents:
1443
diff
changeset
|
279 options->thumbnails.quality = c_options->thumbnails.quality; |
d352a44545a6
Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents:
1443
diff
changeset
|
280 } |
333 | 281 options->thumbnails.enable_caching = c_options->thumbnails.enable_caching; |
282 options->thumbnails.cache_into_dirs = c_options->thumbnails.cache_into_dirs; | |
1060 | 283 options->thumbnails.use_exif = c_options->thumbnails.use_exif; |
14
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
284 #if 0 |
333 | 285 options->thumbnails.use_xvpics = c_options->thumbnails.use_xvpics; |
14
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
286 #endif |
333 | 287 options->thumbnails.spec_standard = c_options->thumbnails.spec_standard; |
1208 | 288 options->metadata.enable_metadata_dirs = c_options->metadata.enable_metadata_dirs; |
356 | 289 options->file_filter.show_hidden_files = c_options->file_filter.show_hidden_files; |
373
61a3c8b05b24
Add a new option in Preferences > Filtering to allow the
zas_
parents:
356
diff
changeset
|
290 options->file_filter.show_dot_directory = c_options->file_filter.show_dot_directory; |
61a3c8b05b24
Add a new option in Preferences > Filtering to allow the
zas_
parents:
356
diff
changeset
|
291 |
329 | 292 options->file_sort.case_sensitive = c_options->file_sort.case_sensitive; |
332 | 293 options->file_filter.disable = c_options->file_filter.disable; |
9 | 294 |
1229
878718372aca
sidecar files grouping was made case-insensitive
nadvornik
parents:
1216
diff
changeset
|
295 config_entry_to_option(sidecar_ext_entry, &options->sidecar.ext, NULL); |
1327 | 296 sidecar_ext_parse(options->sidecar.ext); |
170
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
297 |
326 | 298 options->slideshow.random = c_options->slideshow.random; |
299 options->slideshow.repeat = c_options->slideshow.repeat; | |
300 options->slideshow.delay = c_options->slideshow.delay; | |
9 | 301 |
321 | 302 options->mousewheel_scrolls = c_options->mousewheel_scrolls; |
9 | 303 |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
339
diff
changeset
|
304 options->file_ops.enable_in_place_rename = c_options->file_ops.enable_in_place_rename; |
9 | 305 |
330 | 306 options->collections.rectangular_selection = c_options->collections.rectangular_selection; |
9 | 307 |
334 | 308 options->image.tile_cache_max = c_options->image.tile_cache_max; |
848 | 309 options->image.image_cache_max = c_options->image.image_cache_max; |
442 | 310 |
334 | 311 options->image.zoom_quality = c_options->image.zoom_quality; |
9 | 312 |
334 | 313 options->image.zoom_increment = c_options->image.zoom_increment; |
9 | 314 |
334 | 315 options->image.enable_read_ahead = c_options->image.enable_read_ahead; |
9 | 316 |
1626
1d7941c147be
Add an option to Image preferences to restrict custom border to fullscreen mode only. Bug 2798062.
zas_
parents:
1625
diff
changeset
|
317 |
339
de1c2cd06fce
Rename user_specified_window_background and window_background_color
zas_
parents:
338
diff
changeset
|
318 if (options->image.use_custom_border_color != c_options->image.use_custom_border_color |
1644
b8235f919d6b
the options for custom border color were made independent
nadvornik
parents:
1626
diff
changeset
|
319 || options->image.use_custom_border_color_in_fullscreen != c_options->image.use_custom_border_color_in_fullscreen |
339
de1c2cd06fce
Rename user_specified_window_background and window_background_color
zas_
parents:
338
diff
changeset
|
320 || !gdk_color_equal(&options->image.border_color, &c_options->image.border_color)) |
9 | 321 { |
1644
b8235f919d6b
the options for custom border color were made independent
nadvornik
parents:
1626
diff
changeset
|
322 options->image.use_custom_border_color_in_fullscreen = c_options->image.use_custom_border_color_in_fullscreen; |
339
de1c2cd06fce
Rename user_specified_window_background and window_background_color
zas_
parents:
338
diff
changeset
|
323 options->image.use_custom_border_color = c_options->image.use_custom_border_color; |
de1c2cd06fce
Rename user_specified_window_background and window_background_color
zas_
parents:
338
diff
changeset
|
324 options->image.border_color = c_options->image.border_color; |
9 | 325 layout_colors_update(); |
326 view_window_colors_update(); | |
327 } | |
328 | |
322 | 329 options->fullscreen.screen = c_options->fullscreen.screen; |
330 options->fullscreen.clean_flip = c_options->fullscreen.clean_flip; | |
331 options->fullscreen.disable_saver = c_options->fullscreen.disable_saver; | |
332 options->fullscreen.above = c_options->fullscreen.above; | |
1336 | 333 if (c_options->image_overlay.template_string) |
334 set_image_overlay_template_string(&options->image_overlay.template_string, | |
335 c_options->image_overlay.template_string); | |
733
57f759d012c7
Modify set_default_image_overlay_template_string() to accept the pointer to
zas_
parents:
730
diff
changeset
|
336 |
321 | 337 options->update_on_time_change = c_options->update_on_time_change; |
334 | 338 options->image.exif_rotate_enable = c_options->image.exif_rotate_enable; |
9 | 339 |
342
07490120df2d
Rename dupe_custom_threshold option to duplicates_similarity_threshold.
zas_
parents:
341
diff
changeset
|
340 options->duplicates_similarity_threshold = c_options->duplicates_similarity_threshold; |
9 | 341 |
321 | 342 options->tree_descend_subdirs = c_options->tree_descend_subdirs; |
441
08eb7137cd94
Allow the user to change open_recent_list_maxsize option through
zas_
parents:
426
diff
changeset
|
343 |
08eb7137cd94
Allow the user to change open_recent_list_maxsize option through
zas_
parents:
426
diff
changeset
|
344 options->open_recent_list_maxsize = c_options->open_recent_list_maxsize; |
458
7a69309b91c8
Allow the user to set the drag'n drop icon size through
zas_
parents:
446
diff
changeset
|
345 options->dnd_icon_size = c_options->dnd_icon_size; |
497 | 346 |
1208 | 347 options->metadata.save_in_image_file = c_options->metadata.save_in_image_file; |
1213 | 348 options->metadata.save_legacy_IPTC = c_options->metadata.save_legacy_IPTC; |
349 options->metadata.warn_on_write_problems = c_options->metadata.warn_on_write_problems; | |
350 options->metadata.save_legacy_format = c_options->metadata.save_legacy_format; | |
351 options->metadata.sync_grouped_files = c_options->metadata.sync_grouped_files; | |
352 options->metadata.confirm_write = c_options->metadata.confirm_write; | |
353 options->metadata.confirm_timeout = c_options->metadata.confirm_timeout; | |
1244 | 354 options->metadata.confirm_after_timeout = c_options->metadata.confirm_after_timeout; |
1213 | 355 options->metadata.confirm_on_image_change = c_options->metadata.confirm_on_image_change; |
356 options->metadata.confirm_on_dir_change = c_options->metadata.confirm_on_dir_change; | |
1590
1a5a3b7ca2cd
use "keywords" instead of "tags" in option name, it is more consistent
nadvornik
parents:
1567
diff
changeset
|
357 options->metadata.keywords_case_sensitive = c_options->metadata.keywords_case_sensitive; |
1567
c776b1310ca6
added an option to write image orientation to the metadata
nadvornik
parents:
1548
diff
changeset
|
358 options->metadata.write_orientation = c_options->metadata.write_orientation; |
594
4cfce4ed35e0
Use a dedicated option to enable keywords and comment saving as XMP tags
zas_
parents:
586
diff
changeset
|
359 |
227
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
360 #ifdef DEBUG |
507 | 361 set_debug_level(debug_c); |
227
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
362 #endif |
9 | 363 |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
364 #ifdef HAVE_LCMS |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
365 for (i = 0; i < COLOR_PROFILE_INPUTS; i++) |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
366 { |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
367 config_entry_to_option(color_profile_input_name_entry[i], &options->color_profile.input_name[i], NULL); |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
368 config_entry_to_option(color_profile_input_file_entry[i], &options->color_profile.input_file[i], NULL); |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
369 } |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
370 config_entry_to_option(color_profile_screen_file_entry, &options->color_profile.screen_file, NULL); |
1548 | 371 options->color_profile.use_x11_screen_profile = c_options->color_profile.use_x11_screen_profile; |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
372 #endif |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
373 |
1353 | 374 #if 0 |
520 | 375 for (i = 0; ExifUIList[i].key; i++) |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
376 { |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
377 ExifUIList[i].current = ExifUIList[i].temp; |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
378 } |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
379 |
1353 | 380 #endif |
26
acd9885ebd78
Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
gqview
parents:
15
diff
changeset
|
381 image_options_sync(); |
acd9885ebd78
Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
gqview
parents:
15
diff
changeset
|
382 |
9 | 383 if (refresh) |
384 { | |
385 filter_rebuild(); | |
386 layout_refresh(NULL); | |
387 } | |
1601 | 388 |
389 if (accel_store) gtk_tree_model_foreach(GTK_TREE_MODEL(accel_store), accel_apply_cb, NULL); | |
9 | 390 } |
391 | |
392 /* | |
393 *----------------------------------------------------------------------------- | |
394 * config window main button callbacks (private) | |
395 *----------------------------------------------------------------------------- | |
442 | 396 */ |
9 | 397 |
398 static void config_window_close_cb(GtkWidget *widget, gpointer data) | |
399 { | |
400 gtk_widget_destroy(configwindow); | |
401 configwindow = NULL; | |
402 filter_store = NULL; | |
403 } | |
404 | |
1443 | 405 static gboolean config_window_delete(GtkWidget *widget, GdkEventAny *event, gpointer data) |
9 | 406 { |
407 config_window_close_cb(NULL, NULL); | |
408 return TRUE; | |
409 } | |
410 | |
411 static void config_window_ok_cb(GtkWidget *widget, gpointer data) | |
412 { | |
413 config_window_apply(); | |
414 config_window_close_cb(NULL, NULL); | |
415 } | |
416 | |
417 static void config_window_apply_cb(GtkWidget *widget, gpointer data) | |
418 { | |
419 config_window_apply(); | |
420 } | |
421 | |
1024
c92e5a5c3bfa
Add a Save button to Preferences dialog, which allow to save options to file without quitting the application.
zas_
parents:
1001
diff
changeset
|
422 static void config_window_save_cb(GtkWidget *widget, gpointer data) |
c92e5a5c3bfa
Add a Save button to Preferences dialog, which allow to save options to file without quitting the application.
zas_
parents:
1001
diff
changeset
|
423 { |
c92e5a5c3bfa
Add a Save button to Preferences dialog, which allow to save options to file without quitting the application.
zas_
parents:
1001
diff
changeset
|
424 config_window_apply(); |
c92e5a5c3bfa
Add a Save button to Preferences dialog, which allow to save options to file without quitting the application.
zas_
parents:
1001
diff
changeset
|
425 save_options(options); |
c92e5a5c3bfa
Add a Save button to Preferences dialog, which allow to save options to file without quitting the application.
zas_
parents:
1001
diff
changeset
|
426 } |
c92e5a5c3bfa
Add a Save button to Preferences dialog, which allow to save options to file without quitting the application.
zas_
parents:
1001
diff
changeset
|
427 |
9 | 428 /* |
429 *----------------------------------------------------------------------------- | |
430 * config window setup (private) | |
431 *----------------------------------------------------------------------------- | |
442 | 432 */ |
9 | 433 |
434 static void quality_menu_cb(GtkWidget *combo, gpointer data) | |
435 { | |
436 gint *option = data; | |
437 | |
438 switch (gtk_combo_box_get_active(GTK_COMBO_BOX(combo))) | |
439 { | |
440 case 0: | |
441 default: | |
442 *option = GDK_INTERP_NEAREST; | |
443 break; | |
444 case 1: | |
445 *option = GDK_INTERP_TILES; | |
446 break; | |
447 case 2: | |
448 *option = GDK_INTERP_BILINEAR; | |
449 break; | |
450 case 3: | |
451 *option = GDK_INTERP_HYPER; | |
452 break; | |
453 } | |
454 } | |
455 | |
456 static void add_quality_menu(GtkWidget *table, gint column, gint row, const gchar *text, | |
1188 | 457 guint option, guint *option_c) |
9 | 458 { |
459 GtkWidget *combo; | |
460 gint current = 0; | |
461 | |
462 *option_c = option; | |
463 | |
464 pref_table_label(table, column, row, text, 0.0); | |
465 | |
466 combo = gtk_combo_box_new_text(); | |
467 | |
468 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Nearest (worst, but fastest)")); | |
469 if (option == GDK_INTERP_NEAREST) current = 0; | |
470 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Tiles")); | |
471 if (option == GDK_INTERP_TILES) current = 1; | |
472 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Bilinear")); | |
473 if (option == GDK_INTERP_BILINEAR) current = 2; | |
474 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Hyper (best, but slowest)")); | |
475 if (option == GDK_INTERP_HYPER) current = 3; | |
476 | |
477 gtk_combo_box_set_active(GTK_COMBO_BOX(combo), current); | |
478 | |
479 g_signal_connect(G_OBJECT(combo), "changed", | |
480 G_CALLBACK(quality_menu_cb), option_c); | |
481 | |
482 gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
483 GTK_EXPAND | GTK_FILL, 0, 0, 0); |
9 | 484 gtk_widget_show(combo); |
485 } | |
486 | |
487 #if 0 | |
488 static void add_dither_menu(gint option, gint *option_c, gchar *text, GtkWidget *box) | |
489 { | |
490 GtkWidget *hbox; | |
491 GtkWidget *omenu; | |
492 GtkWidget *menu; | |
493 | |
494 *option_c = option; | |
495 | |
496 hbox = pref_box_new(box, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); | |
497 pref_label_new(hbox, text); | |
498 | |
499 omenu = gtk_option_menu_new(); | |
500 menu = gtk_menu_new(); | |
501 | |
502 add_menu_item(menu, _("None"), option_c, (gint)GDK_RGB_DITHER_NONE); | |
503 add_menu_item(menu, _("Normal"), option_c, (gint)GDK_RGB_DITHER_NORMAL); | |
504 add_menu_item(menu, _("Best"), option_c, (gint)GDK_RGB_DITHER_MAX); | |
505 | |
506 gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu); | |
507 gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), *option_c); | |
508 | |
509 gtk_box_pack_start(GTK_BOX(hbox), omenu, FALSE, FALSE, 0); | |
510 gtk_widget_show(omenu); | |
511 } | |
512 #endif | |
513 | |
514 static void thumb_size_menu_cb(GtkWidget *combo, gpointer data) | |
515 { | |
516 gint n; | |
517 | |
518 n = gtk_combo_box_get_active(GTK_COMBO_BOX(combo)); | |
736 | 519 if (n < 0) return; |
9 | 520 |
736 | 521 if ((guint) n < sizeof(thumb_size_list) / sizeof(ThumbSize)) |
9 | 522 { |
333 | 523 c_options->thumbnails.max_width = thumb_size_list[n].w; |
524 c_options->thumbnails.max_height = thumb_size_list[n].h; | |
9 | 525 } |
736 | 526 else |
9 | 527 { |
333 | 528 c_options->thumbnails.max_width = options->thumbnails.max_width; |
529 c_options->thumbnails.max_height = options->thumbnails.max_height; | |
9 | 530 } |
531 } | |
532 | |
533 static void add_thumb_size_menu(GtkWidget *table, gint column, gint row, gchar *text) | |
534 { | |
535 GtkWidget *combo; | |
536 gint current; | |
537 gint i; | |
538 | |
333 | 539 c_options->thumbnails.max_width = options->thumbnails.max_width; |
540 c_options->thumbnails.max_height = options->thumbnails.max_height; | |
9 | 541 |
542 pref_table_label(table, column, row, text, 0.0); | |
543 | |
544 combo = gtk_combo_box_new_text(); | |
545 | |
546 current = -1; | |
736 | 547 for (i = 0; (guint) i < sizeof(thumb_size_list) / sizeof(ThumbSize); i++) |
9 | 548 { |
549 gint w, h; | |
226
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
550 gchar *buf; |
9 | 551 |
552 w = thumb_size_list[i].w; | |
553 h = thumb_size_list[i].h; | |
554 | |
226
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
555 buf = g_strdup_printf("%d x %d", w, h); |
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
556 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), buf); |
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
557 g_free(buf); |
442 | 558 |
333 | 559 if (w == options->thumbnails.max_width && h == options->thumbnails.max_height) current = i; |
9 | 560 } |
561 | |
562 if (current == -1) | |
563 { | |
564 gchar *buf; | |
565 | |
333 | 566 buf = g_strdup_printf("%s %d x %d", _("Custom"), options->thumbnails.max_width, options->thumbnails.max_height); |
9 | 567 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), buf); |
568 g_free(buf); | |
569 | |
226
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
570 current = i; |
9 | 571 } |
572 | |
573 gtk_combo_box_set_active(GTK_COMBO_BOX(combo), current); | |
574 g_signal_connect(G_OBJECT(combo), "changed", | |
575 G_CALLBACK(thumb_size_menu_cb), NULL); | |
576 | |
577 gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
578 GTK_EXPAND | GTK_FILL, 0, 0, 0); |
9 | 579 gtk_widget_show(combo); |
580 } | |
581 | |
582 static void filter_store_populate(void) | |
583 { | |
584 GList *work; | |
585 | |
586 if (!filter_store) return; | |
587 | |
588 gtk_list_store_clear(filter_store); | |
589 | |
590 work = filter_get_list(); | |
591 while (work) | |
592 { | |
593 FilterEntry *fe; | |
594 GtkTreeIter iter; | |
595 | |
596 fe = work->data; | |
597 work = work->next; | |
598 | |
599 gtk_list_store_append(filter_store, &iter); | |
600 gtk_list_store_set(filter_store, &iter, 0, fe, -1); | |
601 } | |
602 } | |
603 | |
604 static void filter_store_ext_edit_cb(GtkCellRendererText *cell, gchar *path_str, | |
605 gchar *new_text, gpointer data) | |
606 { | |
607 GtkWidget *model = data; | |
608 FilterEntry *fe = data; | |
609 GtkTreePath *tpath; | |
610 GtkTreeIter iter; | |
611 | |
612 if (!new_text || strlen(new_text) < 1) return; | |
613 | |
614 tpath = gtk_tree_path_new_from_string(path_str); | |
615 gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, tpath); | |
616 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &fe, -1); | |
617 | |
618 g_free(fe->extensions); | |
619 fe->extensions = g_strdup(new_text); | |
620 | |
621 gtk_tree_path_free(tpath); | |
622 filter_rebuild(); | |
623 } | |
624 | |
1216 | 625 static void filter_store_class_edit_cb(GtkCellRendererText *cell, gchar *path_str, |
1443 | 626 gchar *new_text, gpointer data) |
1216 | 627 { |
628 GtkWidget *model = data; | |
629 FilterEntry *fe = data; | |
630 GtkTreePath *tpath; | |
631 GtkTreeIter iter; | |
632 gint i; | |
633 | |
1443 | 634 if (!new_text || !new_text[0]) return; |
1216 | 635 |
636 tpath = gtk_tree_path_new_from_string(path_str); | |
637 gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, tpath); | |
638 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &fe, -1); | |
639 | |
640 for (i = 0; i < FILE_FORMAT_CLASSES; i++) | |
641 { | |
642 if (strcmp(new_text, _(format_class_list[i])) == 0) | |
643 { | |
644 fe->file_class = i; | |
645 break; | |
646 } | |
647 } | |
648 | |
649 gtk_tree_path_free(tpath); | |
650 filter_rebuild(); | |
651 } | |
652 | |
9 | 653 static void filter_store_desc_edit_cb(GtkCellRendererText *cell, gchar *path_str, |
654 gchar *new_text, gpointer data) | |
655 { | |
656 GtkWidget *model = data; | |
657 FilterEntry *fe; | |
658 GtkTreePath *tpath; | |
659 GtkTreeIter iter; | |
660 | |
1443 | 661 if (!new_text || !new_text[0]) return; |
9 | 662 |
663 tpath = gtk_tree_path_new_from_string(path_str); | |
664 gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, tpath); | |
665 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &fe, -1); | |
666 | |
667 g_free(fe->description); | |
668 fe->description = g_strdup(new_text); | |
669 | |
670 gtk_tree_path_free(tpath); | |
671 } | |
672 | |
673 static void filter_store_enable_cb(GtkCellRendererToggle *renderer, | |
674 gchar *path_str, gpointer data) | |
675 { | |
676 GtkWidget *model = data; | |
677 FilterEntry *fe; | |
678 GtkTreePath *tpath; | |
679 GtkTreeIter iter; | |
680 | |
681 tpath = gtk_tree_path_new_from_string(path_str); | |
682 gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, tpath); | |
683 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &fe, -1); | |
684 | |
685 fe->enabled = !fe->enabled; | |
686 | |
687 gtk_tree_path_free(tpath); | |
688 filter_rebuild(); | |
689 } | |
690 | |
1239
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
691 static void filter_store_writable_cb(GtkCellRendererToggle *renderer, |
1443 | 692 gchar *path_str, gpointer data) |
1239
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
693 { |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
694 GtkWidget *model = data; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
695 FilterEntry *fe; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
696 GtkTreePath *tpath; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
697 GtkTreeIter iter; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
698 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
699 tpath = gtk_tree_path_new_from_string(path_str); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
700 gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, tpath); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
701 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &fe, -1); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
702 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
703 fe->writable = !fe->writable; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
704 if (fe->writable) fe->allow_sidecar = FALSE; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
705 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
706 gtk_tree_path_free(tpath); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
707 filter_rebuild(); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
708 } |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
709 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
710 static void filter_store_sidecar_cb(GtkCellRendererToggle *renderer, |
1443 | 711 gchar *path_str, gpointer data) |
1239
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
712 { |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
713 GtkWidget *model = data; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
714 FilterEntry *fe; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
715 GtkTreePath *tpath; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
716 GtkTreeIter iter; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
717 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
718 tpath = gtk_tree_path_new_from_string(path_str); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
719 gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, tpath); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
720 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &fe, -1); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
721 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
722 fe->allow_sidecar = !fe->allow_sidecar; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
723 if (fe->allow_sidecar) fe->writable = FALSE; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
724 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
725 gtk_tree_path_free(tpath); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
726 filter_rebuild(); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
727 } |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
728 |
9 | 729 static void filter_set_func(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, |
730 GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) | |
731 { | |
732 FilterEntry *fe; | |
733 | |
734 gtk_tree_model_get(tree_model, iter, 0, &fe, -1); | |
735 | |
1347
79937bc55f3a
Add missing space between switch and first parenthesis.
zas_
parents:
1346
diff
changeset
|
736 switch (GPOINTER_TO_INT(data)) |
9 | 737 { |
738 case FE_ENABLE: | |
739 g_object_set(GTK_CELL_RENDERER(cell), | |
740 "active", fe->enabled, NULL); | |
741 break; | |
742 case FE_EXTENSION: | |
743 g_object_set(GTK_CELL_RENDERER(cell), | |
744 "text", fe->extensions, NULL); | |
745 break; | |
746 case FE_DESCRIPTION: | |
747 g_object_set(GTK_CELL_RENDERER(cell), | |
748 "text", fe->description, NULL); | |
749 break; | |
1216 | 750 case FE_CLASS: |
751 g_object_set(GTK_CELL_RENDERER(cell), | |
752 "text", _(format_class_list[fe->file_class]), NULL); | |
753 break; | |
1239
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
754 case FE_WRITABLE: |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
755 g_object_set(GTK_CELL_RENDERER(cell), |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
756 "active", fe->writable, NULL); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
757 break; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
758 case FE_ALLOW_SIDECAR: |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
759 g_object_set(GTK_CELL_RENDERER(cell), |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
760 "active", fe->allow_sidecar, NULL); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
761 break; |
9 | 762 } |
763 } | |
764 | |
765 static void filter_add_cb(GtkWidget *widget, gpointer data) | |
766 { | |
1239
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
767 filter_add_unique("description", ".new", FORMAT_CLASS_IMAGE, TRUE, FALSE, TRUE); |
9 | 768 filter_store_populate(); |
769 | |
770 /* FIXME: implement the scroll to/select row stuff for tree view */ | |
771 } | |
772 | |
773 static void filter_remove_cb(GtkWidget *widget, gpointer data) | |
774 { | |
775 GtkWidget *filter_view = data; | |
776 GtkTreeSelection *selection; | |
777 GtkTreeIter iter; | |
778 FilterEntry *fe; | |
779 | |
780 if (!filter_store) return; | |
995 | 781 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(filter_view)); |
9 | 782 if (!gtk_tree_selection_get_selected(selection, NULL, &iter)) return; |
783 gtk_tree_model_get(GTK_TREE_MODEL(filter_store), &iter, 0, &fe, -1); | |
784 if (!fe) return; | |
785 | |
786 filter_remove_entry(fe); | |
787 filter_rebuild(); | |
788 filter_store_populate(); | |
789 } | |
790 | |
791 static void filter_default_ok_cb(GenericDialog *gd, gpointer data) | |
792 { | |
793 filter_reset(); | |
794 filter_add_defaults(); | |
795 filter_rebuild(); | |
796 filter_store_populate(); | |
797 } | |
798 | |
799 static void dummy_cancel_cb(GenericDialog *gd, gpointer data) | |
800 { | |
801 /* no op, only so cancel button appears */ | |
802 } | |
803 | |
804 static void filter_default_cb(GtkWidget *widget, gpointer data) | |
805 { | |
806 GenericDialog *gd; | |
807 | |
808 gd = generic_dialog_new(_("Reset filters"), | |
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:
1060
diff
changeset
|
809 "reset_filter", widget, TRUE, |
9 | 810 dummy_cancel_cb, NULL); |
811 generic_dialog_add_message(gd, GTK_STOCK_DIALOG_QUESTION, _("Reset filters"), | |
812 _("This will reset the file filters to the defaults.\nContinue?")); | |
813 generic_dialog_add_button(gd, GTK_STOCK_OK, NULL, filter_default_ok_cb, TRUE); | |
814 gtk_widget_show(gd->dialog); | |
815 } | |
816 | |
1001 | 817 static void filter_disable_cb(GtkWidget *widget, gpointer data) |
9 | 818 { |
819 GtkWidget *frame = data; | |
820 | |
821 gtk_widget_set_sensitive(frame, | |
822 !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))); | |
823 } | |
824 | |
1001 | 825 static void safe_delete_view_cb(GtkWidget *widget, gpointer data) |
9 | 826 { |
827 layout_set_path(NULL, gtk_entry_get_text(GTK_ENTRY(safe_delete_path_entry))); | |
828 } | |
829 | |
830 static void safe_delete_clear_ok_cb(GenericDialog *gd, gpointer data) | |
831 { | |
832 file_util_trash_clear(); | |
833 } | |
834 | |
1001 | 835 static void safe_delete_clear_cb(GtkWidget *widget, gpointer data) |
9 | 836 { |
837 GenericDialog *gd; | |
838 GtkWidget *entry; | |
839 gd = generic_dialog_new(_("Clear trash"), | |
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:
1060
diff
changeset
|
840 "clear_trash", widget, TRUE, |
9 | 841 dummy_cancel_cb, NULL); |
842 generic_dialog_add_message(gd, GTK_STOCK_DIALOG_QUESTION, _("Clear trash"), | |
843 _("This will remove the trash contents.")); | |
844 generic_dialog_add_button(gd, GTK_STOCK_OK, NULL, safe_delete_clear_ok_cb, TRUE); | |
845 entry = gtk_entry_new(); | |
846 GTK_WIDGET_UNSET_FLAGS(entry, GTK_CAN_FOCUS); | |
847 gtk_editable_set_editable(GTK_EDITABLE(entry), FALSE); | |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
339
diff
changeset
|
848 if (options->file_ops.safe_delete_path) gtk_entry_set_text(GTK_ENTRY(entry), options->file_ops.safe_delete_path); |
9 | 849 gtk_box_pack_start(GTK_BOX(gd->vbox), entry, FALSE, FALSE, 0); |
850 gtk_widget_show(entry); | |
851 gtk_widget_show(gd->dialog); | |
852 } | |
853 | |
1001 | 854 static void image_overlay_template_view_changed_cb(GtkWidget *widget, gpointer data) |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
855 { |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
856 GtkWidget *pTextView; |
1001 | 857 GtkTextBuffer *pTextBuffer; |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
858 GtkTextIter iStart; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
859 GtkTextIter iEnd; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
860 |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
861 pTextView = GTK_WIDGET(data); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
862 |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
863 pTextBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(pTextView)); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
864 gtk_text_buffer_get_start_iter(pTextBuffer, &iStart); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
865 gtk_text_buffer_get_end_iter(pTextBuffer, &iEnd); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
866 |
1336 | 867 set_image_overlay_template_string(&c_options->image_overlay.template_string, |
733
57f759d012c7
Modify set_default_image_overlay_template_string() to accept the pointer to
zas_
parents:
730
diff
changeset
|
868 gtk_text_buffer_get_text(pTextBuffer, &iStart, &iEnd, TRUE)); |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
869 } |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
870 |
469
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
871 static void image_overlay_default_template_ok_cb(GenericDialog *gd, gpointer data) |
354
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
872 { |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
873 GtkTextView *text_view = data; |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
874 GtkTextBuffer *buffer; |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
875 |
1336 | 876 set_default_image_overlay_template_string(&options->image_overlay.template_string); |
354
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
877 if (!configwindow) return; |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
878 |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
879 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view)); |
1336 | 880 gtk_text_buffer_set_text(buffer, options->image_overlay.template_string, -1); |
354
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
881 } |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
882 |
469
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
883 static void image_overlay_default_template_cb(GtkWidget *widget, gpointer data) |
354
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
884 { |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
885 GenericDialog *gd; |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
886 |
469
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
887 gd = generic_dialog_new(_("Reset image overlay template string"), |
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:
1060
diff
changeset
|
888 "reset_image_overlay_template_string", widget, TRUE, |
354
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
889 dummy_cancel_cb, data); |
469
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
890 generic_dialog_add_message(gd, GTK_STOCK_DIALOG_QUESTION, _("Reset image overlay template string"), |
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
891 _("This will reset the image overlay template string to the default.\nContinue?")); |
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
892 generic_dialog_add_button(gd, GTK_STOCK_OK, NULL, image_overlay_default_template_ok_cb, TRUE); |
354
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
893 gtk_widget_show(gd->dialog); |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
894 } |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
895 |
625
076e6f7e9ecb
Add an help button to OSD info configuration in Preferences dialog.
zas_
parents:
597
diff
changeset
|
896 static void image_overlay_help_cb(GtkWidget *widget, gpointer data) |
076e6f7e9ecb
Add an help button to OSD info configuration in Preferences dialog.
zas_
parents:
597
diff
changeset
|
897 { |
076e6f7e9ecb
Add an help button to OSD info configuration in Preferences dialog.
zas_
parents:
597
diff
changeset
|
898 help_window_show("overlay"); |
076e6f7e9ecb
Add an help button to OSD info configuration in Preferences dialog.
zas_
parents:
597
diff
changeset
|
899 } |
354
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
900 |
1606 | 901 #if GTK_CHECK_VERSION(2, 10, 0) |
1601 | 902 static void accel_store_populate(void) |
903 { | |
904 LayoutWindow *lw; | |
905 GList *groups, *actions; | |
906 GtkAction *action; | |
907 const gchar *accel_path; | |
908 GtkAccelKey key; | |
909 GtkTreeIter iter; | |
910 | |
911 if (!accel_store || !layout_window_list || !layout_window_list->data) return; | |
912 | |
913 gtk_tree_store_clear(accel_store); | |
914 lw = layout_window_list->data; /* get the actions from the first window, it should not matter, they should be the same in all windows */ | |
915 | |
916 g_assert(lw && lw->ui_manager); | |
917 groups = gtk_ui_manager_get_action_groups(lw->ui_manager); | |
918 while (groups) | |
919 { | |
920 actions = gtk_action_group_list_actions(GTK_ACTION_GROUP(groups->data)); | |
921 while (actions) | |
922 { | |
923 action = GTK_ACTION(actions->data); | |
924 accel_path = gtk_action_get_accel_path(action); | |
925 if (accel_path && gtk_accel_map_lookup_entry(accel_path, &key)) | |
926 { | |
927 gchar *label, *label2, *tooltip, *accel; | |
928 g_object_get(action, | |
929 "tooltip", &tooltip, | |
930 "label", &label, | |
931 NULL); | |
932 | |
933 if (pango_parse_markup(label, -1, '_', NULL, &label2, NULL, NULL) && label2) | |
934 { | |
935 g_free(label); | |
936 label = label2; | |
937 } | |
938 | |
939 accel = gtk_accelerator_name(key.accel_key, key.accel_mods); | |
1619
d35a0836c6b5
do not display menus ("FileMenu" etc.) in accelerator configuration
nadvornik
parents:
1606
diff
changeset
|
940 |
d35a0836c6b5
do not display menus ("FileMenu" etc.) in accelerator configuration
nadvornik
parents:
1606
diff
changeset
|
941 if (tooltip) |
d35a0836c6b5
do not display menus ("FileMenu" etc.) in accelerator configuration
nadvornik
parents:
1606
diff
changeset
|
942 { |
d35a0836c6b5
do not display menus ("FileMenu" etc.) in accelerator configuration
nadvornik
parents:
1606
diff
changeset
|
943 gtk_tree_store_append(accel_store, &iter, NULL); |
d35a0836c6b5
do not display menus ("FileMenu" etc.) in accelerator configuration
nadvornik
parents:
1606
diff
changeset
|
944 gtk_tree_store_set(accel_store, &iter, |
d35a0836c6b5
do not display menus ("FileMenu" etc.) in accelerator configuration
nadvornik
parents:
1606
diff
changeset
|
945 AE_ACTION, label, |
d35a0836c6b5
do not display menus ("FileMenu" etc.) in accelerator configuration
nadvornik
parents:
1606
diff
changeset
|
946 AE_KEY, accel, |
d35a0836c6b5
do not display menus ("FileMenu" etc.) in accelerator configuration
nadvornik
parents:
1606
diff
changeset
|
947 AE_TOOLTIP, tooltip ? tooltip : "", |
d35a0836c6b5
do not display menus ("FileMenu" etc.) in accelerator configuration
nadvornik
parents:
1606
diff
changeset
|
948 AE_ACCEL, accel_path, |
d35a0836c6b5
do not display menus ("FileMenu" etc.) in accelerator configuration
nadvornik
parents:
1606
diff
changeset
|
949 -1); |
d35a0836c6b5
do not display menus ("FileMenu" etc.) in accelerator configuration
nadvornik
parents:
1606
diff
changeset
|
950 } |
1601 | 951 |
952 g_free(accel); | |
953 g_free(label); | |
954 g_free(tooltip); | |
955 } | |
956 actions = actions->next; | |
957 } | |
958 | |
959 groups = groups->next; | |
960 } | |
961 } | |
962 | |
963 static void accel_store_cleared_cb(GtkCellRendererAccel *accel, gchar *path_string, gpointer user_data) | |
964 { | |
965 | |
966 } | |
967 | |
968 static gboolean accel_remove_key_cb(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) | |
969 { | |
970 gchar *accel1 = data; | |
971 gchar *accel2; | |
972 GtkAccelKey key1; | |
973 GtkAccelKey key2; | |
974 | |
975 gtk_tree_model_get(model, iter, AE_KEY, &accel2, -1); | |
976 | |
977 gtk_accelerator_parse(accel1, &key1.accel_key, &key1.accel_mods); | |
978 gtk_accelerator_parse(accel2, &key2.accel_key, &key2.accel_mods); | |
979 | |
980 if (key1.accel_key == key2.accel_key && key1.accel_mods == key2.accel_mods) | |
981 { | |
982 gtk_tree_store_set(accel_store, iter, AE_KEY, "", -1); | |
983 DEBUG_1("accelerator key '%s' is already used, removing.", accel1); | |
984 } | |
985 | |
986 g_free(accel2); | |
987 | |
988 return FALSE; | |
989 } | |
990 | |
991 | |
992 static void accel_store_edited_cb(GtkCellRendererAccel *accel, gchar *path_string, guint accel_key, GdkModifierType accel_mods, guint hardware_keycode, gpointer user_data) | |
993 { | |
994 GtkTreeModel *model = (GtkTreeModel *)accel_store; | |
995 GtkTreeIter iter; | |
996 gchar *acc; | |
1664 | 997 gchar *accel_path; |
998 GtkAccelKey old_key, key; | |
1601 | 999 GtkTreePath *path = gtk_tree_path_new_from_string(path_string); |
1000 | |
1001 gtk_tree_model_get_iter(model, &iter, path); | |
1664 | 1002 gtk_tree_model_get(model, &iter, AE_ACCEL, &accel_path, -1); |
1003 | |
1004 /* test if the accelerator can be stored without conflicts*/ | |
1005 gtk_accel_map_lookup_entry(accel_path, &old_key); | |
1601 | 1006 |
1664 | 1007 /* change the key and read it back (change may fail on keys hardcoded in gtk)*/ |
1008 gtk_accel_map_change_entry(accel_path, accel_key, accel_mods, TRUE); | |
1009 gtk_accel_map_lookup_entry(accel_path, &key); | |
1010 | |
1011 /* restore the original for now, the key will be really changed when the changes are confirmed */ | |
1012 gtk_accel_map_change_entry(accel_path, old_key.accel_key, old_key.accel_mods, TRUE); | |
1013 | |
1014 acc = gtk_accelerator_name(key.accel_key, key.accel_mods); | |
1601 | 1015 gtk_tree_model_foreach(GTK_TREE_MODEL(accel_store), accel_remove_key_cb, acc); |
1016 | |
1017 gtk_tree_store_set(accel_store, &iter, AE_KEY, acc, -1); | |
1018 gtk_tree_path_free(path); | |
1019 g_free(acc); | |
1020 } | |
1021 | |
1022 static void accel_default_cb(GtkWidget *widget, gpointer data) | |
1023 { | |
1024 accel_store_populate(); | |
1025 | |
1026 /* FIXME: implement the scroll to/select row stuff for tree view */ | |
1027 } | |
1028 | |
1029 void accel_remove_selection(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) | |
1030 { | |
1031 gtk_tree_store_set(accel_store, iter, AE_KEY, "", -1); | |
1032 } | |
1033 | |
1034 #if 0 | |
1035 static void accel_remove_cb(GtkWidget *widget, gpointer data) | |
1036 { | |
1037 GtkTreeSelection *selection; | |
1038 | |
1039 if (!accel_store) return; | |
1040 | |
1041 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data)); | |
1042 gtk_tree_selection_selected_foreach(selection, &accel_remove_selection, NULL); | |
1043 } | |
1044 #endif | |
1045 | |
1046 void accel_reset_selection(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) | |
1047 { | |
1048 GtkAccelKey key; | |
1049 gchar *accel_path, *accel; | |
1050 | |
1051 gtk_tree_model_get(model, iter, AE_ACCEL, &accel_path, -1); | |
1052 gtk_accel_map_lookup_entry(accel_path, &key); | |
1053 accel = gtk_accelerator_name(key.accel_key, key.accel_mods); | |
1054 | |
1055 gtk_tree_model_foreach(GTK_TREE_MODEL(accel_store), accel_remove_key_cb, accel); | |
1056 | |
1057 gtk_tree_store_set(accel_store, iter, AE_KEY, accel, -1); | |
1058 g_free(accel_path); | |
1059 g_free(accel); | |
1060 } | |
1061 | |
1062 static void accel_reset_cb(GtkWidget *widget, gpointer data) | |
1063 { | |
1064 GtkTreeSelection *selection; | |
1065 | |
1066 if (!accel_store) return; | |
1067 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data)); | |
1068 gtk_tree_selection_selected_foreach(selection, &accel_reset_selection, NULL); | |
1069 } | |
1070 | |
1071 | |
1072 #if 0 | |
1073 static void accel_alternate_activate_cb(GtkWidget *widget, gpointer data) | |
1074 { | |
1075 gtk_action_activate((GtkAction*)data); | |
1076 } | |
1077 | |
1078 #define DUPL "-alt-" | |
1079 | |
1080 void accel_add_alt_selection(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) | |
1081 { | |
1082 LayoutWindow *lw; | |
1083 GList *groups, *actions; | |
1084 GtkAction *action; | |
1085 GtkAccelKey key, *key2; | |
1086 GtkAccelMap *map; | |
1087 gchar *accel_path2, *accel; | |
1088 const gchar *accel_path; | |
1089 gint freeduplnum = 1; | |
1090 gint len; | |
1091 GClosure* closure; | |
1092 GtkAccelGroup *group; | |
1093 GtkAction *action_new, *action_new2; | |
1094 gchar *name, *accel_path_new, *accel_path_new2; | |
1095 | |
1096 if (!accel_store || !layout_window_list || !layout_window_list->data) return; | |
1097 | |
1098 gtk_tree_model_get(model, iter, AE_ACCEL, &accel_path2, -1); | |
1099 len = strlen(accel_path2); | |
1100 | |
1101 gtk_tree_store_clear(accel_store); | |
1102 lw = layout_window_list->data; | |
1103 | |
1104 g_assert(lw && lw->ui_manager); | |
1105 groups = gtk_ui_manager_get_action_groups(lw->ui_manager); | |
1106 group = gtk_ui_manager_get_accel_group(lw->ui_manager); | |
1107 | |
1108 while (groups) | |
1109 { | |
1110 actions = gtk_action_group_list_actions(GTK_ACTION_GROUP(groups->data)); | |
1111 while (actions) | |
1112 { | |
1113 gchar *dupl; | |
1114 guint64 num; | |
1115 | |
1116 action = GTK_ACTION(actions->data); | |
1117 actions = actions->next; | |
1118 | |
1119 accel_path = gtk_action_get_accel_path(action); | |
1120 if (!accel_path) continue; | |
1121 | |
1122 dupl = g_strrstr(accel_path, DUPL); | |
1123 | |
1124 printf("D: %s %s %s\n", accel_path, accel_path2, dupl); | |
1125 | |
1126 if ((dupl && (len != (dupl - accel_path)) ) || | |
1127 g_ascii_strncasecmp(accel_path, accel_path2, len) != 0) | |
1128 continue; | |
1129 | |
1130 if (dupl && (num = g_ascii_strtoull(dupl + strlen(DUPL), NULL, 10)) > 0 && | |
1131 num > freeduplnum) | |
1132 { | |
1133 freeduplnum = num + 1; | |
1134 } | |
1135 else | |
1136 { | |
1137 closure = gtk_action_get_accel_closure(action); | |
1138 name = gtk_action_get_name(action); | |
1139 accel_path_new = g_strdup(accel_path); | |
1140 action_new2 = action; | |
1141 } | |
1142 } | |
1143 groups = groups->next; | |
1144 } | |
1145 | |
1146 action_new = gtk_action_new(name, NULL, NULL, NULL); | |
1147 gtk_action_set_accel_group(action_new, group); | |
1148 | |
1149 g_signal_connect(G_OBJECT(action_new), "activate", | |
1150 G_CALLBACK(accel_alternate_activate_cb), action_new2); | |
1151 | |
1152 // accel_path_new2 = g_strdup_printf("%s%s%d", accel_path_new, dupl, freeduplnum); | |
1153 g_free(accel_path_new); | |
1154 | |
1155 gtk_action_set_accel_path(action_new, accel_path_new); | |
1156 | |
1157 // gtk_tree_store_set(accel_store, iter, AE_KEY, "", -1); | |
1158 printf("D: %s\n", accel_path_new2); | |
1159 | |
1160 g_free(accel_path_new2); | |
1161 gtk_action_connect_accelerator(action_new); | |
1162 } | |
1163 | |
1164 static void accel_add_alt_cb(GtkWidget *widget, gpointer data) | |
1165 { | |
1166 GtkWidget *accel_view = data; | |
1167 GtkTreeSelection *selection; | |
1168 | |
1169 if (!accel_store) return; | |
1170 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data)); | |
1171 gtk_tree_selection_selected_foreach(selection, &accel_add_alt_selection, NULL); | |
1172 } | |
1173 | |
1174 static void accel_default_ok_cb(GenericDialog *gd, gpointer data) | |
1175 { | |
1176 accel_store_populate(); | |
1177 } | |
1178 | |
1179 #endif | |
1606 | 1180 #endif |
1601 | 1181 |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1182 static GtkWidget *scrolled_notebook_page(GtkWidget *notebook, const gchar *title) |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1183 { |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1184 GtkWidget *label; |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1185 GtkWidget *vbox; |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1186 GtkWidget *scrolled; |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1187 GtkWidget *viewport; |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1188 |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1189 scrolled = gtk_scrolled_window_new(NULL, NULL); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1190 gtk_container_set_border_width(GTK_CONTAINER(scrolled), PREF_PAD_BORDER); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1191 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1192 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1193 label = gtk_label_new(title); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1194 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scrolled, label); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1195 gtk_widget_show(scrolled); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1196 |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1197 viewport = gtk_viewport_new(NULL, NULL); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1198 gtk_viewport_set_shadow_type(GTK_VIEWPORT(viewport), GTK_SHADOW_NONE); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1199 gtk_container_add(GTK_CONTAINER(scrolled), viewport); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1200 gtk_widget_show(viewport); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1201 |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1202 vbox = gtk_vbox_new(FALSE, 0); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1203 gtk_container_add(GTK_CONTAINER(viewport), vbox); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1204 gtk_widget_show(vbox); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1205 |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1206 return vbox; |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1207 } |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1208 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1209 /* general options tab */ |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1210 static void config_tab_general(GtkWidget *notebook) |
9 | 1211 { |
1212 GtkWidget *vbox; | |
1213 GtkWidget *group; | |
1214 GtkWidget *subgroup; | |
1215 GtkWidget *button; | |
1216 GtkWidget *ct_button; | |
1217 GtkWidget *table; | |
1218 GtkWidget *spin; | |
1219 | |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1220 vbox = scrolled_notebook_page(notebook, _("General")); |
9 | 1221 |
1222 group = pref_group_new(vbox, FALSE, _("Thumbnails"), GTK_ORIENTATION_VERTICAL); | |
1223 | |
1224 table = pref_table_new(group, 2, 2, FALSE, FALSE); | |
1225 add_thumb_size_menu(table, 0, 0, _("Size:")); | |
333 | 1226 add_quality_menu(table, 0, 1, _("Quality:"), options->thumbnails.quality, &c_options->thumbnails.quality); |
9 | 1227 |
1228 ct_button = pref_checkbox_new_int(group, _("Cache thumbnails"), | |
333 | 1229 options->thumbnails.enable_caching, &c_options->thumbnails.enable_caching); |
9 | 1230 |
1231 subgroup = pref_box_new(group, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP); | |
1232 pref_checkbox_link_sensitivity(ct_button, subgroup); | |
1233 | |
1522 | 1234 button = pref_checkbox_new_int(subgroup, _("Use standard thumbnail cache, shared with other applications"), |
333 | 1235 options->thumbnails.spec_standard, &c_options->thumbnails.spec_standard); |
9 | 1236 |
1237 subgroup = pref_box_new(subgroup, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP); | |
1238 pref_checkbox_link_sensitivity_swap(button, subgroup); | |
1239 | |
1522 | 1240 pref_checkbox_new_int(subgroup, _("Store thumbnails in '.thumbnails' folder, local to image folder (non-standard)"), |
333 | 1241 options->thumbnails.cache_into_dirs, &c_options->thumbnails.cache_into_dirs); |
9 | 1242 |
14
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
1243 #if 0 |
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
1244 pref_checkbox_new_int(subgroup, _("Use xvpics thumbnails when found (read only)"), |
333 | 1245 options->thumbnails.use_xvpics, &c_options->thumbnails.use_xvpics); |
14
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
1246 #endif |
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
1247 |
1522 | 1248 pref_checkbox_new_int(group, _("Use EXIF thumbnails when available (EXIF thumbnails may be outdated)"), |
1060 | 1249 options->thumbnails.use_exif, &c_options->thumbnails.use_exif); |
1250 | |
9 | 1251 group = pref_group_new(vbox, FALSE, _("Slide show"), GTK_ORIENTATION_VERTICAL); |
1252 | |
326 | 1253 c_options->slideshow.delay = options->slideshow.delay; |
9 | 1254 spin = pref_spin_new(group, _("Delay between image change:"), _("seconds"), |
1255 SLIDESHOW_MIN_SECONDS, SLIDESHOW_MAX_SECONDS, 1.0, 1, | |
1000
4fe8f9656107
For the sake of consistency, use glib basic types everywhere.
zas_
parents:
995
diff
changeset
|
1256 options->slideshow.delay ? (gdouble)options->slideshow.delay / SLIDESHOW_SUBSECOND_PRECISION : 10.0, |
9 | 1257 G_CALLBACK(slideshow_delay_cb), NULL); |
1258 gtk_spin_button_set_update_policy(GTK_SPIN_BUTTON(spin), GTK_UPDATE_ALWAYS); | |
1259 | |
326 | 1260 pref_checkbox_new_int(group, _("Random"), options->slideshow.random, &c_options->slideshow.random); |
1261 pref_checkbox_new_int(group, _("Repeat"), options->slideshow.repeat, &c_options->slideshow.repeat); | |
1510 | 1262 |
1263 group = pref_group_new(vbox, FALSE, _("Image loading and caching"), GTK_ORIENTATION_VERTICAL); | |
1264 | |
1522 | 1265 #if 0 |
1510 | 1266 pref_spin_new_int(group, _("Offscreen cache size (Mb per image):"), NULL, |
1267 0, 128, 1, options->image.tile_cache_max, &c_options->image.tile_cache_max); | |
1522 | 1268 #endif |
1510 | 1269 |
1270 pref_spin_new_int(group, _("Decoded image cache size (Mb):"), NULL, | |
1271 0, 1024, 1, options->image.image_cache_max, &c_options->image.image_cache_max); | |
1522 | 1272 pref_checkbox_new_int(group, _("Preload next image"), |
1273 options->image.enable_read_ahead, &c_options->image.enable_read_ahead); | |
1274 | |
1275 pref_checkbox_new_int(group, _("Refresh on file change"), | |
1276 options->update_on_time_change, &c_options->update_on_time_change); | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1277 } |
9 | 1278 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1279 /* image tab */ |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1280 static void config_tab_image(GtkWidget *notebook) |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1281 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1282 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1283 GtkWidget *vbox; |
1516
c30965f99b3c
improved Scroll reset method in preferences dialog
nadvornik
parents:
1515
diff
changeset
|
1284 GtkWidget *vbox2; |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1285 GtkWidget *group; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1286 GtkWidget *button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1287 GtkWidget *ct_button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1288 GtkWidget *table; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1289 GtkWidget *spin; |
9 | 1290 |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1291 vbox = scrolled_notebook_page(notebook, _("Image")); |
9 | 1292 |
1293 group = pref_group_new(vbox, FALSE, _("Zoom"), GTK_ORIENTATION_VERTICAL); | |
1294 | |
1295 #if 0 | |
334 | 1296 add_dither_menu(dither_quality, &c_options->image.dither_quality, _("Dithering method:"), group); |
9 | 1297 #endif |
1298 table = pref_table_new(group, 2, 1, FALSE, FALSE); | |
334 | 1299 add_quality_menu(table, 0, 0, _("Quality:"), options->image.zoom_quality, &c_options->image.zoom_quality); |
9 | 1300 |
1515
3e6cd9243162
disabled 2-pass rendering also affect color correction
nadvornik
parents:
1513
diff
changeset
|
1301 pref_checkbox_new_int(group, _("Two pass rendering (apply HQ zoom and color correction in second pass)"), |
334 | 1302 options->image.zoom_2pass, &c_options->image.zoom_2pass); |
9 | 1303 |
67
f63ecca6c087
Fri Oct 13 05:22:43 2006 John Ellis <johne@verizon.net>
gqview
parents:
26
diff
changeset
|
1304 pref_checkbox_new_int(group, _("Allow enlargement of image for zoom to fit"), |
334 | 1305 options->image.zoom_to_fit_allow_expand, &c_options->image.zoom_to_fit_allow_expand); |
9 | 1306 |
209
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
1307 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); |
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
1308 ct_button = pref_checkbox_new_int(hbox, _("Limit image size when autofitting (%):"), |
334 | 1309 options->image.limit_autofit_size, &c_options->image.limit_autofit_size); |
209
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
1310 spin = pref_spin_new_int(hbox, NULL, NULL, |
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
1311 10, 150, 1, |
334 | 1312 options->image.max_autofit_size, &c_options->image.max_autofit_size); |
209
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
1313 pref_checkbox_link_sensitivity(ct_button, spin); |
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
1314 |
334 | 1315 c_options->image.zoom_increment = options->image.zoom_increment; |
9 | 1316 spin = pref_spin_new(group, _("Zoom increment:"), NULL, |
1000
4fe8f9656107
For the sake of consistency, use glib basic types everywhere.
zas_
parents:
995
diff
changeset
|
1317 0.1, 4.0, 0.1, 1, (gdouble)options->image.zoom_increment / 10.0, |
9 | 1318 G_CALLBACK(zoom_increment_cb), NULL); |
1319 gtk_spin_button_set_update_policy(GTK_SPIN_BUTTON(spin), GTK_UPDATE_ALWAYS); | |
1320 | |
1516
c30965f99b3c
improved Scroll reset method in preferences dialog
nadvornik
parents:
1515
diff
changeset
|
1321 group = pref_group_new(vbox, FALSE, _("When new image is selected:"), GTK_ORIENTATION_HORIZONTAL); |
9 | 1322 |
1516
c30965f99b3c
improved Scroll reset method in preferences dialog
nadvornik
parents:
1515
diff
changeset
|
1323 vbox2 = pref_box_new(group, TRUE, GTK_ORIENTATION_VERTICAL, PREF_PAD_SPACE); |
334 | 1324 c_options->image.zoom_mode = options->image.zoom_mode; |
1516
c30965f99b3c
improved Scroll reset method in preferences dialog
nadvornik
parents:
1515
diff
changeset
|
1325 button = pref_radiobutton_new(vbox2, NULL, _("Zoom to original size"), |
334 | 1326 (options->image.zoom_mode == ZOOM_RESET_ORIGINAL), |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1327 G_CALLBACK(zoom_mode_cb), GINT_TO_POINTER(ZOOM_RESET_ORIGINAL)); |
1516
c30965f99b3c
improved Scroll reset method in preferences dialog
nadvornik
parents:
1515
diff
changeset
|
1328 button = pref_radiobutton_new(vbox2, button, _("Fit image to window"), |
334 | 1329 (options->image.zoom_mode == ZOOM_RESET_FIT_WINDOW), |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1330 G_CALLBACK(zoom_mode_cb), GINT_TO_POINTER(ZOOM_RESET_FIT_WINDOW)); |
1516
c30965f99b3c
improved Scroll reset method in preferences dialog
nadvornik
parents:
1515
diff
changeset
|
1331 button = pref_radiobutton_new(vbox2, button, _("Leave Zoom at previous setting"), |
334 | 1332 (options->image.zoom_mode == ZOOM_RESET_NONE), |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1333 G_CALLBACK(zoom_mode_cb), GINT_TO_POINTER(ZOOM_RESET_NONE)); |
9 | 1334 |
1516
c30965f99b3c
improved Scroll reset method in preferences dialog
nadvornik
parents:
1515
diff
changeset
|
1335 vbox2 = pref_box_new(group, TRUE, GTK_ORIENTATION_VERTICAL, PREF_PAD_SPACE); |
1038
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
1336 c_options->image.scroll_reset_method = options->image.scroll_reset_method; |
1516
c30965f99b3c
improved Scroll reset method in preferences dialog
nadvornik
parents:
1515
diff
changeset
|
1337 button = pref_radiobutton_new(vbox2, NULL, _("Scroll to top left corner"), |
1038
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
1338 (options->image.scroll_reset_method == SCROLL_RESET_TOPLEFT), |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
1339 G_CALLBACK(scroll_reset_cb), GINT_TO_POINTER(SCROLL_RESET_TOPLEFT)); |
1516
c30965f99b3c
improved Scroll reset method in preferences dialog
nadvornik
parents:
1515
diff
changeset
|
1340 button = pref_radiobutton_new(vbox2, button, _("Scroll to image center"), |
1038
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
1341 (options->image.scroll_reset_method == SCROLL_RESET_CENTER), |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
1342 G_CALLBACK(scroll_reset_cb), GINT_TO_POINTER(SCROLL_RESET_CENTER)); |
1516
c30965f99b3c
improved Scroll reset method in preferences dialog
nadvornik
parents:
1515
diff
changeset
|
1343 button = pref_radiobutton_new(vbox2, button, _("Keep the region from previous image"), |
1038
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
1344 (options->image.scroll_reset_method == SCROLL_RESET_NOCHANGE), |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
1345 G_CALLBACK(scroll_reset_cb), GINT_TO_POINTER(SCROLL_RESET_NOCHANGE)); |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
1346 |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
1347 |
9 | 1348 group = pref_group_new(vbox, FALSE, _("Appearance"), GTK_ORIENTATION_VERTICAL); |
1349 | |
1644
b8235f919d6b
the options for custom border color were made independent
nadvornik
parents:
1626
diff
changeset
|
1350 pref_checkbox_new_int(group, _("Use custom border color in window mode"), |
339
de1c2cd06fce
Rename user_specified_window_background and window_background_color
zas_
parents:
338
diff
changeset
|
1351 options->image.use_custom_border_color, &c_options->image.use_custom_border_color); |
1626
1d7941c147be
Add an option to Image preferences to restrict custom border to fullscreen mode only. Bug 2798062.
zas_
parents:
1625
diff
changeset
|
1352 |
1644
b8235f919d6b
the options for custom border color were made independent
nadvornik
parents:
1626
diff
changeset
|
1353 pref_checkbox_new_int(group, _("Use custom border color in fullscreen mode"), |
b8235f919d6b
the options for custom border color were made independent
nadvornik
parents:
1626
diff
changeset
|
1354 options->image.use_custom_border_color_in_fullscreen, &c_options->image.use_custom_border_color_in_fullscreen); |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
199
diff
changeset
|
1355 |
339
de1c2cd06fce
Rename user_specified_window_background and window_background_color
zas_
parents:
338
diff
changeset
|
1356 pref_color_button_new(group, _("Border color"), &options->image.border_color, |
de1c2cd06fce
Rename user_specified_window_background and window_background_color
zas_
parents:
338
diff
changeset
|
1357 G_CALLBACK(pref_color_button_set_cb), &c_options->image.border_color); |
9 | 1358 |
1359 group = pref_group_new(vbox, FALSE, _("Convenience"), GTK_ORIENTATION_VERTICAL); | |
1360 | |
1361 pref_checkbox_new_int(group, _("Auto rotate image using Exif information"), | |
334 | 1362 options->image.exif_rotate_enable, &c_options->image.exif_rotate_enable); |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1363 } |
9 | 1364 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1365 /* windows tab */ |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1366 static void config_tab_windows(GtkWidget *notebook) |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1367 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1368 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1369 GtkWidget *vbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1370 GtkWidget *group; |
1510 | 1371 GtkWidget *button; |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1372 GtkWidget *ct_button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1373 GtkWidget *spin; |
1510 | 1374 GtkWidget *image_overlay_template_view; |
1375 GtkWidget *scrolled; | |
1376 GtkTextBuffer *buffer; | |
9 | 1377 |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1378 vbox = scrolled_notebook_page(notebook, _("Windows")); |
9 | 1379 |
1380 group = pref_group_new(vbox, FALSE, _("State"), GTK_ORIENTATION_VERTICAL); | |
1381 | |
1382 pref_checkbox_new_int(group, _("Remember window positions"), | |
1436
d7a6fb7a90dd
completely separated global and layout window options
nadvornik
parents:
1400
diff
changeset
|
1383 options->save_window_positions, &c_options->save_window_positions); |
9 | 1384 pref_checkbox_new_int(group, _("Remember tool state (float/hidden)"), |
1436
d7a6fb7a90dd
completely separated global and layout window options
nadvornik
parents:
1400
diff
changeset
|
1385 options->tools_restore_state, &c_options->tools_restore_state); |
9 | 1386 |
1387 group = pref_group_new(vbox, FALSE, _("Size"), GTK_ORIENTATION_VERTICAL); | |
1388 | |
1389 pref_checkbox_new_int(group, _("Fit window to image when tools are hidden/floating"), | |
334 | 1390 options->image.fit_window_to_image, &c_options->image.fit_window_to_image); |
9 | 1391 |
1392 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); | |
1393 ct_button = pref_checkbox_new_int(hbox, _("Limit size when auto-sizing window (%):"), | |
334 | 1394 options->image.limit_window_size, &c_options->image.limit_window_size); |
9 | 1395 spin = pref_spin_new_int(hbox, NULL, NULL, |
1396 10, 150, 1, | |
334 | 1397 options->image.max_window_size, &c_options->image.max_window_size); |
9 | 1398 pref_checkbox_link_sensitivity(ct_button, spin); |
1510 | 1399 |
1400 group = pref_group_new(vbox, FALSE, _("Full screen"), GTK_ORIENTATION_VERTICAL); | |
1401 | |
1402 c_options->fullscreen.screen = options->fullscreen.screen; | |
1403 c_options->fullscreen.above = options->fullscreen.above; | |
1404 hbox = fullscreen_prefs_selection_new(_("Location:"), &c_options->fullscreen.screen, &c_options->fullscreen.above); | |
1405 gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0); | |
1406 gtk_widget_show(hbox); | |
1407 | |
1408 pref_checkbox_new_int(group, _("Smooth image flip"), | |
1409 options->fullscreen.clean_flip, &c_options->fullscreen.clean_flip); | |
1410 pref_checkbox_new_int(group, _("Disable screen saver"), | |
1411 options->fullscreen.disable_saver, &c_options->fullscreen.disable_saver); | |
1412 | |
1413 | |
1414 group = pref_group_new(vbox, FALSE, _("Overlay Screen Display"), GTK_ORIENTATION_VERTICAL); | |
1415 | |
1416 pref_label_new(group, _("Image overlay template")); | |
1417 | |
1418 scrolled = gtk_scrolled_window_new(NULL, NULL); | |
1419 gtk_widget_set_size_request(scrolled, 200, 150); | |
1420 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN); | |
1421 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), | |
1422 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
1423 gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 5); | |
1424 gtk_widget_show(scrolled); | |
1425 | |
1426 image_overlay_template_view = gtk_text_view_new(); | |
1427 | |
1428 #if GTK_CHECK_VERSION(2,12,0) | |
1429 gtk_widget_set_tooltip_markup(image_overlay_template_view, | |
1430 _("<i>%name%</i> results in the filename of the picture.\n" | |
1431 "Also available: <i>%collection%</i>, <i>%number%</i>, <i>%total%</i>, <i>%date%</i>,\n" | |
1432 "<i>%size%</i> (filesize), <i>%width%</i>, <i>%height%</i>, <i>%res%</i> (resolution)\n" | |
1433 "To access exif data use the exif name, e. g. <i>%formatted.Camera%</i> is the formatted camera name,\n" | |
1434 "<i>%Exif.Photo.DateTimeOriginal%</i> the date of the original shot.\n" | |
1435 "<i>%formatted.Camera:20</i> notation will truncate the displayed data to 20 characters and will add 3 dots at the end to denote the truncation.\n" | |
1436 "If two or more variables are connected with the |-sign, it prints available variables with a separator.\n" | |
1437 "<i>%formatted.ShutterSpeed%</i>|<i>%formatted.ISOSpeedRating%</i>|<i>%formatted.FocalLength%</i> could show \"1/20s - 400 - 80 mm\" or \"1/200 - 80 mm\",\n" | |
1438 "if there's no ISO information in the Exif data.\n" | |
1439 "If a line is empty, it is removed. This allows to add lines that totally disappear when no data is available.\n" | |
1440 )); | |
1441 #endif | |
1442 gtk_container_add(GTK_CONTAINER(scrolled), image_overlay_template_view); | |
1443 gtk_widget_show(image_overlay_template_view); | |
1444 | |
1445 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP); | |
1446 | |
1447 button = pref_button_new(NULL, NULL, _("Defaults"), FALSE, | |
1448 G_CALLBACK(image_overlay_default_template_cb), image_overlay_template_view); | |
1449 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1450 gtk_widget_show(button); | |
1451 | |
1452 button = pref_button_new(NULL, GTK_STOCK_HELP, NULL, FALSE, | |
1453 G_CALLBACK(image_overlay_help_cb), NULL); | |
1454 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1455 gtk_widget_show(button); | |
1456 | |
1457 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(image_overlay_template_view)); | |
1458 if (options->image_overlay.template_string) gtk_text_buffer_set_text(buffer, options->image_overlay.template_string, -1); | |
1459 g_signal_connect(G_OBJECT(buffer), "changed", | |
1460 G_CALLBACK(image_overlay_template_view_changed_cb), image_overlay_template_view); | |
1461 | |
1462 | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1463 } |
9 | 1464 |
1216 | 1465 static GtkTreeModel *create_class_model(void) |
1466 { | |
1467 GtkListStore *model; | |
1468 GtkTreeIter iter; | |
1469 gint i; | |
1470 | |
1471 /* create list store */ | |
1346
c9949c19a6d0
No space between function name and first parenthesis, it eases greping (see CODING).
zas_
parents:
1336
diff
changeset
|
1472 model = gtk_list_store_new(1, G_TYPE_STRING); |
1216 | 1473 for (i = 0; i < FILE_FORMAT_CLASSES; i++) |
1474 { | |
1346
c9949c19a6d0
No space between function name and first parenthesis, it eases greping (see CODING).
zas_
parents:
1336
diff
changeset
|
1475 gtk_list_store_append(model, &iter); |
1216 | 1476 gtk_list_store_set(model, &iter, 0, _(format_class_list[i]), -1); |
1477 } | |
1478 return GTK_TREE_MODEL (model); | |
1479 } | |
1480 | |
1481 | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1482 /* filtering tab */ |
1522 | 1483 static void config_tab_files(GtkWidget *notebook) |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1484 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1485 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1486 GtkWidget *frame; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1487 GtkWidget *vbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1488 GtkWidget *group; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1489 GtkWidget *button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1490 GtkWidget *ct_button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1491 GtkWidget *scrolled; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1492 GtkWidget *filter_view; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1493 GtkCellRenderer *renderer; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1494 GtkTreeSelection *selection; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1495 GtkTreeViewColumn *column; |
9 | 1496 |
1522 | 1497 vbox = scrolled_notebook_page(notebook, _("Files")); |
9 | 1498 |
1499 group = pref_box_new(vbox, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP); | |
1500 | |
356 | 1501 pref_checkbox_new_int(group, _("Show hidden files or folders"), |
1502 options->file_filter.show_hidden_files, &c_options->file_filter.show_hidden_files); | |
1522 | 1503 #if 0 |
373
61a3c8b05b24
Add a new option in Preferences > Filtering to allow the
zas_
parents:
356
diff
changeset
|
1504 pref_checkbox_new_int(group, _("Show dot directory"), |
61a3c8b05b24
Add a new option in Preferences > Filtering to allow the
zas_
parents:
356
diff
changeset
|
1505 options->file_filter.show_dot_directory, &c_options->file_filter.show_dot_directory); |
1522 | 1506 #endif |
9 | 1507 pref_checkbox_new_int(group, _("Case sensitive sort"), |
329 | 1508 options->file_sort.case_sensitive, &c_options->file_sort.case_sensitive); |
9 | 1509 |
1510 ct_button = pref_checkbox_new_int(group, _("Disable File Filtering"), | |
332 | 1511 options->file_filter.disable, &c_options->file_filter.disable); |
9 | 1512 |
170
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1513 |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1514 group = pref_group_new(vbox, FALSE, _("Grouping sidecar extensions"), GTK_ORIENTATION_VERTICAL); |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1515 |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1516 sidecar_ext_entry = gtk_entry_new(); |
1229
878718372aca
sidecar files grouping was made case-insensitive
nadvornik
parents:
1216
diff
changeset
|
1517 gtk_entry_set_text(GTK_ENTRY(sidecar_ext_entry), options->sidecar.ext); |
170
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1518 gtk_box_pack_start(GTK_BOX(group), sidecar_ext_entry, FALSE, FALSE, 0); |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1519 gtk_widget_show(sidecar_ext_entry); |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1520 |
9 | 1521 group = pref_group_new(vbox, TRUE, _("File types"), GTK_ORIENTATION_VERTICAL); |
1522 | |
1523 frame = pref_group_parent(group); | |
1524 g_signal_connect(G_OBJECT(ct_button), "toggled", | |
1525 G_CALLBACK(filter_disable_cb), frame); | |
332 | 1526 gtk_widget_set_sensitive(frame, !options->file_filter.disable); |
9 | 1527 |
1528 scrolled = gtk_scrolled_window_new(NULL, NULL); | |
1529 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN); | |
513
985fdfebd89e
Remove whitespace between function name and first parenthesis for the sake of consistency. (pass 2)
zas_
parents:
512
diff
changeset
|
1530 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
9 | 1531 gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 0); |
1532 gtk_widget_show(scrolled); | |
1533 | |
1534 filter_store = gtk_list_store_new(1, G_TYPE_POINTER); | |
1535 filter_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(filter_store)); | |
1536 g_object_unref(filter_store); | |
1537 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(filter_view)); | |
1538 gtk_tree_selection_set_mode(GTK_TREE_SELECTION(selection), GTK_SELECTION_SINGLE); | |
1539 | |
1540 gtk_tree_view_set_enable_search(GTK_TREE_VIEW(filter_view), FALSE); | |
1541 | |
1542 column = gtk_tree_view_column_new(); | |
1543 gtk_tree_view_column_set_title(column, _("Filter")); | |
1544 gtk_tree_view_column_set_resizable(column, TRUE); | |
1545 | |
1546 renderer = gtk_cell_renderer_toggle_new(); | |
1547 g_signal_connect(G_OBJECT(renderer), "toggled", | |
1548 G_CALLBACK(filter_store_enable_cb), filter_store); | |
1549 gtk_tree_view_column_pack_start(column, renderer, FALSE); | |
1550 gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func, | |
1551 GINT_TO_POINTER(FE_ENABLE), NULL); | |
442 | 1552 |
9 | 1553 renderer = gtk_cell_renderer_text_new(); |
1554 g_signal_connect(G_OBJECT(renderer), "edited", | |
1555 G_CALLBACK(filter_store_ext_edit_cb), filter_store); | |
1556 gtk_tree_view_column_pack_start(column, renderer, TRUE); | |
1557 g_object_set(G_OBJECT(renderer), "editable", (gboolean)TRUE, NULL); | |
1558 gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func, | |
1559 GINT_TO_POINTER(FE_EXTENSION), NULL); | |
1560 gtk_tree_view_append_column(GTK_TREE_VIEW(filter_view), column); | |
1561 | |
1562 column = gtk_tree_view_column_new(); | |
1563 gtk_tree_view_column_set_title(column, _("Description")); | |
1564 gtk_tree_view_column_set_resizable(column, TRUE); | |
1565 renderer = gtk_cell_renderer_text_new(); | |
1566 g_signal_connect(G_OBJECT(renderer), "edited", | |
1567 G_CALLBACK(filter_store_desc_edit_cb), filter_store); | |
1568 g_object_set(G_OBJECT(renderer), "editable", (gboolean)TRUE, NULL); | |
1569 gtk_tree_view_column_pack_start(column, renderer, FALSE); | |
1570 gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func, | |
1571 GINT_TO_POINTER(FE_DESCRIPTION), NULL); | |
1572 gtk_tree_view_append_column(GTK_TREE_VIEW(filter_view), column); | |
1573 | |
1216 | 1574 column = gtk_tree_view_column_new(); |
1575 gtk_tree_view_column_set_title(column, _("Class")); | |
1576 gtk_tree_view_column_set_resizable(column, TRUE); | |
1577 renderer = gtk_cell_renderer_combo_new(); | |
1578 g_object_set(G_OBJECT(renderer), "editable", (gboolean)TRUE, | |
1579 "model", create_class_model(), | |
1580 "text-column", 0, | |
1581 "has-entry", FALSE, | |
1582 NULL); | |
1583 | |
1584 g_signal_connect(G_OBJECT(renderer), "edited", | |
1585 G_CALLBACK(filter_store_class_edit_cb), filter_store); | |
1586 gtk_tree_view_column_pack_start(column, renderer, TRUE); | |
1587 gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func, | |
1588 GINT_TO_POINTER(FE_CLASS), NULL); | |
1589 gtk_tree_view_append_column(GTK_TREE_VIEW(filter_view), column); | |
1590 | |
1239
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1591 column = gtk_tree_view_column_new(); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1592 gtk_tree_view_column_set_title(column, _("Writable")); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1593 gtk_tree_view_column_set_resizable(column, FALSE); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1594 renderer = gtk_cell_renderer_toggle_new(); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1595 g_signal_connect(G_OBJECT(renderer), "toggled", |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1596 G_CALLBACK(filter_store_writable_cb), filter_store); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1597 gtk_tree_view_column_pack_start(column, renderer, FALSE); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1598 gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func, |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1599 GINT_TO_POINTER(FE_WRITABLE), NULL); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1600 gtk_tree_view_append_column(GTK_TREE_VIEW(filter_view), column); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1601 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1602 column = gtk_tree_view_column_new(); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1603 gtk_tree_view_column_set_title(column, _("Sidecar is allowed")); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1604 gtk_tree_view_column_set_resizable(column, FALSE); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1605 renderer = gtk_cell_renderer_toggle_new(); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1606 g_signal_connect(G_OBJECT(renderer), "toggled", |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1607 G_CALLBACK(filter_store_sidecar_cb), filter_store); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1608 gtk_tree_view_column_pack_start(column, renderer, FALSE); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1609 gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func, |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1610 GINT_TO_POINTER(FE_ALLOW_SIDECAR), NULL); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1611 gtk_tree_view_append_column(GTK_TREE_VIEW(filter_view), column); |
1216 | 1612 |
1613 | |
9 | 1614 filter_store_populate(); |
1615 gtk_container_add(GTK_CONTAINER(scrolled), filter_view); | |
1616 gtk_widget_show(filter_view); | |
1617 | |
1618 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP); | |
1619 | |
1620 button = pref_button_new(NULL, NULL, _("Defaults"), FALSE, | |
1621 G_CALLBACK(filter_default_cb), NULL); | |
1622 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1623 gtk_widget_show(button); | |
1624 | |
1625 button = pref_button_new(NULL, GTK_STOCK_REMOVE, NULL, FALSE, | |
1626 G_CALLBACK(filter_remove_cb), filter_view); | |
1627 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1628 gtk_widget_show(button); | |
1629 | |
1630 button = pref_button_new(NULL, GTK_STOCK_ADD, NULL, FALSE, | |
1631 G_CALLBACK(filter_add_cb), NULL); | |
1632 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1633 gtk_widget_show(button); | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1634 } |
1510 | 1635 |
1636 /* metadata tab */ | |
1637 static void config_tab_metadata(GtkWidget *notebook) | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1638 { |
1510 | 1639 GtkWidget *vbox; |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1640 GtkWidget *hbox; |
1510 | 1641 GtkWidget *group; |
1642 GtkWidget *ct_button; | |
1596
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1643 GtkWidget *label; |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1644 gchar *text; |
1510 | 1645 |
1646 vbox = scrolled_notebook_page(notebook, _("Metadata")); | |
1647 | |
1596
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1648 #ifndef HAVE_EXIV2 |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1649 gtk_widget_set_sensitive(vbox, FALSE); |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1650 #endif |
1510 | 1651 |
1596
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1652 group = pref_group_new(vbox, FALSE, _("Metadata writing process"), GTK_ORIENTATION_VERTICAL); |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1653 label = pref_label_new(group, _("Metadata are written in the following order. The process ends after first success.")); |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1654 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1655 |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1656 ct_button = pref_checkbox_new_int(group, _("1) Save metadata in image files, resp. sidecar files, according to the XMP standard"), |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1657 options->metadata.save_in_image_file, &c_options->metadata.save_in_image_file); |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1658 |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1659 pref_checkbox_new_int(group, _("2) Save metadata in '.metadata' folder, local to image folder (non-standard)"), |
1510 | 1660 options->metadata.enable_metadata_dirs, &c_options->metadata.enable_metadata_dirs); |
1661 | |
1596
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1662 text = g_strdup_printf(_("3) Save metadata in Geeqie private directory '%s'"), get_metadata_cache_dir()); |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1663 label = pref_label_new(group, text); |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1664 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1665 g_free(text); |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1666 |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1667 group = pref_group_new(vbox, FALSE, _("Step 1: Write to image files"), GTK_ORIENTATION_VERTICAL); |
1510 | 1668 |
1669 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_SPACE); | |
1670 pref_checkbox_link_sensitivity(ct_button, hbox); | |
1671 | |
1596
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1672 pref_checkbox_new_int(hbox, _("Store metadata also in legacy IPTC tags (converted according to IPTC4XMP standard)"), |
1510 | 1673 options->metadata.save_legacy_IPTC, &c_options->metadata.save_legacy_IPTC); |
1674 | |
1675 pref_checkbox_new_int(hbox, _("Warn if the image files are unwritable"), | |
1676 options->metadata.warn_on_write_problems, &c_options->metadata.warn_on_write_problems); | |
1677 | |
1678 pref_checkbox_new_int(hbox, _("Ask before writing to image files"), | |
1679 options->metadata.confirm_write, &c_options->metadata.confirm_write); | |
1680 | |
1596
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1681 group = pref_group_new(vbox, FALSE, _("Step 2 and 3: write to Geeqie private files"), GTK_ORIENTATION_VERTICAL); |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1682 |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1683 pref_checkbox_new_int(group, _("Use GQview legacy metadata format (supports only keywords and comments) instead of XMP"), |
1510 | 1684 options->metadata.save_legacy_format, &c_options->metadata.save_legacy_format); |
1685 | |
1596
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1686 |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1687 group = pref_group_new(vbox, FALSE, _("Miscellaneous"), GTK_ORIENTATION_VERTICAL); |
1663 | 1688 pref_checkbox_new_int(group, _("Write the same description tags (keywords, comment, etc.) to all grouped sidecars"), |
1510 | 1689 options->metadata.sync_grouped_files, &c_options->metadata.sync_grouped_files); |
1690 | |
1596
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1691 pref_checkbox_new_int(group, _("Allow keywords to differ only in case"), |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1692 options->metadata.keywords_case_sensitive, &c_options->metadata.keywords_case_sensitive); |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1693 |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1694 pref_checkbox_new_int(group, _("Write altered image orientation to the metadata"), |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1695 options->metadata.write_orientation, &c_options->metadata.write_orientation); |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1696 |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1697 group = pref_group_new(vbox, FALSE, _("Auto-save options"), GTK_ORIENTATION_VERTICAL); |
cc74cb8bbe3f
added some structure to the metadata preferences dialog
nadvornik
parents:
1590
diff
changeset
|
1698 |
1510 | 1699 ct_button = pref_checkbox_new_int(group, _("Write metadata after timeout"), |
1700 options->metadata.confirm_after_timeout, &c_options->metadata.confirm_after_timeout); | |
1701 | |
1702 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); | |
1703 pref_checkbox_link_sensitivity(ct_button, hbox); | |
1704 | |
1705 pref_spin_new_int(hbox, _("Timeout (seconds):"), NULL, 0, 900, 1, | |
1706 options->metadata.confirm_timeout, &c_options->metadata.confirm_timeout); | |
1707 | |
1708 pref_checkbox_new_int(group, _("Write metadata on image change"), | |
1709 options->metadata.confirm_on_image_change, &c_options->metadata.confirm_on_image_change); | |
1710 | |
1711 pref_checkbox_new_int(group, _("Write metadata on directory change"), | |
1712 options->metadata.confirm_on_dir_change, &c_options->metadata.confirm_on_dir_change); | |
1713 } | |
1714 | |
1715 /* metadata tab */ | |
1716 static void config_tab_color(GtkWidget *notebook) | |
1717 { | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1718 GtkWidget *label; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1719 GtkWidget *vbox; |
1510 | 1720 GtkWidget *group; |
1721 GtkWidget *tabcomp; | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1722 GtkWidget *table; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1723 gint i; |
9 | 1724 |
1522 | 1725 vbox = scrolled_notebook_page(notebook, _("Color management")); |
9 | 1726 |
1548 | 1727 group = pref_group_new(vbox, FALSE, _("Input profiles"), GTK_ORIENTATION_VERTICAL); |
1510 | 1728 #ifndef HAVE_LCMS |
1729 gtk_widget_set_sensitive(pref_group_parent(group), FALSE); | |
1730 #endif | |
1731 | |
1548 | 1732 table = pref_table_new(group, 3, COLOR_PROFILE_INPUTS + 1, FALSE, FALSE); |
9 | 1733 gtk_table_set_col_spacings(GTK_TABLE(table), PREF_PAD_GAP); |
1734 | |
1510 | 1735 label = pref_table_label(table, 0, 0, _("Type"), 0.0); |
9 | 1736 pref_label_bold(label, TRUE, FALSE); |
1737 | |
1738 label = pref_table_label(table, 1, 0, _("Menu name"), 0.0); | |
1739 pref_label_bold(label, TRUE, FALSE); | |
1740 | |
1510 | 1741 label = pref_table_label(table, 2, 0, _("File"), 0.0); |
9 | 1742 pref_label_bold(label, TRUE, FALSE); |
1743 | |
1510 | 1744 for (i = 0; i < COLOR_PROFILE_INPUTS; i++) |
9 | 1745 { |
224 | 1746 GtkWidget *entry; |
1510 | 1747 gchar *buf; |
442 | 1748 |
1625 | 1749 buf = g_strdup_printf(_("Input %d:"), i + COLOR_PROFILE_FILE); |
1510 | 1750 pref_table_label(table, 0, i + 1, buf, 1.0); |
1751 g_free(buf); | |
9 | 1752 |
224 | 1753 entry = gtk_entry_new(); |
1510 | 1754 gtk_entry_set_max_length(GTK_ENTRY(entry), EDITOR_NAME_MAX_LENGTH); |
1755 // gtk_widget_set_size_request(editor_name_entry[i], 30, -1); | |
1756 if (options->color_profile.input_name[i]) | |
1757 { | |
1758 gtk_entry_set_text(GTK_ENTRY(entry), options->color_profile.input_name[i]); | |
1759 } | |
1760 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, i + 1, i + 2, | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1761 GTK_FILL | GTK_EXPAND, 0, 0, 0); |
224 | 1762 gtk_widget_show(entry); |
1510 | 1763 color_profile_input_name_entry[i] = entry; |
1764 | |
1765 tabcomp = tab_completion_new(&entry, options->color_profile.input_file[i], NULL, NULL); | |
1766 tab_completion_add_select_button(entry, _("Select color profile"), FALSE); | |
1767 gtk_widget_set_size_request(entry, 160, -1); | |
1768 gtk_table_attach(GTK_TABLE(table), tabcomp, 2, 3, i + 1, i + 2, | |
1769 GTK_FILL | GTK_EXPAND, 0, 0, 0); | |
1770 gtk_widget_show(tabcomp); | |
1771 color_profile_input_file_entry[i] = entry; | |
9 | 1772 } |
1773 | |
1548 | 1774 group = pref_group_new(vbox, FALSE, _("Screen profile"), GTK_ORIENTATION_VERTICAL); |
1775 #ifndef HAVE_LCMS | |
1776 gtk_widget_set_sensitive(pref_group_parent(group), FALSE); | |
1777 #endif | |
1778 pref_checkbox_new_int(group, _("Use system screen profile if available"), | |
1779 options->color_profile.use_x11_screen_profile, &c_options->color_profile.use_x11_screen_profile); | |
1780 | |
1781 table = pref_table_new(group, 2, 1, FALSE, FALSE); | |
1782 | |
1783 pref_table_label(table, 0, 0, _("Screen:"), 1.0); | |
1510 | 1784 tabcomp = tab_completion_new(&color_profile_screen_file_entry, |
1785 options->color_profile.screen_file, NULL, NULL); | |
1786 tab_completion_add_select_button(color_profile_screen_file_entry, _("Select color profile"), FALSE); | |
1787 gtk_widget_set_size_request(color_profile_screen_file_entry, 160, -1); | |
1548 | 1788 gtk_table_attach(GTK_TABLE(table), tabcomp, 1, 2, |
1789 0, 1, | |
1510 | 1790 GTK_FILL | GTK_EXPAND, 0, 0, 0); |
1791 gtk_widget_show(tabcomp); | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1792 } |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1793 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1794 /* advanced entry tab */ |
1510 | 1795 static void config_tab_behavior(GtkWidget *notebook) |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1796 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1797 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1798 GtkWidget *vbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1799 GtkWidget *group; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1800 GtkWidget *button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1801 GtkWidget *tabcomp; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1802 GtkWidget *ct_button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1803 GtkWidget *spin; |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1804 |
1510 | 1805 vbox = scrolled_notebook_page(notebook, _("Behavior")); |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1806 |
1532 | 1807 group = pref_group_new(vbox, FALSE, pgettext("physical","Delete"), GTK_ORIENTATION_VERTICAL); |
9 | 1808 |
1809 pref_checkbox_new_int(group, _("Confirm file delete"), | |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
339
diff
changeset
|
1810 options->file_ops.confirm_delete, &c_options->file_ops.confirm_delete); |
9 | 1811 pref_checkbox_new_int(group, _("Enable Delete key"), |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
339
diff
changeset
|
1812 options->file_ops.enable_delete_key, &c_options->file_ops.enable_delete_key); |
9 | 1813 |
1814 ct_button = pref_checkbox_new_int(group, _("Safe delete"), | |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
339
diff
changeset
|
1815 options->file_ops.safe_delete_enable, &c_options->file_ops.safe_delete_enable); |
9 | 1816 |
1817 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); | |
1818 pref_checkbox_link_sensitivity(ct_button, hbox); | |
1819 | |
1820 pref_spacer(hbox, PREF_PAD_INDENT - PREF_PAD_SPACE); | |
1821 pref_label_new(hbox, _("Folder:")); | |
1822 | |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
339
diff
changeset
|
1823 tabcomp = tab_completion_new(&safe_delete_path_entry, options->file_ops.safe_delete_path, NULL, NULL); |
9 | 1824 tab_completion_add_select_button(safe_delete_path_entry, NULL, TRUE); |
1825 gtk_box_pack_start(GTK_BOX(hbox), tabcomp, TRUE, TRUE, 0); | |
1826 gtk_widget_show(tabcomp); | |
1827 | |
1828 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP); | |
1829 pref_checkbox_link_sensitivity(ct_button, hbox); | |
1830 | |
1831 pref_spacer(hbox, PREF_PAD_INDENT - PREF_PAD_GAP); | |
223
73efc1ba150f
Setting no limit size to trash directory is now possible using zero as value.
zas_
parents:
222
diff
changeset
|
1832 spin = pref_spin_new_int(hbox, _("Maximum size:"), _("MB"), |
442 | 1833 0, 2048, 1, options->file_ops.safe_delete_folder_maxsize, &c_options->file_ops.safe_delete_folder_maxsize); |
267
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
257
diff
changeset
|
1834 #if GTK_CHECK_VERSION(2,12,0) |
223
73efc1ba150f
Setting no limit size to trash directory is now possible using zero as value.
zas_
parents:
222
diff
changeset
|
1835 gtk_widget_set_tooltip_markup(spin, _("Set to 0 for unlimited size")); |
267
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
257
diff
changeset
|
1836 #endif |
9 | 1837 button = pref_button_new(NULL, NULL, _("View"), FALSE, |
1838 G_CALLBACK(safe_delete_view_cb), NULL); | |
1839 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1840 gtk_widget_show(button); | |
1841 | |
1842 button = pref_button_new(NULL, GTK_STOCK_CLEAR, NULL, FALSE, | |
1843 G_CALLBACK(safe_delete_clear_cb), NULL); | |
1844 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1845 gtk_widget_show(button); | |
1846 | |
497 | 1847 |
9 | 1848 group = pref_group_new(vbox, FALSE, _("Behavior"), GTK_ORIENTATION_VERTICAL); |
1849 | |
1850 pref_checkbox_new_int(group, _("Rectangular selection in icon view"), | |
330 | 1851 options->collections.rectangular_selection, &c_options->collections.rectangular_selection); |
9 | 1852 |
1853 pref_checkbox_new_int(group, _("Descend folders in tree view"), | |
321 | 1854 options->tree_descend_subdirs, &c_options->tree_descend_subdirs); |
9 | 1855 |
1856 pref_checkbox_new_int(group, _("In place renaming"), | |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
339
diff
changeset
|
1857 options->file_ops.enable_in_place_rename, &c_options->file_ops.enable_in_place_rename); |
9 | 1858 |
441
08eb7137cd94
Allow the user to change open_recent_list_maxsize option through
zas_
parents:
426
diff
changeset
|
1859 pref_spin_new_int(group, _("Open recent list maximum size"), NULL, |
08eb7137cd94
Allow the user to change open_recent_list_maxsize option through
zas_
parents:
426
diff
changeset
|
1860 1, 50, 1, options->open_recent_list_maxsize, &c_options->open_recent_list_maxsize); |
458
7a69309b91c8
Allow the user to set the drag'n drop icon size through
zas_
parents:
446
diff
changeset
|
1861 |
7a69309b91c8
Allow the user to set the drag'n drop icon size through
zas_
parents:
446
diff
changeset
|
1862 pref_spin_new_int(group, _("Drag'n drop icon size"), NULL, |
7a69309b91c8
Allow the user to set the drag'n drop icon size through
zas_
parents:
446
diff
changeset
|
1863 16, 256, 16, options->dnd_icon_size, &c_options->dnd_icon_size); |
441
08eb7137cd94
Allow the user to change open_recent_list_maxsize option through
zas_
parents:
426
diff
changeset
|
1864 |
9 | 1865 group = pref_group_new(vbox, FALSE, _("Navigation"), GTK_ORIENTATION_VERTICAL); |
1866 | |
1867 pref_checkbox_new_int(group, _("Progressive keyboard scrolling"), | |
321 | 1868 options->progressive_key_scrolling, &c_options->progressive_key_scrolling); |
9 | 1869 pref_checkbox_new_int(group, _("Mouse wheel scrolls image"), |
321 | 1870 options->mousewheel_scrolls, &c_options->mousewheel_scrolls); |
9 | 1871 |
1213 | 1872 group = pref_group_new(vbox, FALSE, _("Miscellaneous"), GTK_ORIENTATION_VERTICAL); |
1873 | |
9 | 1874 pref_spin_new_int(group, _("Custom similarity threshold:"), NULL, |
1188 | 1875 0, 100, 1, options->duplicates_similarity_threshold, (int *)&c_options->duplicates_similarity_threshold); |
9 | 1876 |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1877 |
227
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1878 #ifdef DEBUG |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1879 group = pref_group_new(vbox, FALSE, _("Debugging"), GTK_ORIENTATION_VERTICAL); |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1880 |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1881 pref_spin_new_int(group, _("Debug level:"), NULL, |
507 | 1882 DEBUG_LEVEL_MIN, DEBUG_LEVEL_MAX, 1, get_debug_level(), &debug_c); |
227
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1883 #endif |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1884 } |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1885 |
1601 | 1886 /* accelerators tab */ |
1887 static void config_tab_accelerators(GtkWidget *notebook) | |
1888 { | |
1606 | 1889 #if GTK_CHECK_VERSION(2, 10, 0) |
1601 | 1890 GtkWidget *hbox; |
1891 GtkWidget *vbox; | |
1892 GtkWidget *group; | |
1893 GtkWidget *button; | |
1894 GtkWidget *scrolled; | |
1895 GtkWidget *accel_view; | |
1896 GtkCellRenderer *renderer; | |
1897 GtkTreeSelection *selection; | |
1898 GtkTreeViewColumn *column; | |
1899 | |
1900 vbox = scrolled_notebook_page(notebook, _("Keyboard")); | |
1901 | |
1902 group = pref_group_new(vbox, TRUE, _("Accelerators"), GTK_ORIENTATION_VERTICAL); | |
1903 | |
1904 scrolled = gtk_scrolled_window_new(NULL, NULL); | |
1905 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN); | |
1906 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); | |
1907 gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 0); | |
1908 gtk_widget_show(scrolled); | |
1909 | |
1910 accel_store = gtk_tree_store_new(4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); | |
1911 | |
1912 accel_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(accel_store)); | |
1913 g_object_unref(accel_store); | |
1914 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(accel_view)); | |
1915 gtk_tree_selection_set_mode(GTK_TREE_SELECTION(selection), GTK_SELECTION_MULTIPLE); | |
1916 | |
1917 gtk_tree_view_set_enable_search(GTK_TREE_VIEW(accel_view), FALSE); | |
1918 | |
1919 renderer = gtk_cell_renderer_text_new(); | |
1920 | |
1921 column = gtk_tree_view_column_new_with_attributes(_("Action"), | |
1922 renderer, | |
1923 "text", AE_ACTION, | |
1924 NULL); | |
1925 | |
1926 gtk_tree_view_column_set_sort_column_id(column, AE_ACTION); | |
1927 gtk_tree_view_column_set_resizable(column, TRUE); | |
1928 gtk_tree_view_append_column(GTK_TREE_VIEW(accel_view), column); | |
1929 | |
1930 | |
1931 renderer = gtk_cell_renderer_accel_new(); | |
1932 g_signal_connect(G_OBJECT(renderer), "accel-cleared", | |
1933 G_CALLBACK(accel_store_cleared_cb), accel_store); | |
1934 g_signal_connect(G_OBJECT(renderer), "accel-edited", | |
1935 G_CALLBACK(accel_store_edited_cb), accel_store); | |
1936 | |
1937 | |
1938 g_object_set (renderer, | |
1939 "editable", TRUE, | |
1940 "accel-mode", GTK_CELL_RENDERER_ACCEL_MODE_OTHER, | |
1941 NULL); | |
1942 | |
1943 column = gtk_tree_view_column_new_with_attributes(_("KEY"), | |
1944 renderer, | |
1945 "text", AE_KEY, | |
1946 NULL); | |
1947 | |
1948 gtk_tree_view_column_set_sort_column_id(column, AE_KEY); | |
1949 gtk_tree_view_column_set_resizable(column, TRUE); | |
1950 gtk_tree_view_append_column(GTK_TREE_VIEW(accel_view), column); | |
1951 | |
1952 renderer = gtk_cell_renderer_text_new(); | |
1953 | |
1954 column = gtk_tree_view_column_new_with_attributes(_("Tooltip"), | |
1955 renderer, | |
1956 "text", AE_TOOLTIP, | |
1957 NULL); | |
1958 | |
1959 gtk_tree_view_column_set_sort_column_id(column, AE_TOOLTIP); | |
1960 gtk_tree_view_column_set_resizable(column, TRUE); | |
1961 gtk_tree_view_append_column(GTK_TREE_VIEW(accel_view), column); | |
1962 | |
1963 renderer = gtk_cell_renderer_text_new(); | |
1964 | |
1965 column = gtk_tree_view_column_new_with_attributes("Accel", | |
1966 renderer, | |
1967 "text", AE_ACCEL, | |
1968 NULL); | |
1969 | |
1970 gtk_tree_view_column_set_sort_column_id(column, AE_ACCEL); | |
1971 gtk_tree_view_column_set_resizable(column, TRUE); | |
1972 gtk_tree_view_append_column(GTK_TREE_VIEW(accel_view), column); | |
1973 | |
1974 accel_store_populate(); | |
1975 gtk_container_add(GTK_CONTAINER(scrolled), accel_view); | |
1976 gtk_widget_show(accel_view); | |
1977 | |
1978 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP); | |
1979 | |
1980 button = pref_button_new(NULL, NULL, _("Defaults"), FALSE, | |
1981 G_CALLBACK(accel_default_cb), NULL); | |
1982 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1983 gtk_widget_show(button); | |
1984 | |
1985 #if 0 | |
1986 button = pref_button_new(NULL, GTK_STOCK_REMOVE, NULL, FALSE, | |
1987 G_CALLBACK(accel_remove_cb), accel_view); | |
1988 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1989 gtk_widget_show(button); | |
1990 #endif | |
1991 | |
1992 button = pref_button_new(NULL, NULL, _("Reset selected"), FALSE, | |
1993 G_CALLBACK(accel_reset_cb), accel_view); | |
1994 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1995 gtk_widget_show(button); | |
1996 | |
1997 #if 0 | |
1998 button = pref_button_new(NULL, _("Add Alt"), NULL, FALSE, | |
1999 G_CALLBACK(accel_add_alt_cb), accel_view); | |
2000 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
2001 gtk_widget_show(button); | |
2002 #endif | |
1606 | 2003 #endif |
1601 | 2004 } |
2005 | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2006 /* Main preferences window */ |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2007 static void config_window_create(void) |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2008 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2009 GtkWidget *win_vbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2010 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2011 GtkWidget *notebook; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2012 GtkWidget *button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2013 GtkWidget *ct_button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2014 |
321 | 2015 if (!c_options) c_options = init_options(NULL); |
318 | 2016 |
289
6a7298988a7a
Simplify and unify gtk_window creation with the help of
zas_
parents:
288
diff
changeset
|
2017 configwindow = window_new(GTK_WINDOW_TOPLEVEL, "preferences", PIXBUF_INLINE_ICON_CONFIG, NULL, _("Preferences")); |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2018 gtk_window_set_type_hint(GTK_WINDOW(configwindow), GDK_WINDOW_TYPE_HINT_DIALOG); |
513
985fdfebd89e
Remove whitespace between function name and first parenthesis for the sake of consistency. (pass 2)
zas_
parents:
512
diff
changeset
|
2019 g_signal_connect(G_OBJECT(configwindow), "delete_event", |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2020 G_CALLBACK(config_window_delete), NULL); |
442 | 2021 gtk_window_set_default_size(GTK_WINDOW(configwindow), CONFIG_WINDOW_DEF_WIDTH, CONFIG_WINDOW_DEF_HEIGHT); |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2022 gtk_window_set_resizable(GTK_WINDOW(configwindow), TRUE); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2023 gtk_container_set_border_width(GTK_CONTAINER(configwindow), PREF_PAD_BORDER); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2024 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2025 win_vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2026 gtk_container_add(GTK_CONTAINER(configwindow), win_vbox); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2027 gtk_widget_show(win_vbox); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2028 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2029 hbox = gtk_hbutton_box_new(); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2030 gtk_button_box_set_layout(GTK_BUTTON_BOX(hbox), GTK_BUTTONBOX_END); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2031 gtk_box_set_spacing(GTK_BOX(hbox), PREF_PAD_BUTTON_GAP); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2032 gtk_box_pack_end(GTK_BOX(win_vbox), hbox, FALSE, FALSE, 0); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2033 gtk_widget_show(hbox); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2034 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2035 button = pref_button_new(NULL, GTK_STOCK_OK, NULL, FALSE, |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2036 G_CALLBACK(config_window_ok_cb), NULL); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2037 gtk_container_add(GTK_CONTAINER(hbox), button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2038 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2039 gtk_widget_grab_default(button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2040 gtk_widget_show(button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2041 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2042 ct_button = button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2043 |
1024
c92e5a5c3bfa
Add a Save button to Preferences dialog, which allow to save options to file without quitting the application.
zas_
parents:
1001
diff
changeset
|
2044 button = pref_button_new(NULL, GTK_STOCK_SAVE, NULL, FALSE, |
c92e5a5c3bfa
Add a Save button to Preferences dialog, which allow to save options to file without quitting the application.
zas_
parents:
1001
diff
changeset
|
2045 G_CALLBACK(config_window_save_cb), NULL); |
c92e5a5c3bfa
Add a Save button to Preferences dialog, which allow to save options to file without quitting the application.
zas_
parents:
1001
diff
changeset
|
2046 gtk_container_add(GTK_CONTAINER(hbox), button); |
c92e5a5c3bfa
Add a Save button to Preferences dialog, which allow to save options to file without quitting the application.
zas_
parents:
1001
diff
changeset
|
2047 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); |
c92e5a5c3bfa
Add a Save button to Preferences dialog, which allow to save options to file without quitting the application.
zas_
parents:
1001
diff
changeset
|
2048 gtk_widget_show(button); |
c92e5a5c3bfa
Add a Save button to Preferences dialog, which allow to save options to file without quitting the application.
zas_
parents:
1001
diff
changeset
|
2049 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2050 button = pref_button_new(NULL, GTK_STOCK_APPLY, NULL, FALSE, |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2051 G_CALLBACK(config_window_apply_cb), NULL); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2052 gtk_container_add(GTK_CONTAINER(hbox), button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2053 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2054 gtk_widget_show(button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2055 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2056 button = pref_button_new(NULL, GTK_STOCK_CANCEL, NULL, FALSE, |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2057 G_CALLBACK(config_window_close_cb), NULL); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2058 gtk_container_add(GTK_CONTAINER(hbox), button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2059 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2060 gtk_widget_show(button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2061 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2062 if (!generic_dialog_get_alternative_button_order(configwindow)) |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2063 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2064 gtk_box_reorder_child(GTK_BOX(hbox), ct_button, -1); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2065 } |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2066 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2067 notebook = gtk_notebook_new(); |
512
f9bf33be53ff
Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents:
507
diff
changeset
|
2068 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_TOP); |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2069 gtk_box_pack_start(GTK_BOX(win_vbox), notebook, TRUE, TRUE, 0); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2070 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2071 config_tab_general(notebook); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2072 config_tab_image(notebook); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
2073 config_tab_windows(notebook); |
1601 | 2074 config_tab_accelerators(notebook); |
1522 | 2075 config_tab_files(notebook); |
1510 | 2076 config_tab_metadata(notebook); |
2077 config_tab_color(notebook); | |
2078 config_tab_behavior(notebook); | |
227
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
2079 |
9 | 2080 gtk_widget_show(notebook); |
2081 | |
2082 gtk_widget_show(configwindow); | |
2083 } | |
2084 | |
2085 /* | |
2086 *----------------------------------------------------------------------------- | |
2087 * config window show (public) | |
2088 *----------------------------------------------------------------------------- | |
442 | 2089 */ |
9 | 2090 |
2091 void show_config_window(void) | |
2092 { | |
2093 if (configwindow) | |
2094 { | |
2095 gtk_window_present(GTK_WINDOW(configwindow)); | |
2096 return; | |
2097 } | |
2098 | |
2099 config_window_create(); | |
2100 } | |
2101 | |
2102 /* | |
2103 *----------------- | |
2104 * about window | |
2105 *----------------- | |
2106 */ | |
2107 | |
2108 static GtkWidget *about = NULL; | |
2109 | |
1443 | 2110 static gboolean about_delete_cb(GtkWidget *widget, GdkEventAny *event, gpointer data) |
9 | 2111 { |
2112 gtk_widget_destroy(about); | |
2113 about = NULL; | |
2114 | |
2115 return TRUE; | |
2116 } | |
2117 | |
2118 static void about_window_close(GtkWidget *widget, gpointer data) | |
2119 { | |
2120 if (!about) return; | |
2121 | |
2122 gtk_widget_destroy(about); | |
2123 about = NULL; | |
2124 } | |
2125 | |
2126 static void about_credits_cb(GtkWidget *widget, gpointer data) | |
2127 { | |
2128 help_window_show("credits"); | |
2129 } | |
2130 | |
2131 void show_about_window(void) | |
2132 { | |
2133 GtkWidget *vbox; | |
2134 GtkWidget *hbox; | |
2135 GtkWidget *label; | |
2136 GtkWidget *button; | |
2137 GdkPixbuf *pixbuf; | |
2138 | |
2139 gchar *buf; | |
2140 | |
2141 if (about) | |
2142 { | |
2143 gtk_window_present(GTK_WINDOW(about)); | |
2144 return; | |
2145 } | |
2146 | |
289
6a7298988a7a
Simplify and unify gtk_window creation with the help of
zas_
parents:
288
diff
changeset
|
2147 about = window_new(GTK_WINDOW_TOPLEVEL, "about", NULL, NULL, _("About")); |
9 | 2148 gtk_window_set_type_hint(GTK_WINDOW(about), GDK_WINDOW_TYPE_HINT_DIALOG); |
2149 g_signal_connect(G_OBJECT(about), "delete_event", | |
2150 G_CALLBACK(about_delete_cb), NULL); | |
2151 | |
2152 gtk_container_set_border_width(GTK_CONTAINER(about), PREF_PAD_BORDER); | |
2153 | |
2154 vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE); | |
2155 gtk_container_add(GTK_CONTAINER(about), vbox); | |
2156 gtk_widget_show(vbox); | |
2157 | |
2158 pixbuf = pixbuf_inline(PIXBUF_INLINE_LOGO); | |
2159 button = gtk_image_new_from_pixbuf(pixbuf); | |
2160 g_object_unref(pixbuf); | |
2161 gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, TRUE, 0); | |
2162 gtk_widget_show(button); | |
2163 | |
475 | 2164 buf = g_strdup_printf(_("%s %s\n\nCopyright (c) 2006 John Ellis\nCopyright (c) %s The Geeqie Team\nwebsite: %s\nemail: %s\n\nReleased under the GNU General Public License"), |
288
d1f74154463e
Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents:
283
diff
changeset
|
2165 GQ_APPNAME, |
9 | 2166 VERSION, |
1284 | 2167 "2008 - 2009", |
288
d1f74154463e
Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents:
283
diff
changeset
|
2168 GQ_WEBSITE, |
d1f74154463e
Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents:
283
diff
changeset
|
2169 GQ_EMAIL_ADDRESS); |
9 | 2170 label = gtk_label_new(buf); |
2171 g_free(buf); | |
2172 | |
2173 gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER); | |
2174 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); | |
2175 gtk_widget_show(label); | |
2176 | |
2177 hbox = gtk_hbutton_box_new(); | |
2178 gtk_button_box_set_layout(GTK_BUTTON_BOX(hbox), GTK_BUTTONBOX_END); | |
2179 gtk_box_set_spacing(GTK_BOX(hbox), PREF_PAD_BUTTON_GAP); | |
2180 gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
2181 gtk_widget_show(hbox); | |
2182 | |
2183 button = pref_button_new(NULL, NULL, _("Credits..."), FALSE, | |
2184 G_CALLBACK(about_credits_cb), NULL); | |
2185 gtk_container_add(GTK_CONTAINER(hbox), button); | |
2186 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); | |
2187 gtk_widget_show(button); | |
2188 | |
2189 button = pref_button_new(NULL, GTK_STOCK_CLOSE, NULL, FALSE, | |
2190 G_CALLBACK(about_window_close), NULL); | |
2191 gtk_container_add(GTK_CONTAINER(hbox), button); | |
2192 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); | |
2193 gtk_widget_grab_default(button); | |
2194 gtk_widget_show(button); | |
2195 | |
2196 gtk_widget_show(about); | |
2197 } | |
1055
1646720364cf
Adding a vim modeline to all files - patch by Klaus Ethgen
nadvornik
parents:
1053
diff
changeset
|
2198 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ |