Mercurial > geeqie.yaz
annotate src/preferences.c @ 1532:fffb62c7ba1e
Add pgettext for some ambiguous strings
There are some strings which are ambiguous to translate. There is the
pgettext function to solf that problem.
For example, locations can be translated to german by Ortsangaben
(geographical) or by Pfad (filesystem). I am sure there are also some
ambiguous in other languages.
author | mow |
---|---|
date | Fri, 10 Apr 2009 09:47:20 +0000 |
parents | d7206703d90f |
children | 286ed7c6cae6 |
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" |
9 | 18 #include "cache_maint.h" |
19 #include "editors.h" | |
648
e34c1002e553
Move some functions from main.[ch] to new window.[ch].
zas_
parents:
630
diff
changeset
|
20 #include "exif.h" |
586 | 21 #include "filedata.h" |
22 #include "filefilter.h" | |
9 | 23 #include "fullscreen.h" |
26
acd9885ebd78
Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
gqview
parents:
15
diff
changeset
|
24 #include "image.h" |
469
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
25 #include "image-overlay.h" |
426
9fe0ca1b5263
show the AdobeRGB profile in the menu, indicate input profile from image
nadvornik
parents:
413
diff
changeset
|
26 #include "color-man.h" |
9 | 27 #include "img-view.h" |
28 #include "layout_config.h" | |
29 #include "layout_util.h" | |
30 #include "pixbuf_util.h" | |
31 #include "slideshow.h" | |
597 | 32 #include "trash.h" |
9 | 33 #include "utilops.h" |
34 #include "ui_fileops.h" | |
35 #include "ui_misc.h" | |
36 #include "ui_tabcomp.h" | |
37 #include "ui_utildlg.h" | |
648
e34c1002e553
Move some functions from main.[ch] to new window.[ch].
zas_
parents:
630
diff
changeset
|
38 #include "window.h" |
9 | 39 |
40 #include <math.h> | |
41 | |
42 | |
43 #define EDITOR_NAME_MAX_LENGTH 32 | |
44 #define EDITOR_COMMAND_MAX_LENGTH 1024 | |
45 | |
46 | |
47 typedef struct _ThumbSize ThumbSize; | |
48 struct _ThumbSize | |
49 { | |
50 gint w; | |
51 gint h; | |
52 }; | |
53 | |
54 static ThumbSize thumb_size_list[] = | |
55 { | |
56 { 24, 24 }, | |
57 { 32, 32 }, | |
58 { 48, 48 }, | |
59 { 64, 64 }, | |
60 { 96, 72 }, | |
61 { 96, 96 }, | |
62 { 128, 96 }, | |
63 { 128, 128 }, | |
64 { 160, 120 }, | |
65 { 160, 160 }, | |
66 { 192, 144 }, | |
67 { 192, 192 }, | |
68 { 256, 192 }, | |
69 { 256, 256 } | |
70 }; | |
71 | |
72 enum { | |
73 FE_ENABLE, | |
74 FE_EXTENSION, | |
1216 | 75 FE_DESCRIPTION, |
1239
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
76 FE_CLASS, |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
77 FE_WRITABLE, |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
78 FE_ALLOW_SIDECAR |
9 | 79 }; |
80 | |
1216 | 81 |
82 static gchar *format_class_list[] = { | |
83 N_("Unknown"), | |
84 N_("Image"), | |
85 N_("RAW Image"), | |
86 N_("Metadata") | |
87 }; | |
88 | |
89 | |
9 | 90 /* config memory values */ |
321 | 91 static ConfOptions *c_options = NULL; |
9 | 92 |
93 | |
227
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
94 #ifdef DEBUG |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
95 static gint debug_c; |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
96 #endif |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
97 |
9 | 98 static GtkWidget *configwindow = NULL; |
99 static GtkListStore *filter_store = NULL; | |
100 | |
101 static GtkWidget *safe_delete_path_entry; | |
102 | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
103 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
|
104 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
|
105 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
|
106 |
170
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
107 static GtkWidget *sidecar_ext_entry; |
225
649f7cb544e0
Make the preferences window resizeable, and try to improve
zas_
parents:
224
diff
changeset
|
108 |
649f7cb544e0
Make the preferences window resizeable, and try to improve
zas_
parents:
224
diff
changeset
|
109 |
649f7cb544e0
Make the preferences window resizeable, and try to improve
zas_
parents:
224
diff
changeset
|
110 #define CONFIG_WINDOW_DEF_WIDTH 700 |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
111 #define CONFIG_WINDOW_DEF_HEIGHT 600 |
225
649f7cb544e0
Make the preferences window resizeable, and try to improve
zas_
parents:
224
diff
changeset
|
112 |
9 | 113 /* |
114 *----------------------------------------------------------------------------- | |
115 * option widget callbacks (private) | |
116 *----------------------------------------------------------------------------- | |
442 | 117 */ |
9 | 118 |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
119 static void zoom_mode_cb(GtkWidget *widget, gpointer data) |
9 | 120 { |
121 if (GTK_TOGGLE_BUTTON (widget)->active) | |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
122 c_options->image.zoom_mode = GPOINTER_TO_INT(data); |
9 | 123 } |
124 | |
1038
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
125 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
|
126 { |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
127 if (GTK_TOGGLE_BUTTON (widget)->active) |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
128 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
|
129 } |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
130 |
9 | 131 static void zoom_increment_cb(GtkWidget *spin, gpointer data) |
132 { | |
334 | 133 c_options->image.zoom_increment = (gint)(gtk_spin_button_get_value(GTK_SPIN_BUTTON(spin)) * 10.0 + 0.01); |
9 | 134 } |
135 | |
136 static void slideshow_delay_cb(GtkWidget *spin, gpointer data) | |
137 { | |
326 | 138 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
|
139 (gdouble)SLIDESHOW_SUBSECOND_PRECISION + 0.01); |
9 | 140 } |
141 | |
142 /* | |
143 *----------------------------------------------------------------------------- | |
144 * sync progam to config window routine (private) | |
145 *----------------------------------------------------------------------------- | |
442 | 146 */ |
9 | 147 |
1436
d7a6fb7a90dd
completely separated global and layout window options
nadvornik
parents:
1400
diff
changeset
|
148 void config_entry_to_option(GtkWidget *entry, gchar **option, gchar *(*func)(const gchar *)) |
9 | 149 { |
150 const gchar *buf; | |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
151 |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
152 g_free(*option); |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
153 *option = NULL; |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
154 buf = gtk_entry_get_text(GTK_ENTRY(entry)); |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
155 if (buf && strlen(buf) > 0) |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
156 { |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
157 if (func) |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
158 *option = func(buf); |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
159 else |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
160 *option = g_strdup(buf); |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
161 } |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
162 } |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
163 |
1272 | 164 #if 0 |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
165 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
|
166 { |
9 | 167 gint i; |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
168 const gchar *buf; |
670 | 169 GString *errmsg = g_string_new(""); |
170 | |
517 | 171 for (i = 0; i < GQ_EDITOR_SLOTS; i++) |
9 | 172 { |
768
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
173 gchar *command = NULL; |
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
174 |
283 | 175 if (i < GQ_EDITOR_GENERIC_SLOTS) |
134
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
176 { |
768
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
177 gchar *name = NULL; |
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
178 |
134
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
179 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
|
180 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
|
181 editor_set_name(i, name); |
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
182 g_free(name); |
134
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
183 } |
9 | 184 |
185 buf = gtk_entry_get_text(GTK_ENTRY(editor_command_entry[i])); | |
670 | 186 if (buf && strlen(buf) > 0) |
187 { | |
188 gint flags = editor_command_parse(buf, NULL, NULL); | |
189 | |
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
|
190 if (EDITOR_ERRORS(flags)) |
670 | 191 { |
192 if (errmsg->str[0]) g_string_append(errmsg, "\n\n"); | |
193 g_string_append_printf(errmsg, _("%s\n#%d \"%s\":\n%s"), editor_get_error_str(flags), | |
730 | 194 i+1, options->editor[i].name, buf); |
670 | 195 |
196 } | |
768
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
197 command = g_strdup(buf); |
670 | 198 } |
768
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
199 |
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
200 editor_set_command(i, command); |
ff51413f098d
Use functions to set editors name and command and ensure they are
zas_
parents:
736
diff
changeset
|
201 g_free(command); |
9 | 202 } |
670 | 203 |
204 if (errmsg->str[0]) | |
205 { | |
206 file_util_warning_dialog(_("Invalid editor command"), errmsg->str, GTK_STOCK_DIALOG_ERROR, NULL); | |
207 } | |
208 | |
209 g_string_free(errmsg, TRUE); | |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
210 } |
1272 | 211 #endif |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
212 |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
213 static void config_window_apply(void) |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
214 { |
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
215 gint i; |
1437 | 216 gboolean refresh = FALSE; |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
217 |
1272 | 218 // config_parse_editor_entries(editor_name_entry, editor_command_entry); |
219 // layout_edit_update_all(); | |
9 | 220 |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
221 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
|
222 |
356 | 223 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
|
224 if (options->file_filter.show_dot_directory != c_options->file_filter.show_dot_directory) refresh = TRUE; |
329 | 225 if (options->file_sort.case_sensitive != c_options->file_sort.case_sensitive) refresh = TRUE; |
332 | 226 if (options->file_filter.disable != c_options->file_filter.disable) refresh = TRUE; |
9 | 227 |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
339
diff
changeset
|
228 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
|
229 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
|
230 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
|
231 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
|
232 options->tools_restore_state = c_options->tools_restore_state; |
d7a6fb7a90dd
completely separated global and layout window options
nadvornik
parents:
1400
diff
changeset
|
233 options->save_window_positions = c_options->save_window_positions; |
334 | 234 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
|
235 options->image.scroll_reset_method = c_options->image.scroll_reset_method; |
334 | 236 options->image.zoom_2pass = c_options->image.zoom_2pass; |
237 options->image.fit_window_to_image = c_options->image.fit_window_to_image; | |
238 options->image.limit_window_size = c_options->image.limit_window_size; | |
239 options->image.zoom_to_fit_allow_expand = c_options->image.zoom_to_fit_allow_expand; | |
240 options->image.max_window_size = c_options->image.max_window_size; | |
241 options->image.limit_autofit_size = c_options->image.limit_autofit_size; | |
242 options->image.max_autofit_size = c_options->image.max_autofit_size; | |
321 | 243 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
|
244 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
|
245 || 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
|
246 || options->thumbnails.quality != c_options->thumbnails.quality) |
d352a44545a6
Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents:
1443
diff
changeset
|
247 { |
d352a44545a6
Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents:
1443
diff
changeset
|
248 thumb_format_changed = TRUE; |
d352a44545a6
Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents:
1443
diff
changeset
|
249 refresh = TRUE; |
d352a44545a6
Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents:
1443
diff
changeset
|
250 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
|
251 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
|
252 options->thumbnails.quality = c_options->thumbnails.quality; |
d352a44545a6
Force thumbnails refreshing when thumbnails dimensions are modified through Preferences.
zas_
parents:
1443
diff
changeset
|
253 } |
333 | 254 options->thumbnails.enable_caching = c_options->thumbnails.enable_caching; |
255 options->thumbnails.cache_into_dirs = c_options->thumbnails.cache_into_dirs; | |
1060 | 256 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
|
257 #if 0 |
333 | 258 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
|
259 #endif |
333 | 260 options->thumbnails.spec_standard = c_options->thumbnails.spec_standard; |
1208 | 261 options->metadata.enable_metadata_dirs = c_options->metadata.enable_metadata_dirs; |
356 | 262 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
|
263 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
|
264 |
329 | 265 options->file_sort.case_sensitive = c_options->file_sort.case_sensitive; |
332 | 266 options->file_filter.disable = c_options->file_filter.disable; |
9 | 267 |
1229
878718372aca
sidecar files grouping was made case-insensitive
nadvornik
parents:
1216
diff
changeset
|
268 config_entry_to_option(sidecar_ext_entry, &options->sidecar.ext, NULL); |
1327 | 269 sidecar_ext_parse(options->sidecar.ext); |
170
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
270 |
326 | 271 options->slideshow.random = c_options->slideshow.random; |
272 options->slideshow.repeat = c_options->slideshow.repeat; | |
273 options->slideshow.delay = c_options->slideshow.delay; | |
9 | 274 |
321 | 275 options->mousewheel_scrolls = c_options->mousewheel_scrolls; |
9 | 276 |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
339
diff
changeset
|
277 options->file_ops.enable_in_place_rename = c_options->file_ops.enable_in_place_rename; |
9 | 278 |
330 | 279 options->collections.rectangular_selection = c_options->collections.rectangular_selection; |
9 | 280 |
334 | 281 options->image.tile_cache_max = c_options->image.tile_cache_max; |
848 | 282 options->image.image_cache_max = c_options->image.image_cache_max; |
442 | 283 |
334 | 284 options->image.zoom_quality = c_options->image.zoom_quality; |
9 | 285 |
334 | 286 options->image.zoom_increment = c_options->image.zoom_increment; |
9 | 287 |
334 | 288 options->image.enable_read_ahead = c_options->image.enable_read_ahead; |
9 | 289 |
339
de1c2cd06fce
Rename user_specified_window_background and window_background_color
zas_
parents:
338
diff
changeset
|
290 if (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
|
291 || !gdk_color_equal(&options->image.border_color, &c_options->image.border_color)) |
9 | 292 { |
339
de1c2cd06fce
Rename user_specified_window_background and window_background_color
zas_
parents:
338
diff
changeset
|
293 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
|
294 options->image.border_color = c_options->image.border_color; |
9 | 295 layout_colors_update(); |
296 view_window_colors_update(); | |
297 } | |
298 | |
322 | 299 options->fullscreen.screen = c_options->fullscreen.screen; |
300 options->fullscreen.clean_flip = c_options->fullscreen.clean_flip; | |
301 options->fullscreen.disable_saver = c_options->fullscreen.disable_saver; | |
302 options->fullscreen.above = c_options->fullscreen.above; | |
1336 | 303 if (c_options->image_overlay.template_string) |
304 set_image_overlay_template_string(&options->image_overlay.template_string, | |
305 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
|
306 |
321 | 307 options->update_on_time_change = c_options->update_on_time_change; |
334 | 308 options->image.exif_rotate_enable = c_options->image.exif_rotate_enable; |
9 | 309 |
342
07490120df2d
Rename dupe_custom_threshold option to duplicates_similarity_threshold.
zas_
parents:
341
diff
changeset
|
310 options->duplicates_similarity_threshold = c_options->duplicates_similarity_threshold; |
9 | 311 |
321 | 312 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
|
313 |
08eb7137cd94
Allow the user to change open_recent_list_maxsize option through
zas_
parents:
426
diff
changeset
|
314 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
|
315 options->dnd_icon_size = c_options->dnd_icon_size; |
497 | 316 |
1208 | 317 options->metadata.save_in_image_file = c_options->metadata.save_in_image_file; |
1213 | 318 options->metadata.save_legacy_IPTC = c_options->metadata.save_legacy_IPTC; |
319 options->metadata.warn_on_write_problems = c_options->metadata.warn_on_write_problems; | |
320 options->metadata.save_legacy_format = c_options->metadata.save_legacy_format; | |
321 options->metadata.sync_grouped_files = c_options->metadata.sync_grouped_files; | |
322 options->metadata.confirm_write = c_options->metadata.confirm_write; | |
323 options->metadata.confirm_timeout = c_options->metadata.confirm_timeout; | |
1244 | 324 options->metadata.confirm_after_timeout = c_options->metadata.confirm_after_timeout; |
1213 | 325 options->metadata.confirm_on_image_change = c_options->metadata.confirm_on_image_change; |
326 options->metadata.confirm_on_dir_change = c_options->metadata.confirm_on_dir_change; | |
594
4cfce4ed35e0
Use a dedicated option to enable keywords and comment saving as XMP tags
zas_
parents:
586
diff
changeset
|
327 |
227
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
328 #ifdef DEBUG |
507 | 329 set_debug_level(debug_c); |
227
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
330 #endif |
9 | 331 |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
332 #ifdef HAVE_LCMS |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
333 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
|
334 { |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
335 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
|
336 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
|
337 } |
1042
e59a9c96d290
Shorten config_window_apply() a bit, reduce code redunancy.
zas_
parents:
1039
diff
changeset
|
338 config_entry_to_option(color_profile_screen_file_entry, &options->color_profile.screen_file, NULL); |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
339 #endif |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
340 |
1353 | 341 #if 0 |
520 | 342 for (i = 0; ExifUIList[i].key; i++) |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
343 { |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
344 ExifUIList[i].current = ExifUIList[i].temp; |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
345 } |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
346 |
1353 | 347 #endif |
26
acd9885ebd78
Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
gqview
parents:
15
diff
changeset
|
348 image_options_sync(); |
acd9885ebd78
Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
gqview
parents:
15
diff
changeset
|
349 |
9 | 350 if (refresh) |
351 { | |
352 filter_rebuild(); | |
353 layout_refresh(NULL); | |
354 } | |
355 } | |
356 | |
357 /* | |
358 *----------------------------------------------------------------------------- | |
359 * config window main button callbacks (private) | |
360 *----------------------------------------------------------------------------- | |
442 | 361 */ |
9 | 362 |
363 static void config_window_close_cb(GtkWidget *widget, gpointer data) | |
364 { | |
365 gtk_widget_destroy(configwindow); | |
366 configwindow = NULL; | |
367 filter_store = NULL; | |
368 } | |
369 | |
1443 | 370 static gboolean config_window_delete(GtkWidget *widget, GdkEventAny *event, gpointer data) |
9 | 371 { |
372 config_window_close_cb(NULL, NULL); | |
373 return TRUE; | |
374 } | |
375 | |
376 static void config_window_ok_cb(GtkWidget *widget, gpointer data) | |
377 { | |
378 config_window_apply(); | |
379 config_window_close_cb(NULL, NULL); | |
380 } | |
381 | |
382 static void config_window_apply_cb(GtkWidget *widget, gpointer data) | |
383 { | |
384 config_window_apply(); | |
385 } | |
386 | |
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
|
387 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
|
388 { |
c92e5a5c3bfa
Add a Save button to Preferences dialog, which allow to save options to file without quitting the application.
zas_
parents:
1001
diff
changeset
|
389 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
|
390 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
|
391 } |
c92e5a5c3bfa
Add a Save button to Preferences dialog, which allow to save options to file without quitting the application.
zas_
parents:
1001
diff
changeset
|
392 |
9 | 393 /* |
394 *----------------------------------------------------------------------------- | |
395 * config window setup (private) | |
396 *----------------------------------------------------------------------------- | |
442 | 397 */ |
9 | 398 |
399 static void quality_menu_cb(GtkWidget *combo, gpointer data) | |
400 { | |
401 gint *option = data; | |
402 | |
403 switch (gtk_combo_box_get_active(GTK_COMBO_BOX(combo))) | |
404 { | |
405 case 0: | |
406 default: | |
407 *option = GDK_INTERP_NEAREST; | |
408 break; | |
409 case 1: | |
410 *option = GDK_INTERP_TILES; | |
411 break; | |
412 case 2: | |
413 *option = GDK_INTERP_BILINEAR; | |
414 break; | |
415 case 3: | |
416 *option = GDK_INTERP_HYPER; | |
417 break; | |
418 } | |
419 } | |
420 | |
421 static void add_quality_menu(GtkWidget *table, gint column, gint row, const gchar *text, | |
1188 | 422 guint option, guint *option_c) |
9 | 423 { |
424 GtkWidget *combo; | |
425 gint current = 0; | |
426 | |
427 *option_c = option; | |
428 | |
429 pref_table_label(table, column, row, text, 0.0); | |
430 | |
431 combo = gtk_combo_box_new_text(); | |
432 | |
433 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Nearest (worst, but fastest)")); | |
434 if (option == GDK_INTERP_NEAREST) current = 0; | |
435 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Tiles")); | |
436 if (option == GDK_INTERP_TILES) current = 1; | |
437 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Bilinear")); | |
438 if (option == GDK_INTERP_BILINEAR) current = 2; | |
439 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Hyper (best, but slowest)")); | |
440 if (option == GDK_INTERP_HYPER) current = 3; | |
441 | |
442 gtk_combo_box_set_active(GTK_COMBO_BOX(combo), current); | |
443 | |
444 g_signal_connect(G_OBJECT(combo), "changed", | |
445 G_CALLBACK(quality_menu_cb), option_c); | |
446 | |
447 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
|
448 GTK_EXPAND | GTK_FILL, 0, 0, 0); |
9 | 449 gtk_widget_show(combo); |
450 } | |
451 | |
452 #if 0 | |
453 static void add_dither_menu(gint option, gint *option_c, gchar *text, GtkWidget *box) | |
454 { | |
455 GtkWidget *hbox; | |
456 GtkWidget *omenu; | |
457 GtkWidget *menu; | |
458 | |
459 *option_c = option; | |
460 | |
461 hbox = pref_box_new(box, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); | |
462 pref_label_new(hbox, text); | |
463 | |
464 omenu = gtk_option_menu_new(); | |
465 menu = gtk_menu_new(); | |
466 | |
467 add_menu_item(menu, _("None"), option_c, (gint)GDK_RGB_DITHER_NONE); | |
468 add_menu_item(menu, _("Normal"), option_c, (gint)GDK_RGB_DITHER_NORMAL); | |
469 add_menu_item(menu, _("Best"), option_c, (gint)GDK_RGB_DITHER_MAX); | |
470 | |
471 gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu); | |
472 gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), *option_c); | |
473 | |
474 gtk_box_pack_start(GTK_BOX(hbox), omenu, FALSE, FALSE, 0); | |
475 gtk_widget_show(omenu); | |
476 } | |
477 #endif | |
478 | |
479 static void thumb_size_menu_cb(GtkWidget *combo, gpointer data) | |
480 { | |
481 gint n; | |
482 | |
483 n = gtk_combo_box_get_active(GTK_COMBO_BOX(combo)); | |
736 | 484 if (n < 0) return; |
9 | 485 |
736 | 486 if ((guint) n < sizeof(thumb_size_list) / sizeof(ThumbSize)) |
9 | 487 { |
333 | 488 c_options->thumbnails.max_width = thumb_size_list[n].w; |
489 c_options->thumbnails.max_height = thumb_size_list[n].h; | |
9 | 490 } |
736 | 491 else |
9 | 492 { |
333 | 493 c_options->thumbnails.max_width = options->thumbnails.max_width; |
494 c_options->thumbnails.max_height = options->thumbnails.max_height; | |
9 | 495 } |
496 } | |
497 | |
498 static void add_thumb_size_menu(GtkWidget *table, gint column, gint row, gchar *text) | |
499 { | |
500 GtkWidget *combo; | |
501 gint current; | |
502 gint i; | |
503 | |
333 | 504 c_options->thumbnails.max_width = options->thumbnails.max_width; |
505 c_options->thumbnails.max_height = options->thumbnails.max_height; | |
9 | 506 |
507 pref_table_label(table, column, row, text, 0.0); | |
508 | |
509 combo = gtk_combo_box_new_text(); | |
510 | |
511 current = -1; | |
736 | 512 for (i = 0; (guint) i < sizeof(thumb_size_list) / sizeof(ThumbSize); i++) |
9 | 513 { |
514 gint w, h; | |
226
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
515 gchar *buf; |
9 | 516 |
517 w = thumb_size_list[i].w; | |
518 h = thumb_size_list[i].h; | |
519 | |
226
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
520 buf = g_strdup_printf("%d x %d", w, h); |
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
521 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
|
522 g_free(buf); |
442 | 523 |
333 | 524 if (w == options->thumbnails.max_width && h == options->thumbnails.max_height) current = i; |
9 | 525 } |
526 | |
527 if (current == -1) | |
528 { | |
529 gchar *buf; | |
530 | |
333 | 531 buf = g_strdup_printf("%s %d x %d", _("Custom"), options->thumbnails.max_width, options->thumbnails.max_height); |
9 | 532 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), buf); |
533 g_free(buf); | |
534 | |
226
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
535 current = i; |
9 | 536 } |
537 | |
538 gtk_combo_box_set_active(GTK_COMBO_BOX(combo), current); | |
539 g_signal_connect(G_OBJECT(combo), "changed", | |
540 G_CALLBACK(thumb_size_menu_cb), NULL); | |
541 | |
542 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
|
543 GTK_EXPAND | GTK_FILL, 0, 0, 0); |
9 | 544 gtk_widget_show(combo); |
545 } | |
546 | |
547 static void filter_store_populate(void) | |
548 { | |
549 GList *work; | |
550 | |
551 if (!filter_store) return; | |
552 | |
553 gtk_list_store_clear(filter_store); | |
554 | |
555 work = filter_get_list(); | |
556 while (work) | |
557 { | |
558 FilterEntry *fe; | |
559 GtkTreeIter iter; | |
560 | |
561 fe = work->data; | |
562 work = work->next; | |
563 | |
564 gtk_list_store_append(filter_store, &iter); | |
565 gtk_list_store_set(filter_store, &iter, 0, fe, -1); | |
566 } | |
567 } | |
568 | |
569 static void filter_store_ext_edit_cb(GtkCellRendererText *cell, gchar *path_str, | |
570 gchar *new_text, gpointer data) | |
571 { | |
572 GtkWidget *model = data; | |
573 FilterEntry *fe = data; | |
574 GtkTreePath *tpath; | |
575 GtkTreeIter iter; | |
576 | |
577 if (!new_text || strlen(new_text) < 1) return; | |
578 | |
579 tpath = gtk_tree_path_new_from_string(path_str); | |
580 gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, tpath); | |
581 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &fe, -1); | |
582 | |
583 g_free(fe->extensions); | |
584 fe->extensions = g_strdup(new_text); | |
585 | |
586 gtk_tree_path_free(tpath); | |
587 filter_rebuild(); | |
588 } | |
589 | |
1216 | 590 static void filter_store_class_edit_cb(GtkCellRendererText *cell, gchar *path_str, |
1443 | 591 gchar *new_text, gpointer data) |
1216 | 592 { |
593 GtkWidget *model = data; | |
594 FilterEntry *fe = data; | |
595 GtkTreePath *tpath; | |
596 GtkTreeIter iter; | |
597 gint i; | |
598 | |
1443 | 599 if (!new_text || !new_text[0]) return; |
1216 | 600 |
601 tpath = gtk_tree_path_new_from_string(path_str); | |
602 gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, tpath); | |
603 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &fe, -1); | |
604 | |
605 for (i = 0; i < FILE_FORMAT_CLASSES; i++) | |
606 { | |
607 if (strcmp(new_text, _(format_class_list[i])) == 0) | |
608 { | |
609 fe->file_class = i; | |
610 break; | |
611 } | |
612 } | |
613 | |
614 gtk_tree_path_free(tpath); | |
615 filter_rebuild(); | |
616 } | |
617 | |
9 | 618 static void filter_store_desc_edit_cb(GtkCellRendererText *cell, gchar *path_str, |
619 gchar *new_text, gpointer data) | |
620 { | |
621 GtkWidget *model = data; | |
622 FilterEntry *fe; | |
623 GtkTreePath *tpath; | |
624 GtkTreeIter iter; | |
625 | |
1443 | 626 if (!new_text || !new_text[0]) return; |
9 | 627 |
628 tpath = gtk_tree_path_new_from_string(path_str); | |
629 gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, tpath); | |
630 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &fe, -1); | |
631 | |
632 g_free(fe->description); | |
633 fe->description = g_strdup(new_text); | |
634 | |
635 gtk_tree_path_free(tpath); | |
636 } | |
637 | |
638 static void filter_store_enable_cb(GtkCellRendererToggle *renderer, | |
639 gchar *path_str, gpointer data) | |
640 { | |
641 GtkWidget *model = data; | |
642 FilterEntry *fe; | |
643 GtkTreePath *tpath; | |
644 GtkTreeIter iter; | |
645 | |
646 tpath = gtk_tree_path_new_from_string(path_str); | |
647 gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, tpath); | |
648 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &fe, -1); | |
649 | |
650 fe->enabled = !fe->enabled; | |
651 | |
652 gtk_tree_path_free(tpath); | |
653 filter_rebuild(); | |
654 } | |
655 | |
1239
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
656 static void filter_store_writable_cb(GtkCellRendererToggle *renderer, |
1443 | 657 gchar *path_str, gpointer data) |
1239
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
658 { |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
659 GtkWidget *model = data; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
660 FilterEntry *fe; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
661 GtkTreePath *tpath; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
662 GtkTreeIter iter; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
663 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
664 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
|
665 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
|
666 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
|
667 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
668 fe->writable = !fe->writable; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
669 if (fe->writable) fe->allow_sidecar = FALSE; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
670 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
671 gtk_tree_path_free(tpath); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
672 filter_rebuild(); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
673 } |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
674 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
675 static void filter_store_sidecar_cb(GtkCellRendererToggle *renderer, |
1443 | 676 gchar *path_str, gpointer data) |
1239
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
677 { |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
678 GtkWidget *model = data; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
679 FilterEntry *fe; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
680 GtkTreePath *tpath; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
681 GtkTreeIter iter; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
682 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
683 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
|
684 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
|
685 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
|
686 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
687 fe->allow_sidecar = !fe->allow_sidecar; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
688 if (fe->allow_sidecar) fe->writable = FALSE; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
689 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
690 gtk_tree_path_free(tpath); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
691 filter_rebuild(); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
692 } |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
693 |
9 | 694 static void filter_set_func(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, |
695 GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) | |
696 { | |
697 FilterEntry *fe; | |
698 | |
699 gtk_tree_model_get(tree_model, iter, 0, &fe, -1); | |
700 | |
1347
79937bc55f3a
Add missing space between switch and first parenthesis.
zas_
parents:
1346
diff
changeset
|
701 switch (GPOINTER_TO_INT(data)) |
9 | 702 { |
703 case FE_ENABLE: | |
704 g_object_set(GTK_CELL_RENDERER(cell), | |
705 "active", fe->enabled, NULL); | |
706 break; | |
707 case FE_EXTENSION: | |
708 g_object_set(GTK_CELL_RENDERER(cell), | |
709 "text", fe->extensions, NULL); | |
710 break; | |
711 case FE_DESCRIPTION: | |
712 g_object_set(GTK_CELL_RENDERER(cell), | |
713 "text", fe->description, NULL); | |
714 break; | |
1216 | 715 case FE_CLASS: |
716 g_object_set(GTK_CELL_RENDERER(cell), | |
717 "text", _(format_class_list[fe->file_class]), NULL); | |
718 break; | |
1239
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
719 case FE_WRITABLE: |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
720 g_object_set(GTK_CELL_RENDERER(cell), |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
721 "active", fe->writable, NULL); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
722 break; |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
723 case FE_ALLOW_SIDECAR: |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
724 g_object_set(GTK_CELL_RENDERER(cell), |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
725 "active", fe->allow_sidecar, NULL); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
726 break; |
9 | 727 } |
728 } | |
729 | |
730 static void filter_add_cb(GtkWidget *widget, gpointer data) | |
731 { | |
1239
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
732 filter_add_unique("description", ".new", FORMAT_CLASS_IMAGE, TRUE, FALSE, TRUE); |
9 | 733 filter_store_populate(); |
734 | |
735 /* FIXME: implement the scroll to/select row stuff for tree view */ | |
736 } | |
737 | |
738 static void filter_remove_cb(GtkWidget *widget, gpointer data) | |
739 { | |
740 GtkWidget *filter_view = data; | |
741 GtkTreeSelection *selection; | |
742 GtkTreeIter iter; | |
743 FilterEntry *fe; | |
744 | |
745 if (!filter_store) return; | |
995 | 746 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(filter_view)); |
9 | 747 if (!gtk_tree_selection_get_selected(selection, NULL, &iter)) return; |
748 gtk_tree_model_get(GTK_TREE_MODEL(filter_store), &iter, 0, &fe, -1); | |
749 if (!fe) return; | |
750 | |
751 filter_remove_entry(fe); | |
752 filter_rebuild(); | |
753 filter_store_populate(); | |
754 } | |
755 | |
756 static void filter_default_ok_cb(GenericDialog *gd, gpointer data) | |
757 { | |
758 filter_reset(); | |
759 filter_add_defaults(); | |
760 filter_rebuild(); | |
761 filter_store_populate(); | |
762 } | |
763 | |
764 static void dummy_cancel_cb(GenericDialog *gd, gpointer data) | |
765 { | |
766 /* no op, only so cancel button appears */ | |
767 } | |
768 | |
769 static void filter_default_cb(GtkWidget *widget, gpointer data) | |
770 { | |
771 GenericDialog *gd; | |
772 | |
773 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
|
774 "reset_filter", widget, TRUE, |
9 | 775 dummy_cancel_cb, NULL); |
776 generic_dialog_add_message(gd, GTK_STOCK_DIALOG_QUESTION, _("Reset filters"), | |
777 _("This will reset the file filters to the defaults.\nContinue?")); | |
778 generic_dialog_add_button(gd, GTK_STOCK_OK, NULL, filter_default_ok_cb, TRUE); | |
779 gtk_widget_show(gd->dialog); | |
780 } | |
781 | |
1001 | 782 static void filter_disable_cb(GtkWidget *widget, gpointer data) |
9 | 783 { |
784 GtkWidget *frame = data; | |
785 | |
786 gtk_widget_set_sensitive(frame, | |
787 !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))); | |
788 } | |
789 | |
1001 | 790 static void safe_delete_view_cb(GtkWidget *widget, gpointer data) |
9 | 791 { |
792 layout_set_path(NULL, gtk_entry_get_text(GTK_ENTRY(safe_delete_path_entry))); | |
793 } | |
794 | |
795 static void safe_delete_clear_ok_cb(GenericDialog *gd, gpointer data) | |
796 { | |
797 file_util_trash_clear(); | |
798 } | |
799 | |
1001 | 800 static void safe_delete_clear_cb(GtkWidget *widget, gpointer data) |
9 | 801 { |
802 GenericDialog *gd; | |
803 GtkWidget *entry; | |
804 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
|
805 "clear_trash", widget, TRUE, |
9 | 806 dummy_cancel_cb, NULL); |
807 generic_dialog_add_message(gd, GTK_STOCK_DIALOG_QUESTION, _("Clear trash"), | |
808 _("This will remove the trash contents.")); | |
809 generic_dialog_add_button(gd, GTK_STOCK_OK, NULL, safe_delete_clear_ok_cb, TRUE); | |
810 entry = gtk_entry_new(); | |
811 GTK_WIDGET_UNSET_FLAGS(entry, GTK_CAN_FOCUS); | |
812 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
|
813 if (options->file_ops.safe_delete_path) gtk_entry_set_text(GTK_ENTRY(entry), options->file_ops.safe_delete_path); |
9 | 814 gtk_box_pack_start(GTK_BOX(gd->vbox), entry, FALSE, FALSE, 0); |
815 gtk_widget_show(entry); | |
816 gtk_widget_show(gd->dialog); | |
817 } | |
818 | |
1001 | 819 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
|
820 { |
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
|
821 GtkWidget *pTextView; |
1001 | 822 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
|
823 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
|
824 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
|
825 |
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
|
826 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
|
827 |
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
|
828 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
|
829 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
|
830 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
|
831 |
1336 | 832 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
|
833 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
|
834 } |
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
|
835 |
469
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
836 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
|
837 { |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
838 GtkTextView *text_view = data; |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
839 GtkTextBuffer *buffer; |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
840 |
1336 | 841 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
|
842 if (!configwindow) return; |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
843 |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
844 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view)); |
1336 | 845 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
|
846 } |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
847 |
469
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
848 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
|
849 { |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
850 GenericDialog *gd; |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
851 |
469
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
852 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
|
853 "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
|
854 dummy_cancel_cb, data); |
469
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
855 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
|
856 _("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
|
857 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
|
858 gtk_widget_show(gd->dialog); |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
859 } |
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
860 |
625
076e6f7e9ecb
Add an help button to OSD info configuration in Preferences dialog.
zas_
parents:
597
diff
changeset
|
861 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
|
862 { |
076e6f7e9ecb
Add an help button to OSD info configuration in Preferences dialog.
zas_
parents:
597
diff
changeset
|
863 help_window_show("overlay"); |
076e6f7e9ecb
Add an help button to OSD info configuration in Preferences dialog.
zas_
parents:
597
diff
changeset
|
864 } |
354
5c82855feba7
Add a button to reset fullscreen info string to default value.
zas_
parents:
342
diff
changeset
|
865 |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
866 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
|
867 { |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
868 GtkWidget *label; |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
869 GtkWidget *vbox; |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
870 GtkWidget *scrolled; |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
871 GtkWidget *viewport; |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
872 |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
873 scrolled = gtk_scrolled_window_new(NULL, NULL); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
874 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
|
875 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
|
876 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
877 label = gtk_label_new(title); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
878 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
|
879 gtk_widget_show(scrolled); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
880 |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
881 viewport = gtk_viewport_new(NULL, NULL); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
882 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
|
883 gtk_container_add(GTK_CONTAINER(scrolled), viewport); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
884 gtk_widget_show(viewport); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
885 |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
886 vbox = gtk_vbox_new(FALSE, 0); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
887 gtk_container_add(GTK_CONTAINER(viewport), vbox); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
888 gtk_widget_show(vbox); |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
889 |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
890 return vbox; |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
891 } |
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
892 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
893 /* general options tab */ |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
894 static void config_tab_general(GtkWidget *notebook) |
9 | 895 { |
896 GtkWidget *vbox; | |
897 GtkWidget *group; | |
898 GtkWidget *subgroup; | |
899 GtkWidget *button; | |
900 GtkWidget *ct_button; | |
901 GtkWidget *table; | |
902 GtkWidget *spin; | |
903 | |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
904 vbox = scrolled_notebook_page(notebook, _("General")); |
9 | 905 |
906 group = pref_group_new(vbox, FALSE, _("Thumbnails"), GTK_ORIENTATION_VERTICAL); | |
907 | |
908 table = pref_table_new(group, 2, 2, FALSE, FALSE); | |
909 add_thumb_size_menu(table, 0, 0, _("Size:")); | |
333 | 910 add_quality_menu(table, 0, 1, _("Quality:"), options->thumbnails.quality, &c_options->thumbnails.quality); |
9 | 911 |
912 ct_button = pref_checkbox_new_int(group, _("Cache thumbnails"), | |
333 | 913 options->thumbnails.enable_caching, &c_options->thumbnails.enable_caching); |
9 | 914 |
915 subgroup = pref_box_new(group, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP); | |
916 pref_checkbox_link_sensitivity(ct_button, subgroup); | |
917 | |
1522 | 918 button = pref_checkbox_new_int(subgroup, _("Use standard thumbnail cache, shared with other applications"), |
333 | 919 options->thumbnails.spec_standard, &c_options->thumbnails.spec_standard); |
9 | 920 |
921 subgroup = pref_box_new(subgroup, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP); | |
922 pref_checkbox_link_sensitivity_swap(button, subgroup); | |
923 | |
1522 | 924 pref_checkbox_new_int(subgroup, _("Store thumbnails in '.thumbnails' folder, local to image folder (non-standard)"), |
333 | 925 options->thumbnails.cache_into_dirs, &c_options->thumbnails.cache_into_dirs); |
9 | 926 |
14
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
927 #if 0 |
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
928 pref_checkbox_new_int(subgroup, _("Use xvpics thumbnails when found (read only)"), |
333 | 929 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
|
930 #endif |
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
931 |
1522 | 932 pref_checkbox_new_int(group, _("Use EXIF thumbnails when available (EXIF thumbnails may be outdated)"), |
1060 | 933 options->thumbnails.use_exif, &c_options->thumbnails.use_exif); |
934 | |
9 | 935 group = pref_group_new(vbox, FALSE, _("Slide show"), GTK_ORIENTATION_VERTICAL); |
936 | |
326 | 937 c_options->slideshow.delay = options->slideshow.delay; |
9 | 938 spin = pref_spin_new(group, _("Delay between image change:"), _("seconds"), |
939 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
|
940 options->slideshow.delay ? (gdouble)options->slideshow.delay / SLIDESHOW_SUBSECOND_PRECISION : 10.0, |
9 | 941 G_CALLBACK(slideshow_delay_cb), NULL); |
942 gtk_spin_button_set_update_policy(GTK_SPIN_BUTTON(spin), GTK_UPDATE_ALWAYS); | |
943 | |
326 | 944 pref_checkbox_new_int(group, _("Random"), options->slideshow.random, &c_options->slideshow.random); |
945 pref_checkbox_new_int(group, _("Repeat"), options->slideshow.repeat, &c_options->slideshow.repeat); | |
1510 | 946 |
947 group = pref_group_new(vbox, FALSE, _("Image loading and caching"), GTK_ORIENTATION_VERTICAL); | |
948 | |
1522 | 949 #if 0 |
1510 | 950 pref_spin_new_int(group, _("Offscreen cache size (Mb per image):"), NULL, |
951 0, 128, 1, options->image.tile_cache_max, &c_options->image.tile_cache_max); | |
1522 | 952 #endif |
1510 | 953 |
954 pref_spin_new_int(group, _("Decoded image cache size (Mb):"), NULL, | |
955 0, 1024, 1, options->image.image_cache_max, &c_options->image.image_cache_max); | |
1522 | 956 pref_checkbox_new_int(group, _("Preload next image"), |
957 options->image.enable_read_ahead, &c_options->image.enable_read_ahead); | |
958 | |
959 pref_checkbox_new_int(group, _("Refresh on file change"), | |
960 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
|
961 } |
9 | 962 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
963 /* image tab */ |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
964 static void config_tab_image(GtkWidget *notebook) |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
965 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
966 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
967 GtkWidget *vbox; |
1516
c30965f99b3c
improved Scroll reset method in preferences dialog
nadvornik
parents:
1515
diff
changeset
|
968 GtkWidget *vbox2; |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
969 GtkWidget *group; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
970 GtkWidget *button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
971 GtkWidget *ct_button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
972 GtkWidget *table; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
973 GtkWidget *spin; |
9 | 974 |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
975 vbox = scrolled_notebook_page(notebook, _("Image")); |
9 | 976 |
977 group = pref_group_new(vbox, FALSE, _("Zoom"), GTK_ORIENTATION_VERTICAL); | |
978 | |
979 #if 0 | |
334 | 980 add_dither_menu(dither_quality, &c_options->image.dither_quality, _("Dithering method:"), group); |
9 | 981 #endif |
982 table = pref_table_new(group, 2, 1, FALSE, FALSE); | |
334 | 983 add_quality_menu(table, 0, 0, _("Quality:"), options->image.zoom_quality, &c_options->image.zoom_quality); |
9 | 984 |
1515
3e6cd9243162
disabled 2-pass rendering also affect color correction
nadvornik
parents:
1513
diff
changeset
|
985 pref_checkbox_new_int(group, _("Two pass rendering (apply HQ zoom and color correction in second pass)"), |
334 | 986 options->image.zoom_2pass, &c_options->image.zoom_2pass); |
9 | 987 |
67
f63ecca6c087
Fri Oct 13 05:22:43 2006 John Ellis <johne@verizon.net>
gqview
parents:
26
diff
changeset
|
988 pref_checkbox_new_int(group, _("Allow enlargement of image for zoom to fit"), |
334 | 989 options->image.zoom_to_fit_allow_expand, &c_options->image.zoom_to_fit_allow_expand); |
9 | 990 |
209
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
991 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
|
992 ct_button = pref_checkbox_new_int(hbox, _("Limit image size when autofitting (%):"), |
334 | 993 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
|
994 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
|
995 10, 150, 1, |
334 | 996 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
|
997 pref_checkbox_link_sensitivity(ct_button, spin); |
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
998 |
334 | 999 c_options->image.zoom_increment = options->image.zoom_increment; |
9 | 1000 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
|
1001 0.1, 4.0, 0.1, 1, (gdouble)options->image.zoom_increment / 10.0, |
9 | 1002 G_CALLBACK(zoom_increment_cb), NULL); |
1003 gtk_spin_button_set_update_policy(GTK_SPIN_BUTTON(spin), GTK_UPDATE_ALWAYS); | |
1004 | |
1516
c30965f99b3c
improved Scroll reset method in preferences dialog
nadvornik
parents:
1515
diff
changeset
|
1005 group = pref_group_new(vbox, FALSE, _("When new image is selected:"), GTK_ORIENTATION_HORIZONTAL); |
9 | 1006 |
1516
c30965f99b3c
improved Scroll reset method in preferences dialog
nadvornik
parents:
1515
diff
changeset
|
1007 vbox2 = pref_box_new(group, TRUE, GTK_ORIENTATION_VERTICAL, PREF_PAD_SPACE); |
334 | 1008 c_options->image.zoom_mode = options->image.zoom_mode; |
1516
c30965f99b3c
improved Scroll reset method in preferences dialog
nadvornik
parents:
1515
diff
changeset
|
1009 button = pref_radiobutton_new(vbox2, NULL, _("Zoom to original size"), |
334 | 1010 (options->image.zoom_mode == ZOOM_RESET_ORIGINAL), |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1011 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
|
1012 button = pref_radiobutton_new(vbox2, button, _("Fit image to window"), |
334 | 1013 (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
|
1014 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
|
1015 button = pref_radiobutton_new(vbox2, button, _("Leave Zoom at previous setting"), |
334 | 1016 (options->image.zoom_mode == ZOOM_RESET_NONE), |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1017 G_CALLBACK(zoom_mode_cb), GINT_TO_POINTER(ZOOM_RESET_NONE)); |
9 | 1018 |
1516
c30965f99b3c
improved Scroll reset method in preferences dialog
nadvornik
parents:
1515
diff
changeset
|
1019 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
|
1020 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
|
1021 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
|
1022 (options->image.scroll_reset_method == SCROLL_RESET_TOPLEFT), |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
1023 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
|
1024 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
|
1025 (options->image.scroll_reset_method == SCROLL_RESET_CENTER), |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
1026 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
|
1027 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
|
1028 (options->image.scroll_reset_method == SCROLL_RESET_NOCHANGE), |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
1029 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
|
1030 |
db720c5a9169
Allow to change image.scroll_reset_method in Preferences > Image.
zas_
parents:
1024
diff
changeset
|
1031 |
9 | 1032 group = pref_group_new(vbox, FALSE, _("Appearance"), GTK_ORIENTATION_VERTICAL); |
1033 | |
339
de1c2cd06fce
Rename user_specified_window_background and window_background_color
zas_
parents:
338
diff
changeset
|
1034 pref_checkbox_new_int(group, _("Custom border color"), |
de1c2cd06fce
Rename user_specified_window_background and window_background_color
zas_
parents:
338
diff
changeset
|
1035 options->image.use_custom_border_color, &c_options->image.use_custom_border_color); |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
199
diff
changeset
|
1036 |
339
de1c2cd06fce
Rename user_specified_window_background and window_background_color
zas_
parents:
338
diff
changeset
|
1037 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
|
1038 G_CALLBACK(pref_color_button_set_cb), &c_options->image.border_color); |
9 | 1039 |
1040 group = pref_group_new(vbox, FALSE, _("Convenience"), GTK_ORIENTATION_VERTICAL); | |
1041 | |
1042 pref_checkbox_new_int(group, _("Auto rotate image using Exif information"), | |
334 | 1043 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
|
1044 } |
9 | 1045 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1046 /* windows tab */ |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1047 static void config_tab_windows(GtkWidget *notebook) |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1048 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1049 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1050 GtkWidget *vbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1051 GtkWidget *group; |
1510 | 1052 GtkWidget *button; |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1053 GtkWidget *ct_button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1054 GtkWidget *spin; |
1510 | 1055 GtkWidget *image_overlay_template_view; |
1056 GtkWidget *scrolled; | |
1057 GtkTextBuffer *buffer; | |
9 | 1058 |
1039
9c8d7ba674cf
Allow all Preferences pages to scroll vertically. Reduce code redundancy.
zas_
parents:
1038
diff
changeset
|
1059 vbox = scrolled_notebook_page(notebook, _("Windows")); |
9 | 1060 |
1061 group = pref_group_new(vbox, FALSE, _("State"), GTK_ORIENTATION_VERTICAL); | |
1062 | |
1063 pref_checkbox_new_int(group, _("Remember window positions"), | |
1436
d7a6fb7a90dd
completely separated global and layout window options
nadvornik
parents:
1400
diff
changeset
|
1064 options->save_window_positions, &c_options->save_window_positions); |
9 | 1065 pref_checkbox_new_int(group, _("Remember tool state (float/hidden)"), |
1436
d7a6fb7a90dd
completely separated global and layout window options
nadvornik
parents:
1400
diff
changeset
|
1066 options->tools_restore_state, &c_options->tools_restore_state); |
9 | 1067 |
1068 group = pref_group_new(vbox, FALSE, _("Size"), GTK_ORIENTATION_VERTICAL); | |
1069 | |
1070 pref_checkbox_new_int(group, _("Fit window to image when tools are hidden/floating"), | |
334 | 1071 options->image.fit_window_to_image, &c_options->image.fit_window_to_image); |
9 | 1072 |
1073 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); | |
1074 ct_button = pref_checkbox_new_int(hbox, _("Limit size when auto-sizing window (%):"), | |
334 | 1075 options->image.limit_window_size, &c_options->image.limit_window_size); |
9 | 1076 spin = pref_spin_new_int(hbox, NULL, NULL, |
1077 10, 150, 1, | |
334 | 1078 options->image.max_window_size, &c_options->image.max_window_size); |
9 | 1079 pref_checkbox_link_sensitivity(ct_button, spin); |
1510 | 1080 |
1081 group = pref_group_new(vbox, FALSE, _("Full screen"), GTK_ORIENTATION_VERTICAL); | |
1082 | |
1083 c_options->fullscreen.screen = options->fullscreen.screen; | |
1084 c_options->fullscreen.above = options->fullscreen.above; | |
1085 hbox = fullscreen_prefs_selection_new(_("Location:"), &c_options->fullscreen.screen, &c_options->fullscreen.above); | |
1086 gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0); | |
1087 gtk_widget_show(hbox); | |
1088 | |
1089 pref_checkbox_new_int(group, _("Smooth image flip"), | |
1090 options->fullscreen.clean_flip, &c_options->fullscreen.clean_flip); | |
1091 pref_checkbox_new_int(group, _("Disable screen saver"), | |
1092 options->fullscreen.disable_saver, &c_options->fullscreen.disable_saver); | |
1093 | |
1094 | |
1095 group = pref_group_new(vbox, FALSE, _("Overlay Screen Display"), GTK_ORIENTATION_VERTICAL); | |
1096 | |
1097 pref_label_new(group, _("Image overlay template")); | |
1098 | |
1099 scrolled = gtk_scrolled_window_new(NULL, NULL); | |
1100 gtk_widget_set_size_request(scrolled, 200, 150); | |
1101 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN); | |
1102 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), | |
1103 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
1104 gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 5); | |
1105 gtk_widget_show(scrolled); | |
1106 | |
1107 image_overlay_template_view = gtk_text_view_new(); | |
1108 | |
1109 #if GTK_CHECK_VERSION(2,12,0) | |
1110 gtk_widget_set_tooltip_markup(image_overlay_template_view, | |
1111 _("<i>%name%</i> results in the filename of the picture.\n" | |
1112 "Also available: <i>%collection%</i>, <i>%number%</i>, <i>%total%</i>, <i>%date%</i>,\n" | |
1113 "<i>%size%</i> (filesize), <i>%width%</i>, <i>%height%</i>, <i>%res%</i> (resolution)\n" | |
1114 "To access exif data use the exif name, e. g. <i>%formatted.Camera%</i> is the formatted camera name,\n" | |
1115 "<i>%Exif.Photo.DateTimeOriginal%</i> the date of the original shot.\n" | |
1116 "<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" | |
1117 "If two or more variables are connected with the |-sign, it prints available variables with a separator.\n" | |
1118 "<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" | |
1119 "if there's no ISO information in the Exif data.\n" | |
1120 "If a line is empty, it is removed. This allows to add lines that totally disappear when no data is available.\n" | |
1121 )); | |
1122 #endif | |
1123 gtk_container_add(GTK_CONTAINER(scrolled), image_overlay_template_view); | |
1124 gtk_widget_show(image_overlay_template_view); | |
1125 | |
1126 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP); | |
1127 | |
1128 button = pref_button_new(NULL, NULL, _("Defaults"), FALSE, | |
1129 G_CALLBACK(image_overlay_default_template_cb), image_overlay_template_view); | |
1130 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1131 gtk_widget_show(button); | |
1132 | |
1133 button = pref_button_new(NULL, GTK_STOCK_HELP, NULL, FALSE, | |
1134 G_CALLBACK(image_overlay_help_cb), NULL); | |
1135 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1136 gtk_widget_show(button); | |
1137 | |
1138 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(image_overlay_template_view)); | |
1139 if (options->image_overlay.template_string) gtk_text_buffer_set_text(buffer, options->image_overlay.template_string, -1); | |
1140 g_signal_connect(G_OBJECT(buffer), "changed", | |
1141 G_CALLBACK(image_overlay_template_view_changed_cb), image_overlay_template_view); | |
1142 | |
1143 | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1144 } |
9 | 1145 |
1216 | 1146 static GtkTreeModel *create_class_model(void) |
1147 { | |
1148 GtkListStore *model; | |
1149 GtkTreeIter iter; | |
1150 gint i; | |
1151 | |
1152 /* create list store */ | |
1346
c9949c19a6d0
No space between function name and first parenthesis, it eases greping (see CODING).
zas_
parents:
1336
diff
changeset
|
1153 model = gtk_list_store_new(1, G_TYPE_STRING); |
1216 | 1154 for (i = 0; i < FILE_FORMAT_CLASSES; i++) |
1155 { | |
1346
c9949c19a6d0
No space between function name and first parenthesis, it eases greping (see CODING).
zas_
parents:
1336
diff
changeset
|
1156 gtk_list_store_append(model, &iter); |
1216 | 1157 gtk_list_store_set(model, &iter, 0, _(format_class_list[i]), -1); |
1158 } | |
1159 return GTK_TREE_MODEL (model); | |
1160 } | |
1161 | |
1162 | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1163 /* filtering tab */ |
1522 | 1164 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
|
1165 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1166 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1167 GtkWidget *frame; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1168 GtkWidget *vbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1169 GtkWidget *group; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1170 GtkWidget *button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1171 GtkWidget *ct_button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1172 GtkWidget *scrolled; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1173 GtkWidget *filter_view; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1174 GtkCellRenderer *renderer; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1175 GtkTreeSelection *selection; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1176 GtkTreeViewColumn *column; |
9 | 1177 |
1522 | 1178 vbox = scrolled_notebook_page(notebook, _("Files")); |
9 | 1179 |
1180 group = pref_box_new(vbox, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP); | |
1181 | |
356 | 1182 pref_checkbox_new_int(group, _("Show hidden files or folders"), |
1183 options->file_filter.show_hidden_files, &c_options->file_filter.show_hidden_files); | |
1522 | 1184 #if 0 |
373
61a3c8b05b24
Add a new option in Preferences > Filtering to allow the
zas_
parents:
356
diff
changeset
|
1185 pref_checkbox_new_int(group, _("Show dot directory"), |
61a3c8b05b24
Add a new option in Preferences > Filtering to allow the
zas_
parents:
356
diff
changeset
|
1186 options->file_filter.show_dot_directory, &c_options->file_filter.show_dot_directory); |
1522 | 1187 #endif |
9 | 1188 pref_checkbox_new_int(group, _("Case sensitive sort"), |
329 | 1189 options->file_sort.case_sensitive, &c_options->file_sort.case_sensitive); |
9 | 1190 |
1191 ct_button = pref_checkbox_new_int(group, _("Disable File Filtering"), | |
332 | 1192 options->file_filter.disable, &c_options->file_filter.disable); |
9 | 1193 |
170
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1194 |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1195 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
|
1196 |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1197 sidecar_ext_entry = gtk_entry_new(); |
1229
878718372aca
sidecar files grouping was made case-insensitive
nadvornik
parents:
1216
diff
changeset
|
1198 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
|
1199 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
|
1200 gtk_widget_show(sidecar_ext_entry); |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1201 |
9 | 1202 group = pref_group_new(vbox, TRUE, _("File types"), GTK_ORIENTATION_VERTICAL); |
1203 | |
1204 frame = pref_group_parent(group); | |
1205 g_signal_connect(G_OBJECT(ct_button), "toggled", | |
1206 G_CALLBACK(filter_disable_cb), frame); | |
332 | 1207 gtk_widget_set_sensitive(frame, !options->file_filter.disable); |
9 | 1208 |
1209 scrolled = gtk_scrolled_window_new(NULL, NULL); | |
1210 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
|
1211 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
9 | 1212 gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 0); |
1213 gtk_widget_show(scrolled); | |
1214 | |
1215 filter_store = gtk_list_store_new(1, G_TYPE_POINTER); | |
1216 filter_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(filter_store)); | |
1217 g_object_unref(filter_store); | |
1218 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(filter_view)); | |
1219 gtk_tree_selection_set_mode(GTK_TREE_SELECTION(selection), GTK_SELECTION_SINGLE); | |
1220 | |
1221 gtk_tree_view_set_enable_search(GTK_TREE_VIEW(filter_view), FALSE); | |
1222 | |
1223 column = gtk_tree_view_column_new(); | |
1224 gtk_tree_view_column_set_title(column, _("Filter")); | |
1225 gtk_tree_view_column_set_resizable(column, TRUE); | |
1226 | |
1227 renderer = gtk_cell_renderer_toggle_new(); | |
1228 g_signal_connect(G_OBJECT(renderer), "toggled", | |
1229 G_CALLBACK(filter_store_enable_cb), filter_store); | |
1230 gtk_tree_view_column_pack_start(column, renderer, FALSE); | |
1231 gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func, | |
1232 GINT_TO_POINTER(FE_ENABLE), NULL); | |
442 | 1233 |
9 | 1234 renderer = gtk_cell_renderer_text_new(); |
1235 g_signal_connect(G_OBJECT(renderer), "edited", | |
1236 G_CALLBACK(filter_store_ext_edit_cb), filter_store); | |
1237 gtk_tree_view_column_pack_start(column, renderer, TRUE); | |
1238 g_object_set(G_OBJECT(renderer), "editable", (gboolean)TRUE, NULL); | |
1239 gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func, | |
1240 GINT_TO_POINTER(FE_EXTENSION), NULL); | |
1241 gtk_tree_view_append_column(GTK_TREE_VIEW(filter_view), column); | |
1242 | |
1243 column = gtk_tree_view_column_new(); | |
1244 gtk_tree_view_column_set_title(column, _("Description")); | |
1245 gtk_tree_view_column_set_resizable(column, TRUE); | |
1246 renderer = gtk_cell_renderer_text_new(); | |
1247 g_signal_connect(G_OBJECT(renderer), "edited", | |
1248 G_CALLBACK(filter_store_desc_edit_cb), filter_store); | |
1249 g_object_set(G_OBJECT(renderer), "editable", (gboolean)TRUE, NULL); | |
1250 gtk_tree_view_column_pack_start(column, renderer, FALSE); | |
1251 gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func, | |
1252 GINT_TO_POINTER(FE_DESCRIPTION), NULL); | |
1253 gtk_tree_view_append_column(GTK_TREE_VIEW(filter_view), column); | |
1254 | |
1216 | 1255 column = gtk_tree_view_column_new(); |
1256 gtk_tree_view_column_set_title(column, _("Class")); | |
1257 gtk_tree_view_column_set_resizable(column, TRUE); | |
1258 renderer = gtk_cell_renderer_combo_new(); | |
1259 g_object_set(G_OBJECT(renderer), "editable", (gboolean)TRUE, | |
1260 "model", create_class_model(), | |
1261 "text-column", 0, | |
1262 "has-entry", FALSE, | |
1263 NULL); | |
1264 | |
1265 g_signal_connect(G_OBJECT(renderer), "edited", | |
1266 G_CALLBACK(filter_store_class_edit_cb), filter_store); | |
1267 gtk_tree_view_column_pack_start(column, renderer, TRUE); | |
1268 gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func, | |
1269 GINT_TO_POINTER(FE_CLASS), NULL); | |
1270 gtk_tree_view_append_column(GTK_TREE_VIEW(filter_view), column); | |
1271 | |
1239
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1272 column = gtk_tree_view_column_new(); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1273 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
|
1274 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
|
1275 renderer = gtk_cell_renderer_toggle_new(); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1276 g_signal_connect(G_OBJECT(renderer), "toggled", |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1277 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
|
1278 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
|
1279 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
|
1280 GINT_TO_POINTER(FE_WRITABLE), NULL); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1281 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
|
1282 |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1283 column = gtk_tree_view_column_new(); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1284 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
|
1285 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
|
1286 renderer = gtk_cell_renderer_toggle_new(); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1287 g_signal_connect(G_OBJECT(renderer), "toggled", |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1288 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
|
1289 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
|
1290 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
|
1291 GINT_TO_POINTER(FE_ALLOW_SIDECAR), NULL); |
254b09942e68
metadata write mode (direct or sidecar) made configurable for each file
nadvornik
parents:
1229
diff
changeset
|
1292 gtk_tree_view_append_column(GTK_TREE_VIEW(filter_view), column); |
1216 | 1293 |
1294 | |
9 | 1295 filter_store_populate(); |
1296 gtk_container_add(GTK_CONTAINER(scrolled), filter_view); | |
1297 gtk_widget_show(filter_view); | |
1298 | |
1299 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP); | |
1300 | |
1301 button = pref_button_new(NULL, NULL, _("Defaults"), FALSE, | |
1302 G_CALLBACK(filter_default_cb), NULL); | |
1303 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1304 gtk_widget_show(button); | |
1305 | |
1306 button = pref_button_new(NULL, GTK_STOCK_REMOVE, NULL, FALSE, | |
1307 G_CALLBACK(filter_remove_cb), filter_view); | |
1308 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1309 gtk_widget_show(button); | |
1310 | |
1311 button = pref_button_new(NULL, GTK_STOCK_ADD, NULL, FALSE, | |
1312 G_CALLBACK(filter_add_cb), NULL); | |
1313 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1314 gtk_widget_show(button); | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1315 } |
1510 | 1316 |
1317 /* metadata tab */ | |
1318 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
|
1319 { |
1510 | 1320 GtkWidget *vbox; |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1321 GtkWidget *hbox; |
1510 | 1322 GtkWidget *group; |
1323 GtkWidget *ct_button; | |
1324 | |
1325 vbox = scrolled_notebook_page(notebook, _("Metadata")); | |
1326 | |
1327 group = pref_group_new(vbox, FALSE, _("Metadata"), GTK_ORIENTATION_VERTICAL); | |
1328 | |
1522 | 1329 pref_checkbox_new_int(group, _("Store metadata in '.metadata' folder, local to image folder (non-standard)"), |
1510 | 1330 options->metadata.enable_metadata_dirs, &c_options->metadata.enable_metadata_dirs); |
1331 | |
1522 | 1332 ct_button = pref_checkbox_new_int(group, _("Store keywords and comments as XMP tags in image files (standard)"), |
1510 | 1333 options->metadata.save_in_image_file, &c_options->metadata.save_in_image_file); |
1334 | |
1335 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_SPACE); | |
1336 pref_checkbox_link_sensitivity(ct_button, hbox); | |
1337 | |
1338 pref_checkbox_new_int(hbox, _("Store keywords and comments also in legacy IPTC tags"), | |
1339 options->metadata.save_legacy_IPTC, &c_options->metadata.save_legacy_IPTC); | |
1340 | |
1341 pref_checkbox_new_int(hbox, _("Warn if the image files are unwritable"), | |
1342 options->metadata.warn_on_write_problems, &c_options->metadata.warn_on_write_problems); | |
1343 | |
1344 pref_checkbox_new_int(hbox, _("Ask before writing to image files"), | |
1345 options->metadata.confirm_write, &c_options->metadata.confirm_write); | |
1346 | |
1347 pref_checkbox_new_int(group, _("Save metadata in GQview legacy metadata format"), | |
1348 options->metadata.save_legacy_format, &c_options->metadata.save_legacy_format); | |
1349 | |
1350 pref_checkbox_new_int(group, _("Write the same keywords and comment to all files in a group"), | |
1351 options->metadata.sync_grouped_files, &c_options->metadata.sync_grouped_files); | |
1352 | |
1353 ct_button = pref_checkbox_new_int(group, _("Write metadata after timeout"), | |
1354 options->metadata.confirm_after_timeout, &c_options->metadata.confirm_after_timeout); | |
1355 | |
1356 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); | |
1357 pref_checkbox_link_sensitivity(ct_button, hbox); | |
1358 | |
1359 pref_spin_new_int(hbox, _("Timeout (seconds):"), NULL, 0, 900, 1, | |
1360 options->metadata.confirm_timeout, &c_options->metadata.confirm_timeout); | |
1361 | |
1362 pref_checkbox_new_int(group, _("Write metadata on image change"), | |
1363 options->metadata.confirm_on_image_change, &c_options->metadata.confirm_on_image_change); | |
1364 | |
1365 pref_checkbox_new_int(group, _("Write metadata on directory change"), | |
1366 options->metadata.confirm_on_dir_change, &c_options->metadata.confirm_on_dir_change); | |
1367 } | |
1368 | |
1369 /* metadata tab */ | |
1370 static void config_tab_color(GtkWidget *notebook) | |
1371 { | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1372 GtkWidget *label; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1373 GtkWidget *vbox; |
1510 | 1374 GtkWidget *group; |
1375 GtkWidget *tabcomp; | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1376 GtkWidget *table; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1377 gint i; |
9 | 1378 |
1522 | 1379 vbox = scrolled_notebook_page(notebook, _("Color management")); |
9 | 1380 |
1510 | 1381 group = pref_group_new(vbox, FALSE, _("Color profiles"), GTK_ORIENTATION_VERTICAL); |
1382 #ifndef HAVE_LCMS | |
1383 gtk_widget_set_sensitive(pref_group_parent(group), FALSE); | |
1384 #endif | |
1385 | |
1386 table = pref_table_new(group, 3, COLOR_PROFILE_INPUTS + 2, FALSE, FALSE); | |
9 | 1387 gtk_table_set_col_spacings(GTK_TABLE(table), PREF_PAD_GAP); |
1388 | |
1510 | 1389 label = pref_table_label(table, 0, 0, _("Type"), 0.0); |
9 | 1390 pref_label_bold(label, TRUE, FALSE); |
1391 | |
1392 label = pref_table_label(table, 1, 0, _("Menu name"), 0.0); | |
1393 pref_label_bold(label, TRUE, FALSE); | |
1394 | |
1510 | 1395 label = pref_table_label(table, 2, 0, _("File"), 0.0); |
9 | 1396 pref_label_bold(label, TRUE, FALSE); |
1397 | |
1510 | 1398 for (i = 0; i < COLOR_PROFILE_INPUTS; i++) |
9 | 1399 { |
224 | 1400 GtkWidget *entry; |
1510 | 1401 gchar *buf; |
442 | 1402 |
1510 | 1403 buf = g_strdup_printf("Input %d:", i + COLOR_PROFILE_FILE); |
1404 pref_table_label(table, 0, i + 1, buf, 1.0); | |
1405 g_free(buf); | |
9 | 1406 |
224 | 1407 entry = gtk_entry_new(); |
1510 | 1408 gtk_entry_set_max_length(GTK_ENTRY(entry), EDITOR_NAME_MAX_LENGTH); |
1409 // gtk_widget_set_size_request(editor_name_entry[i], 30, -1); | |
1410 if (options->color_profile.input_name[i]) | |
1411 { | |
1412 gtk_entry_set_text(GTK_ENTRY(entry), options->color_profile.input_name[i]); | |
1413 } | |
1414 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
|
1415 GTK_FILL | GTK_EXPAND, 0, 0, 0); |
224 | 1416 gtk_widget_show(entry); |
1510 | 1417 color_profile_input_name_entry[i] = entry; |
1418 | |
1419 tabcomp = tab_completion_new(&entry, options->color_profile.input_file[i], NULL, NULL); | |
1420 tab_completion_add_select_button(entry, _("Select color profile"), FALSE); | |
1421 gtk_widget_set_size_request(entry, 160, -1); | |
1422 gtk_table_attach(GTK_TABLE(table), tabcomp, 2, 3, i + 1, i + 2, | |
1423 GTK_FILL | GTK_EXPAND, 0, 0, 0); | |
1424 gtk_widget_show(tabcomp); | |
1425 color_profile_input_file_entry[i] = entry; | |
9 | 1426 } |
1427 | |
1510 | 1428 pref_table_label(table, 0, COLOR_PROFILE_INPUTS + 1, _("Screen:"), 1.0); |
1429 tabcomp = tab_completion_new(&color_profile_screen_file_entry, | |
1430 options->color_profile.screen_file, NULL, NULL); | |
1431 tab_completion_add_select_button(color_profile_screen_file_entry, _("Select color profile"), FALSE); | |
1432 gtk_widget_set_size_request(color_profile_screen_file_entry, 160, -1); | |
1433 gtk_table_attach(GTK_TABLE(table), tabcomp, 2, 3, | |
1434 COLOR_PROFILE_INPUTS + 1, COLOR_PROFILE_INPUTS + 2, | |
1435 GTK_FILL | GTK_EXPAND, 0, 0, 0); | |
1436 gtk_widget_show(tabcomp); | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1437 } |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1438 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1439 /* advanced entry tab */ |
1510 | 1440 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
|
1441 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1442 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1443 GtkWidget *vbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1444 GtkWidget *group; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1445 GtkWidget *button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1446 GtkWidget *tabcomp; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1447 GtkWidget *ct_button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1448 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
|
1449 |
1510 | 1450 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
|
1451 |
1532 | 1452 group = pref_group_new(vbox, FALSE, pgettext("physical","Delete"), GTK_ORIENTATION_VERTICAL); |
9 | 1453 |
1454 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
|
1455 options->file_ops.confirm_delete, &c_options->file_ops.confirm_delete); |
9 | 1456 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
|
1457 options->file_ops.enable_delete_key, &c_options->file_ops.enable_delete_key); |
9 | 1458 |
1459 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
|
1460 options->file_ops.safe_delete_enable, &c_options->file_ops.safe_delete_enable); |
9 | 1461 |
1462 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); | |
1463 pref_checkbox_link_sensitivity(ct_button, hbox); | |
1464 | |
1465 pref_spacer(hbox, PREF_PAD_INDENT - PREF_PAD_SPACE); | |
1466 pref_label_new(hbox, _("Folder:")); | |
1467 | |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
339
diff
changeset
|
1468 tabcomp = tab_completion_new(&safe_delete_path_entry, options->file_ops.safe_delete_path, NULL, NULL); |
9 | 1469 tab_completion_add_select_button(safe_delete_path_entry, NULL, TRUE); |
1470 gtk_box_pack_start(GTK_BOX(hbox), tabcomp, TRUE, TRUE, 0); | |
1471 gtk_widget_show(tabcomp); | |
1472 | |
1473 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP); | |
1474 pref_checkbox_link_sensitivity(ct_button, hbox); | |
1475 | |
1476 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
|
1477 spin = pref_spin_new_int(hbox, _("Maximum size:"), _("MB"), |
442 | 1478 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
|
1479 #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
|
1480 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
|
1481 #endif |
9 | 1482 button = pref_button_new(NULL, NULL, _("View"), FALSE, |
1483 G_CALLBACK(safe_delete_view_cb), NULL); | |
1484 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1485 gtk_widget_show(button); | |
1486 | |
1487 button = pref_button_new(NULL, GTK_STOCK_CLEAR, NULL, FALSE, | |
1488 G_CALLBACK(safe_delete_clear_cb), NULL); | |
1489 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1490 gtk_widget_show(button); | |
1491 | |
497 | 1492 |
9 | 1493 group = pref_group_new(vbox, FALSE, _("Behavior"), GTK_ORIENTATION_VERTICAL); |
1494 | |
1495 pref_checkbox_new_int(group, _("Rectangular selection in icon view"), | |
330 | 1496 options->collections.rectangular_selection, &c_options->collections.rectangular_selection); |
9 | 1497 |
1498 pref_checkbox_new_int(group, _("Descend folders in tree view"), | |
321 | 1499 options->tree_descend_subdirs, &c_options->tree_descend_subdirs); |
9 | 1500 |
1501 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
|
1502 options->file_ops.enable_in_place_rename, &c_options->file_ops.enable_in_place_rename); |
9 | 1503 |
441
08eb7137cd94
Allow the user to change open_recent_list_maxsize option through
zas_
parents:
426
diff
changeset
|
1504 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
|
1505 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
|
1506 |
7a69309b91c8
Allow the user to set the drag'n drop icon size through
zas_
parents:
446
diff
changeset
|
1507 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
|
1508 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
|
1509 |
9 | 1510 group = pref_group_new(vbox, FALSE, _("Navigation"), GTK_ORIENTATION_VERTICAL); |
1511 | |
1512 pref_checkbox_new_int(group, _("Progressive keyboard scrolling"), | |
321 | 1513 options->progressive_key_scrolling, &c_options->progressive_key_scrolling); |
9 | 1514 pref_checkbox_new_int(group, _("Mouse wheel scrolls image"), |
321 | 1515 options->mousewheel_scrolls, &c_options->mousewheel_scrolls); |
9 | 1516 |
1213 | 1517 group = pref_group_new(vbox, FALSE, _("Miscellaneous"), GTK_ORIENTATION_VERTICAL); |
1518 | |
9 | 1519 pref_spin_new_int(group, _("Custom similarity threshold:"), NULL, |
1188 | 1520 0, 100, 1, options->duplicates_similarity_threshold, (int *)&c_options->duplicates_similarity_threshold); |
9 | 1521 |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1522 |
227
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1523 #ifdef DEBUG |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1524 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
|
1525 |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1526 pref_spin_new_int(group, _("Debug level:"), NULL, |
507 | 1527 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
|
1528 #endif |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1529 } |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1530 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1531 /* Main preferences window */ |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1532 static void config_window_create(void) |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1533 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1534 GtkWidget *win_vbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1535 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1536 GtkWidget *notebook; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1537 GtkWidget *button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1538 GtkWidget *ct_button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1539 |
321 | 1540 if (!c_options) c_options = init_options(NULL); |
318 | 1541 |
289
6a7298988a7a
Simplify and unify gtk_window creation with the help of
zas_
parents:
288
diff
changeset
|
1542 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
|
1543 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
|
1544 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
|
1545 G_CALLBACK(config_window_delete), NULL); |
442 | 1546 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
|
1547 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
|
1548 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
|
1549 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1550 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
|
1551 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
|
1552 gtk_widget_show(win_vbox); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1553 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1554 hbox = gtk_hbutton_box_new(); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1555 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
|
1556 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
|
1557 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
|
1558 gtk_widget_show(hbox); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1559 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1560 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
|
1561 G_CALLBACK(config_window_ok_cb), NULL); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1562 gtk_container_add(GTK_CONTAINER(hbox), button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1563 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
|
1564 gtk_widget_grab_default(button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1565 gtk_widget_show(button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1566 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1567 ct_button = button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1568 |
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
|
1569 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
|
1570 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
|
1571 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
|
1572 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
|
1573 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
|
1574 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1575 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
|
1576 G_CALLBACK(config_window_apply_cb), NULL); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1577 gtk_container_add(GTK_CONTAINER(hbox), button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1578 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
|
1579 gtk_widget_show(button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1580 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1581 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
|
1582 G_CALLBACK(config_window_close_cb), NULL); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1583 gtk_container_add(GTK_CONTAINER(hbox), button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1584 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
|
1585 gtk_widget_show(button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1586 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1587 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
|
1588 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1589 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
|
1590 } |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1591 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1592 notebook = gtk_notebook_new(); |
512
f9bf33be53ff
Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents:
507
diff
changeset
|
1593 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
|
1594 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
|
1595 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1596 config_tab_general(notebook); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1597 config_tab_image(notebook); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1598 config_tab_windows(notebook); |
1522 | 1599 config_tab_files(notebook); |
1510 | 1600 config_tab_metadata(notebook); |
1601 config_tab_color(notebook); | |
1602 config_tab_behavior(notebook); | |
227
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1603 |
9 | 1604 gtk_widget_show(notebook); |
1605 | |
1606 gtk_widget_show(configwindow); | |
1607 } | |
1608 | |
1609 /* | |
1610 *----------------------------------------------------------------------------- | |
1611 * config window show (public) | |
1612 *----------------------------------------------------------------------------- | |
442 | 1613 */ |
9 | 1614 |
1615 void show_config_window(void) | |
1616 { | |
1617 if (configwindow) | |
1618 { | |
1619 gtk_window_present(GTK_WINDOW(configwindow)); | |
1620 return; | |
1621 } | |
1622 | |
1623 config_window_create(); | |
1624 } | |
1625 | |
1626 /* | |
1627 *----------------- | |
1628 * about window | |
1629 *----------------- | |
1630 */ | |
1631 | |
1632 static GtkWidget *about = NULL; | |
1633 | |
1443 | 1634 static gboolean about_delete_cb(GtkWidget *widget, GdkEventAny *event, gpointer data) |
9 | 1635 { |
1636 gtk_widget_destroy(about); | |
1637 about = NULL; | |
1638 | |
1639 return TRUE; | |
1640 } | |
1641 | |
1642 static void about_window_close(GtkWidget *widget, gpointer data) | |
1643 { | |
1644 if (!about) return; | |
1645 | |
1646 gtk_widget_destroy(about); | |
1647 about = NULL; | |
1648 } | |
1649 | |
1650 static void about_credits_cb(GtkWidget *widget, gpointer data) | |
1651 { | |
1652 help_window_show("credits"); | |
1653 } | |
1654 | |
1655 void show_about_window(void) | |
1656 { | |
1657 GtkWidget *vbox; | |
1658 GtkWidget *hbox; | |
1659 GtkWidget *label; | |
1660 GtkWidget *button; | |
1661 GdkPixbuf *pixbuf; | |
1662 | |
1663 gchar *buf; | |
1664 | |
1665 if (about) | |
1666 { | |
1667 gtk_window_present(GTK_WINDOW(about)); | |
1668 return; | |
1669 } | |
1670 | |
289
6a7298988a7a
Simplify and unify gtk_window creation with the help of
zas_
parents:
288
diff
changeset
|
1671 about = window_new(GTK_WINDOW_TOPLEVEL, "about", NULL, NULL, _("About")); |
9 | 1672 gtk_window_set_type_hint(GTK_WINDOW(about), GDK_WINDOW_TYPE_HINT_DIALOG); |
1673 g_signal_connect(G_OBJECT(about), "delete_event", | |
1674 G_CALLBACK(about_delete_cb), NULL); | |
1675 | |
1676 gtk_container_set_border_width(GTK_CONTAINER(about), PREF_PAD_BORDER); | |
1677 | |
1678 vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE); | |
1679 gtk_container_add(GTK_CONTAINER(about), vbox); | |
1680 gtk_widget_show(vbox); | |
1681 | |
1682 pixbuf = pixbuf_inline(PIXBUF_INLINE_LOGO); | |
1683 button = gtk_image_new_from_pixbuf(pixbuf); | |
1684 g_object_unref(pixbuf); | |
1685 gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, TRUE, 0); | |
1686 gtk_widget_show(button); | |
1687 | |
475 | 1688 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
|
1689 GQ_APPNAME, |
9 | 1690 VERSION, |
1284 | 1691 "2008 - 2009", |
288
d1f74154463e
Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents:
283
diff
changeset
|
1692 GQ_WEBSITE, |
d1f74154463e
Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents:
283
diff
changeset
|
1693 GQ_EMAIL_ADDRESS); |
9 | 1694 label = gtk_label_new(buf); |
1695 g_free(buf); | |
1696 | |
1697 gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER); | |
1698 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); | |
1699 gtk_widget_show(label); | |
1700 | |
1701 hbox = gtk_hbutton_box_new(); | |
1702 gtk_button_box_set_layout(GTK_BUTTON_BOX(hbox), GTK_BUTTONBOX_END); | |
1703 gtk_box_set_spacing(GTK_BOX(hbox), PREF_PAD_BUTTON_GAP); | |
1704 gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
1705 gtk_widget_show(hbox); | |
1706 | |
1707 button = pref_button_new(NULL, NULL, _("Credits..."), FALSE, | |
1708 G_CALLBACK(about_credits_cb), NULL); | |
1709 gtk_container_add(GTK_CONTAINER(hbox), button); | |
1710 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); | |
1711 gtk_widget_show(button); | |
1712 | |
1713 button = pref_button_new(NULL, GTK_STOCK_CLOSE, NULL, FALSE, | |
1714 G_CALLBACK(about_window_close), NULL); | |
1715 gtk_container_add(GTK_CONTAINER(hbox), button); | |
1716 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); | |
1717 gtk_widget_grab_default(button); | |
1718 gtk_widget_show(button); | |
1719 | |
1720 gtk_widget_show(about); | |
1721 } | |
1055
1646720364cf
Adding a vim modeline to all files - patch by Klaus Ethgen
nadvornik
parents:
1053
diff
changeset
|
1722 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ |