Mercurial > geeqie
annotate src/rcfile.c @ 640:fd26409e3a6a
Minor formatting fix in rc file header.
author | zas_ |
---|---|
date | Mon, 12 May 2008 10:37:37 +0000 |
parents | 8b95e1859fee |
children | 81441380d3be |
rev | line source |
---|---|
1 | 1 /* |
196 | 2 * Geeqie |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
3 * (C) 2006 John Ellis |
475 | 4 * Copyright (C) 2008 The Geeqie Team |
1 | 5 * |
6 * Author: John Ellis | |
7 * | |
9 | 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! | |
1 | 11 */ |
12 | |
276 | 13 #include <glib/gstdio.h> |
14 #include <errno.h> | |
9 | 15 |
281 | 16 #include "main.h" |
9 | 17 #include "rcfile.h" |
1 | 18 |
307
667e49f52168
Move secure save code to its own files: secure_save.{c,h}.
zas_
parents:
288
diff
changeset
|
19 #include "bar_exif.h" |
586 | 20 #include "filefilter.h" |
307
667e49f52168
Move secure save code to its own files: secure_save.{c,h}.
zas_
parents:
288
diff
changeset
|
21 #include "secure_save.h" |
9 | 22 #include "slideshow.h" |
23 #include "ui_fileops.h" | |
24 | |
1 | 25 |
26 /* | |
27 *----------------------------------------------------------------------------- | |
28 * line write/parse routines (private) | |
29 *----------------------------------------------------------------------------- | |
442 | 30 */ |
31 | |
32 /* | |
217 | 33 returns text without quotes or NULL for empty or broken string |
34 any text up to first '"' is skipped | |
35 tail is set to point at the char after the second '"' | |
442 | 36 or at the ending \0 |
37 | |
217 | 38 */ |
1 | 39 |
217 | 40 gchar *quoted_value(const gchar *text, const gchar **tail) |
1 | 41 { |
9 | 42 const gchar *ptr; |
1 | 43 gint c = 0; |
44 gint l = strlen(text); | |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
45 gchar *retval = NULL; |
442 | 46 |
217 | 47 if (tail) *tail = text; |
442 | 48 |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
49 if (l == 0) return retval; |
1 | 50 |
51 while (c < l && text[c] !='"') c++; | |
52 if (text[c] == '"') | |
53 { | |
9 | 54 gint e; |
1 | 55 c++; |
56 ptr = text + c; | |
9 | 57 e = c; |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
58 while (e < l) |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
59 { |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
60 if (text[e-1] != '\\' && text[e] == '"') break; |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
61 e++; |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
62 } |
9 | 63 if (text[e] == '"') |
1 | 64 { |
9 | 65 if (e - c > 0) |
1 | 66 { |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
67 gchar *substring = g_strndup(ptr, e - c); |
442 | 68 |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
69 if (substring) |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
70 { |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
71 retval = g_strcompress(substring); |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
72 g_free(substring); |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
73 } |
1 | 74 } |
75 } | |
217 | 76 if (tail) *tail = text + e + 1; |
1 | 77 } |
78 else | |
79 /* for compatibility with older formats (<0.3.7) | |
80 * read a line without quotes too */ | |
81 { | |
82 c = 0; | |
83 while (c < l && text[c] !=' ' && text[c] !=8 && text[c] != '\n') c++; | |
84 if (c != 0) | |
85 { | |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
86 retval = g_strndup(text, c); |
1 | 87 } |
217 | 88 if (tail) *tail = text + c; |
1 | 89 } |
90 | |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
91 return retval; |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
92 } |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
93 |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
94 gchar *escquote_value(const gchar *text) |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
95 { |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
96 gchar *e; |
442 | 97 |
217 | 98 if (!text) return g_strdup("\"\""); |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
99 |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
100 e = g_strescape(text, ""); |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
101 if (e) |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
102 { |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
103 gchar *retval = g_strdup_printf("\"%s\"", e); |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
104 g_free(e); |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
105 return retval; |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
106 } |
217 | 107 return g_strdup("\"\""); |
1 | 108 } |
109 | |
276 | 110 static void write_char_option(SecureSaveInfo *ssi, gchar *label, gchar *text) |
1 | 111 { |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
112 gchar *escval = escquote_value(text); |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
113 |
276 | 114 secure_fprintf(ssi, "%s: %s\n", label, escval); |
217 | 115 g_free(escval); |
1 | 116 } |
117 | |
639 | 118 static gboolean read_char_option(FILE *f, gchar *option, gchar *label, gchar *value, gchar **text) |
1 | 119 { |
639 | 120 if (g_ascii_strcasecmp(option, label) != 0) return FALSE; |
121 if (!text) return FALSE; | |
122 | |
123 g_free(*text); | |
124 *text = quoted_value(value, NULL); | |
125 return TRUE; | |
1 | 126 } |
127 | |
267
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
250
diff
changeset
|
128 /* Since gdk_color_to_string() is only available since gtk 2.12 |
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
250
diff
changeset
|
129 * here is an equivalent stub function. */ |
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
250
diff
changeset
|
130 static gchar *color_to_string(GdkColor *color) |
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
250
diff
changeset
|
131 { |
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
250
diff
changeset
|
132 return g_strdup_printf("#%04X%04X%04X", color->red, color->green, color->blue); |
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
250
diff
changeset
|
133 } |
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
250
diff
changeset
|
134 |
276 | 135 static void write_color_option(SecureSaveInfo *ssi, gchar *label, GdkColor *color) |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
136 { |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
137 if (color) |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
138 { |
267
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
250
diff
changeset
|
139 gchar *colorstring = color_to_string(color); |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
140 |
276 | 141 write_char_option(ssi, label, colorstring); |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
142 g_free(colorstring); |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
143 } |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
144 else |
276 | 145 secure_fprintf(ssi, "%s: \n", label); |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
146 } |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
147 |
639 | 148 static gboolean read_color_option(FILE *f, gchar *option, gchar *label, gchar *value, GdkColor *color) |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
149 { |
639 | 150 gchar *colorstr; |
151 | |
152 if (g_ascii_strcasecmp(option, label) != 0) return FALSE; | |
153 if (!color) return FALSE; | |
154 | |
155 colorstr = quoted_value(value, NULL); | |
156 if (!colorstr) return FALSE; | |
157 gdk_color_parse(colorstr, color); | |
158 g_free(colorstr); | |
159 return TRUE; | |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
160 } |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
161 |
276 | 162 static void write_int_option(SecureSaveInfo *ssi, gchar *label, gint n) |
1 | 163 { |
276 | 164 secure_fprintf(ssi, "%s: %d\n", label, n); |
1 | 165 } |
166 | |
639 | 167 static gboolean read_int_option(FILE *f, gchar *option, gchar *label, gchar *value, gint *n) |
168 { | |
169 if (g_ascii_strcasecmp(option, label) != 0) return FALSE; | |
170 if (!n) return FALSE; | |
171 | |
172 if (g_ascii_isdigit(value[0]) || (value[0] == '-' && g_ascii_isdigit(value[1]))) | |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
173 { |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
174 *n = strtol(value, NULL, 10); |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
175 } |
639 | 176 else |
177 { | |
178 if (g_ascii_strcasecmp(value, "true") == 0) | |
179 *n = 1; | |
180 else | |
181 *n = 0; | |
182 } | |
183 | |
184 return TRUE; | |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
185 } |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
186 |
380
5afe77bb563a
Introduce a new struct ViewDir to handle directory views common
zas_
parents:
377
diff
changeset
|
187 static void write_uint_option(SecureSaveInfo *ssi, gchar *label, guint n) |
5afe77bb563a
Introduce a new struct ViewDir to handle directory views common
zas_
parents:
377
diff
changeset
|
188 { |
5afe77bb563a
Introduce a new struct ViewDir to handle directory views common
zas_
parents:
377
diff
changeset
|
189 secure_fprintf(ssi, "%s: %u\n", label, n); |
5afe77bb563a
Introduce a new struct ViewDir to handle directory views common
zas_
parents:
377
diff
changeset
|
190 } |
5afe77bb563a
Introduce a new struct ViewDir to handle directory views common
zas_
parents:
377
diff
changeset
|
191 |
639 | 192 static gboolean read_uint_option(FILE *f, gchar *option, gchar *label, gchar *value, guint *n) |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
193 { |
639 | 194 if (g_ascii_strcasecmp(option, label) != 0) return FALSE; |
195 if (!n) return FALSE; | |
196 | |
197 if (g_ascii_isdigit(value[0])) | |
9 | 198 { |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
199 *n = strtoul(value, NULL, 10); |
9 | 200 } |
639 | 201 else |
202 { | |
203 if (g_ascii_strcasecmp(value, "true") == 0) | |
204 *n = 1; | |
205 else | |
206 *n = 0; | |
207 } | |
208 | |
209 return TRUE; | |
9 | 210 } |
211 | |
639 | 212 static gboolean read_int_option_clamp(FILE *f, gchar *option, gchar *label, gchar *value, gint *n, gint min, gint max) |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
213 { |
639 | 214 gboolean ret; |
215 | |
216 ret = read_int_option(f, option, label, value, n); | |
217 if (ret) *n = CLAMP(*n, min, max); | |
218 | |
219 return ret; | |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
220 } |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
221 |
276 | 222 static void write_int_unit_option(SecureSaveInfo *ssi, gchar *label, gint n, gint subunits) |
9 | 223 { |
224 gint l, r; | |
225 | |
226 if (subunits > 0) | |
227 { | |
228 l = n / subunits; | |
229 r = n % subunits; | |
230 } | |
231 else | |
1 | 232 { |
9 | 233 l = n; |
234 r = 0; | |
235 } | |
236 | |
276 | 237 secure_fprintf(ssi, "%s: %d.%d\n", label, l, r); |
9 | 238 } |
239 | |
639 | 240 static gboolean read_int_unit_option(FILE *f, gchar *option, gchar *label, gchar *value, gint *n, gint subunits) |
9 | 241 { |
639 | 242 gint l, r; |
243 gchar *ptr; | |
244 | |
245 if (g_ascii_strcasecmp(option, label) != 0) return FALSE; | |
246 if (!n) return FALSE; | |
9 | 247 |
639 | 248 ptr = value; |
249 while (*ptr != '\0' && *ptr != '.') ptr++; | |
250 if (*ptr == '.') | |
251 { | |
252 *ptr = '\0'; | |
253 l = strtol(value, NULL, 10); | |
254 *ptr = '.'; | |
255 ptr++; | |
256 r = strtol(ptr, NULL, 10); | |
257 } | |
258 else | |
259 { | |
260 l = strtol(value, NULL, 10); | |
261 r = 0; | |
262 } | |
9 | 263 |
639 | 264 *n = l * subunits + r; |
265 | |
266 return TRUE; | |
1 | 267 } |
268 | |
276 | 269 static void write_bool_option(SecureSaveInfo *ssi, gchar *label, gint n) |
1 | 270 { |
276 | 271 secure_fprintf(ssi, "%s: ", label); |
272 if (n) secure_fprintf(ssi, "true\n"); else secure_fprintf(ssi, "false\n"); | |
1 | 273 } |
274 | |
639 | 275 static gboolean read_bool_option(FILE *f, gchar *option, gchar *label, gchar *value, gint *n) |
1 | 276 { |
639 | 277 if (g_ascii_strcasecmp(option, label) != 0) return FALSE; |
278 if (!n) return FALSE; | |
279 | |
280 if (g_ascii_strcasecmp(value, "true") == 0 || atoi(value) != 0) | |
281 *n = TRUE; | |
282 else | |
283 *n = FALSE; | |
284 | |
285 return TRUE; | |
1 | 286 } |
287 | |
639 | 288 |
1 | 289 /* |
290 *----------------------------------------------------------------------------- | |
291 * save configuration (public) | |
292 *----------------------------------------------------------------------------- | |
442 | 293 */ |
1 | 294 |
9 | 295 void save_options(void) |
1 | 296 { |
276 | 297 SecureSaveInfo *ssi; |
1 | 298 gchar *rc_path; |
9 | 299 gchar *rc_pathl; |
1 | 300 gint i; |
301 | |
283 | 302 rc_path = g_strconcat(homedir(), "/", GQ_RC_DIR, "/", RC_FILE_NAME, NULL); |
1 | 303 |
9 | 304 rc_pathl = path_from_utf8(rc_path); |
276 | 305 ssi = secure_open(rc_pathl); |
9 | 306 g_free(rc_pathl); |
276 | 307 if (!ssi) |
1 | 308 { |
403 | 309 printf_term(_("error saving config file: %s\n"), rc_path); |
1 | 310 g_free(rc_path); |
311 return; | |
312 } | |
442 | 313 |
372 | 314 #define WRITE_BOOL(_name_) write_bool_option(ssi, #_name_, options->_name_) |
315 #define WRITE_INT(_name_) write_int_option(ssi, #_name_, options->_name_) | |
380
5afe77bb563a
Introduce a new struct ViewDir to handle directory views common
zas_
parents:
377
diff
changeset
|
316 #define WRITE_UINT(_name_) write_uint_option(ssi, #_name_, options->_name_) |
372 | 317 #define WRITE_INT_UNIT(_name_, _unit_) write_int_unit_option(ssi, #_name_, options->_name_, _unit_) |
318 #define WRITE_CHAR(_name_) write_char_option(ssi, #_name_, options->_name_) | |
319 #define WRITE_COLOR(_name_) write_color_option(ssi, #_name_, &options->_name_) | |
320 | |
321 #define WRITE_SEPARATOR() secure_fputc(ssi, '\n') | |
322 #define WRITE_SUBTITLE(_title_) secure_fprintf(ssi, "\n\n##### "_title_" #####\n\n") | |
323 | |
276 | 324 secure_fprintf(ssi, "######################################################################\n"); |
640 | 325 secure_fprintf(ssi, "# %30s config file version %-10s #\n", GQ_APPNAME, VERSION); |
276 | 326 secure_fprintf(ssi, "######################################################################\n"); |
372 | 327 WRITE_SEPARATOR(); |
1 | 328 |
276 | 329 secure_fprintf(ssi, "# Note: This file is autogenerated. Options can be changed here,\n"); |
330 secure_fprintf(ssi, "# but user comments and formatting will be lost.\n"); | |
372 | 331 WRITE_SEPARATOR(); |
276 | 332 |
372 | 333 WRITE_SUBTITLE("General Options"); |
1 | 334 |
372 | 335 WRITE_BOOL(show_icon_names); |
497 | 336 WRITE_BOOL(show_copy_path); |
372 | 337 WRITE_SEPARATOR(); |
9 | 338 |
372 | 339 WRITE_BOOL(tree_descend_subdirs); |
340 WRITE_BOOL(lazy_image_sync); | |
341 WRITE_BOOL(update_on_time_change); | |
342 WRITE_SEPARATOR(); | |
1 | 343 |
372 | 344 WRITE_BOOL(progressive_key_scrolling); |
345 WRITE_BOOL(enable_metadata_dirs); | |
594
4cfce4ed35e0
Use a dedicated option to enable keywords and comment saving as XMP tags
zas_
parents:
586
diff
changeset
|
346 WRITE_BOOL(save_metadata_in_image_file); |
335 | 347 |
372 | 348 WRITE_INT(duplicates_similarity_threshold); |
349 WRITE_SEPARATOR(); | |
335 | 350 |
372 | 351 WRITE_BOOL(mousewheel_scrolls); |
352 WRITE_INT(open_recent_list_maxsize); | |
458
7a69309b91c8
Allow the user to set the drag'n drop icon size through
zas_
parents:
446
diff
changeset
|
353 WRITE_INT(dnd_icon_size); |
372 | 354 WRITE_BOOL(place_dialogs_under_mouse); |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
355 |
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
356 |
629 | 357 WRITE_SUBTITLE("Startup Options"); |
358 | |
359 WRITE_BOOL(startup.restore_path); | |
630
83d3ded39e49
An option to save and restore the last path used was added.
zas_
parents:
629
diff
changeset
|
360 WRITE_BOOL(startup.use_last_path); |
629 | 361 WRITE_CHAR(startup.path); |
362 | |
363 | |
372 | 364 WRITE_SUBTITLE("File operations Options"); |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
365 |
372 | 366 WRITE_BOOL(file_ops.enable_in_place_rename); |
367 WRITE_BOOL(file_ops.confirm_delete); | |
368 WRITE_BOOL(file_ops.enable_delete_key); | |
369 WRITE_BOOL(file_ops.safe_delete_enable); | |
370 WRITE_CHAR(file_ops.safe_delete_path); | |
371 WRITE_INT(file_ops.safe_delete_folder_maxsize); | |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
372 |
442 | 373 |
372 | 374 WRITE_SUBTITLE("Layout Options"); |
335 | 375 |
372 | 376 WRITE_INT(layout.style); |
377 WRITE_CHAR(layout.order); | |
380
5afe77bb563a
Introduce a new struct ViewDir to handle directory views common
zas_
parents:
377
diff
changeset
|
378 WRITE_UINT(layout.dir_view_type); |
556
fe675761d091
Replace Layout icon_view field by more generic file_view_type.
zas_
parents:
537
diff
changeset
|
379 WRITE_UINT(layout.file_view_type); |
433
5ddcf93278c7
Save Show Marks state to rc file and display current state in menu.
zas_
parents:
413
diff
changeset
|
380 WRITE_BOOL(layout.show_marks); |
372 | 381 WRITE_BOOL(layout.show_thumbnails); |
382 WRITE_SEPARATOR(); | |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
383 |
372 | 384 WRITE_BOOL(layout.save_window_positions); |
385 WRITE_SEPARATOR(); | |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
386 |
372 | 387 WRITE_INT(layout.main_window.x); |
388 WRITE_INT(layout.main_window.y); | |
389 WRITE_INT(layout.main_window.w); | |
390 WRITE_INT(layout.main_window.h); | |
391 WRITE_BOOL(layout.main_window.maximized); | |
392 WRITE_INT(layout.main_window.hdivider_pos); | |
393 WRITE_INT(layout.main_window.vdivider_pos); | |
394 WRITE_SEPARATOR(); | |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
395 |
372 | 396 WRITE_INT(layout.float_window.x); |
397 WRITE_INT(layout.float_window.y); | |
398 WRITE_INT(layout.float_window.w); | |
399 WRITE_INT(layout.float_window.h); | |
400 WRITE_INT(layout.float_window.vdivider_pos); | |
401 WRITE_SEPARATOR(); | |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
402 |
372 | 403 WRITE_BOOL(layout.tools_float); |
404 WRITE_BOOL(layout.tools_hidden); | |
405 WRITE_BOOL(layout.tools_restore_state); | |
406 WRITE_SEPARATOR(); | |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
407 |
372 | 408 WRITE_BOOL(layout.toolbar_hidden); |
335 | 409 |
489
3809ffa3567b
Save state and width of exif, info and sort panels to rc file.
zas_
parents:
475
diff
changeset
|
410 WRITE_SUBTITLE("Panels Options"); |
3809ffa3567b
Save state and width of exif, info and sort panels to rc file.
zas_
parents:
475
diff
changeset
|
411 |
3809ffa3567b
Save state and width of exif, info and sort panels to rc file.
zas_
parents:
475
diff
changeset
|
412 WRITE_BOOL(panels.exif.enabled); |
3809ffa3567b
Save state and width of exif, info and sort panels to rc file.
zas_
parents:
475
diff
changeset
|
413 WRITE_INT(panels.exif.width); |
3809ffa3567b
Save state and width of exif, info and sort panels to rc file.
zas_
parents:
475
diff
changeset
|
414 WRITE_BOOL(panels.info.enabled); |
3809ffa3567b
Save state and width of exif, info and sort panels to rc file.
zas_
parents:
475
diff
changeset
|
415 WRITE_INT(panels.info.width); |
3809ffa3567b
Save state and width of exif, info and sort panels to rc file.
zas_
parents:
475
diff
changeset
|
416 WRITE_BOOL(panels.sort.enabled); |
491 | 417 WRITE_INT(panels.sort.action_state); |
418 WRITE_INT(panels.sort.mode_state); | |
419 WRITE_INT(panels.sort.selection_state); | |
335 | 420 |
372 | 421 WRITE_SUBTITLE("Image Options"); |
442 | 422 |
377 | 423 secure_fprintf(ssi, "# image.zoom_mode possible values are:\n" |
424 "# original\n" | |
425 "# fit\n" | |
426 "# dont_change\n"); | |
334 | 427 secure_fprintf(ssi, "image.zoom_mode: "); |
377 | 428 if (options->image.zoom_mode == ZOOM_RESET_ORIGINAL) |
429 secure_fprintf(ssi, "original\n"); | |
430 else if (options->image.zoom_mode == ZOOM_RESET_FIT_WINDOW) | |
431 secure_fprintf(ssi, "fit\n"); | |
432 else if (options->image.zoom_mode == ZOOM_RESET_NONE) | |
433 secure_fprintf(ssi, "dont_change\n"); | |
434 WRITE_SEPARATOR(); | |
372 | 435 WRITE_BOOL(image.zoom_2pass); |
436 WRITE_BOOL(image.zoom_to_fit_allow_expand); | |
437 WRITE_INT(image.zoom_quality); | |
438 WRITE_INT(image.zoom_increment); | |
439 WRITE_BOOL(image.fit_window_to_image); | |
440 WRITE_BOOL(image.limit_window_size); | |
441 WRITE_INT(image.max_window_size); | |
442 WRITE_BOOL(image.limit_autofit_size); | |
443 WRITE_INT(image.max_autofit_size); | |
444 WRITE_INT(image.scroll_reset_method); | |
445 WRITE_INT(image.tile_cache_max); | |
446 WRITE_INT(image.dither_quality); | |
447 WRITE_BOOL(image.enable_read_ahead); | |
448 WRITE_BOOL(image.exif_rotate_enable); | |
449 WRITE_BOOL(image.use_custom_border_color); | |
450 WRITE_COLOR(image.border_color); | |
413
9e521adbf312
Add two new options to control image read buffer at runtime.
zas_
parents:
403
diff
changeset
|
451 WRITE_INT(image.read_buffer_size); |
9e521adbf312
Add two new options to control image read buffer at runtime.
zas_
parents:
403
diff
changeset
|
452 WRITE_INT(image.idle_read_loop_count); |
335 | 453 |
372 | 454 WRITE_SUBTITLE("Thumbnails Options"); |
9 | 455 |
372 | 456 WRITE_INT(thumbnails.max_width); |
457 WRITE_INT(thumbnails.max_height); | |
458 WRITE_BOOL(thumbnails.enable_caching); | |
459 WRITE_BOOL(thumbnails.cache_into_dirs); | |
460 WRITE_BOOL(thumbnails.fast); | |
461 WRITE_BOOL(thumbnails.use_xvpics); | |
462 WRITE_BOOL(thumbnails.spec_standard); | |
463 WRITE_INT(thumbnails.quality); | |
335 | 464 |
9 | 465 |
372 | 466 WRITE_SUBTITLE("File sorting Options"); |
1 | 467 |
372 | 468 WRITE_INT(file_sort.method); |
469 WRITE_BOOL(file_sort.ascending); | |
470 WRITE_BOOL(file_sort.case_sensitive); | |
1 | 471 |
442 | 472 |
372 | 473 WRITE_SUBTITLE("Fullscreen Options"); |
4 | 474 |
372 | 475 WRITE_INT(fullscreen.screen); |
476 WRITE_BOOL(fullscreen.clean_flip); | |
477 WRITE_BOOL(fullscreen.disable_saver); | |
478 WRITE_BOOL(fullscreen.above); | |
468
2df505c60459
Replace fullscreen.info and fullscreen.show_info options by:
zas_
parents:
458
diff
changeset
|
479 |
612 | 480 |
481 WRITE_SUBTITLE("Histogram Options"); | |
482 WRITE_UINT(histogram.last_channel_mode); | |
483 WRITE_UINT(histogram.last_log_mode); | |
484 | |
485 | |
468
2df505c60459
Replace fullscreen.info and fullscreen.show_info options by:
zas_
parents:
458
diff
changeset
|
486 WRITE_SUBTITLE("Image Overlay Options"); |
638
8cc9f349c670
Rename option image_overlay.common.enabled to image_overlay.common.state
zas_
parents:
630
diff
changeset
|
487 WRITE_UINT(image_overlay.common.state); |
468
2df505c60459
Replace fullscreen.info and fullscreen.show_info options by:
zas_
parents:
458
diff
changeset
|
488 WRITE_BOOL(image_overlay.common.show_at_startup); |
2df505c60459
Replace fullscreen.info and fullscreen.show_info options by:
zas_
parents:
458
diff
changeset
|
489 WRITE_CHAR(image_overlay.common.template_string); |
1 | 490 |
612 | 491 |
372 | 492 WRITE_SUBTITLE("Slideshow Options"); |
276 | 493 |
372 | 494 WRITE_INT_UNIT(slideshow.delay, SLIDESHOW_SUBSECOND_PRECISION); |
495 WRITE_BOOL(slideshow.random); | |
496 WRITE_BOOL(slideshow.repeat); | |
276 | 497 |
335 | 498 |
372 | 499 WRITE_SUBTITLE("Collection Options"); |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
500 |
372 | 501 WRITE_BOOL(collections.rectangular_selection); |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
502 |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
503 |
372 | 504 WRITE_SUBTITLE("Filtering Options"); |
1 | 505 |
372 | 506 WRITE_BOOL(file_filter.show_hidden_files); |
373
61a3c8b05b24
Add a new option in Preferences > Filtering to allow the
zas_
parents:
372
diff
changeset
|
507 WRITE_BOOL(file_filter.show_dot_directory); |
372 | 508 WRITE_BOOL(file_filter.disable); |
509 WRITE_SEPARATOR(); | |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
510 |
276 | 511 filter_write_list(ssi); |
442 | 512 |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
513 |
372 | 514 WRITE_SUBTITLE("Sidecars Options"); |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
515 |
276 | 516 sidecar_ext_write(ssi); |
1 | 517 |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
518 |
372 | 519 WRITE_SUBTITLE("Color Profiles"); |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
520 |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
521 #ifndef HAVE_LCMS |
288
d1f74154463e
Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents:
283
diff
changeset
|
522 secure_fprintf(ssi, "# NOTICE: %s was not built with support for color profiles,\n" |
442 | 523 "# color profile options will have no effect.\n\n", GQ_APPNAME); |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
524 #endif |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
525 |
372 | 526 WRITE_BOOL(color_profile.enabled); |
527 WRITE_BOOL(color_profile.use_image); | |
528 WRITE_INT(color_profile.input_type); | |
529 WRITE_SEPARATOR(); | |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
530 |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
531 for (i = 0; i < COLOR_PROFILE_INPUTS; i++) |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
532 { |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
533 gchar *buf; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
534 |
327 | 535 buf = g_strdup_printf("color_profile.input_file_%d", i + 1); |
536 write_char_option(ssi, buf, options->color_profile.input_file[i]); | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
537 g_free(buf); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
538 |
327 | 539 buf = g_strdup_printf("color_profile.input_name_%d", i + 1); |
540 write_char_option(ssi, buf, options->color_profile.input_name[i]); | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
541 g_free(buf); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
542 } |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
543 |
372 | 544 WRITE_SEPARATOR(); |
545 WRITE_INT(color_profile.screen_type); | |
546 WRITE_CHAR(color_profile.screen_file); | |
547 | |
548 WRITE_SUBTITLE("External Programs"); | |
348 | 549 secure_fprintf(ssi, "# Maximum of %d programs (external_1 through external_%d)\n", GQ_EDITOR_GENERIC_SLOTS, GQ_EDITOR_GENERIC_SLOTS); |
550 secure_fprintf(ssi, "# external_%d through external_%d are used for file ops\n", GQ_EDITOR_GENERIC_SLOTS + 1, GQ_EDITOR_SLOTS); | |
276 | 551 secure_fprintf(ssi, "# format: external_n: \"menu name\" \"command line\"\n\n"); |
1 | 552 |
283 | 553 for (i = 0; i < GQ_EDITOR_SLOTS; i++) |
1 | 554 { |
348 | 555 if (i == GQ_EDITOR_GENERIC_SLOTS) secure_fputc(ssi, '\n'); |
318 | 556 gchar *qname = escquote_value(options->editor_name[i]); |
557 gchar *qcommand = escquote_value(options->editor_command[i]); | |
276 | 558 secure_fprintf(ssi, "external_%d: %s %s\n", i+1, qname, qcommand); |
217 | 559 g_free(qname); |
560 g_free(qcommand); | |
1 | 561 } |
562 | |
563 | |
372 | 564 WRITE_SUBTITLE("Exif Options"); |
565 secure_fprintf(ssi, "# Display: 0: never\n" | |
566 "# 1: if set\n" | |
567 "# 2: always\n\n"); | |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
568 for (i = 0; ExifUIList[i].key; i++) |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
569 { |
349 | 570 secure_fprintf(ssi, "exif.display."); |
276 | 571 write_int_option(ssi, (gchar *)ExifUIList[i].key, ExifUIList[i].current); |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
572 } |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
573 |
372 | 574 WRITE_SEPARATOR(); |
575 WRITE_SEPARATOR(); | |
576 | |
276 | 577 secure_fprintf(ssi, "######################################################################\n"); |
288
d1f74154463e
Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents:
283
diff
changeset
|
578 secure_fprintf(ssi, "# end of config file #\n"); |
276 | 579 secure_fprintf(ssi, "######################################################################\n"); |
1 | 580 |
442 | 581 |
276 | 582 if (secure_close(ssi)) |
403 | 583 printf_term(_("error saving config file: %s\nerror: %s\n"), rc_path, |
584 secsave_strerror(secsave_errno)); | |
1 | 585 |
586 g_free(rc_path); | |
587 } | |
588 | |
589 /* | |
590 *----------------------------------------------------------------------------- | |
591 * load configuration (public) | |
592 *----------------------------------------------------------------------------- | |
442 | 593 */ |
1 | 594 |
9 | 595 void load_options(void) |
1 | 596 { |
597 FILE *f; | |
598 gchar *rc_path; | |
9 | 599 gchar *rc_pathl; |
1 | 600 gchar s_buf[1024]; |
601 gchar option[1024]; | |
602 gchar value[1024]; | |
603 gchar value_all[1024]; | |
350
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
604 gint i; |
9 | 605 |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
606 for (i = 0; ExifUIList[i].key; i++) |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
607 ExifUIList[i].current = ExifUIList[i].default_value; |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
608 |
283 | 609 rc_path = g_strconcat(homedir(), "/", GQ_RC_DIR, "/", RC_FILE_NAME, NULL); |
1 | 610 |
9 | 611 rc_pathl = path_from_utf8(rc_path); |
612 f = fopen(rc_pathl,"r"); | |
613 g_free(rc_pathl); | |
1 | 614 if (!f) |
615 { | |
616 g_free(rc_path); | |
617 return; | |
618 } | |
619 | |
350
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
620 while (fgets(s_buf, sizeof(s_buf), f)) |
1 | 621 { |
350
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
622 gchar *option_start, *value_start; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
623 gchar *p = s_buf; |
1 | 624 |
516 | 625 while (g_ascii_isspace(*p)) p++; |
350
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
626 if (!*p || *p == '\n' || *p == '#') continue; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
627 option_start = p; |
516 | 628 while (*p && *p != ':') p++; |
350
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
629 if (!*p) continue; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
630 *p = '\0'; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
631 p++; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
632 strncpy(option, option_start, sizeof(option)); |
516 | 633 while (g_ascii_isspace(*p)) p++; |
350
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
634 value_start = p; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
635 strncpy(value_all, value_start, sizeof(value_all)); |
516 | 636 while (*p && !g_ascii_isspace(*p) && *p != '\n') p++; |
350
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
637 *p = '\0'; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
638 strncpy(value, value_start, sizeof(value)); |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
639 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
640 #define READ_BOOL(_name_) read_bool_option(f, option, #_name_, value, &options->_name_) |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
641 #define READ_INT(_name_) read_int_option(f, option, #_name_, value, &options->_name_) |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
642 #define READ_UINT(_name_) read_uint_option(f, option, #_name_, value, &options->_name_) |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
643 #define READ_INT_CLAMP(_name_, _min_, _max_) read_int_option_clamp(f, option, #_name_, value, &options->_name_, _min_, _max_) |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
644 #define READ_INT_UNIT(_name_, _unit_) read_int_unit_option(f, option, #_name_, value, &options->_name_, _unit_) |
353 | 645 #define READ_CHAR(_name_) read_char_option(f, option, #_name_, value_all, &options->_name_) |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
646 #define READ_COLOR(_name_) read_color_option(f, option, #_name_, value, &options->_name_) |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
647 |
472
3ad502287ff4
Add some macros to handle rc file compatibility issues related to
zas_
parents:
468
diff
changeset
|
648 #define COMPAT_READ_BOOL(_oldname_, _name_) read_bool_option(f, option, #_oldname_, value, &options->_name_) |
3ad502287ff4
Add some macros to handle rc file compatibility issues related to
zas_
parents:
468
diff
changeset
|
649 #define COMPAT_READ_INT(_oldname_, _name_) read_int_option(f, option, #_oldname_, value, &options->_name_) |
3ad502287ff4
Add some macros to handle rc file compatibility issues related to
zas_
parents:
468
diff
changeset
|
650 #define COMPAT_READ_UINT(_oldname_, _name_) read_uint_option(f, option, #_oldname_, value, &options->_name_) |
3ad502287ff4
Add some macros to handle rc file compatibility issues related to
zas_
parents:
468
diff
changeset
|
651 #define COMPAT_READ_INT_CLAMP(_oldname_, _name_, _min_, _max_) read_int_option_clamp(f, option, #_oldname_, value, &options->_name_, _min_, _max_) |
3ad502287ff4
Add some macros to handle rc file compatibility issues related to
zas_
parents:
468
diff
changeset
|
652 #define COMPAT_READ_INT_UNIT(_oldname_, _name_, _unit_) read_int_unit_option(f, option, #_oldname_, value, &options->_name_, _unit_) |
3ad502287ff4
Add some macros to handle rc file compatibility issues related to
zas_
parents:
468
diff
changeset
|
653 #define COMPAT_READ_CHAR(_oldname_, _name_) read_char_option(f, option, #_oldname_, value_all, &options->_name_) |
3ad502287ff4
Add some macros to handle rc file compatibility issues related to
zas_
parents:
468
diff
changeset
|
654 #define COMPAT_READ_COLOR(_oldname_, _name_) read_color_option(f, option, #_oldname_, value, &options->_name_) |
3ad502287ff4
Add some macros to handle rc file compatibility issues related to
zas_
parents:
468
diff
changeset
|
655 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
656 /* general options */ |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
657 READ_BOOL(show_icon_names); |
497 | 658 READ_BOOL(show_copy_path); |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
659 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
660 READ_BOOL(tree_descend_subdirs); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
661 READ_BOOL(lazy_image_sync); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
662 READ_BOOL(update_on_time_change); |
442 | 663 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
664 READ_INT(duplicates_similarity_threshold); |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
665 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
666 READ_BOOL(progressive_key_scrolling); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
667 |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
668 READ_BOOL(enable_metadata_dirs); |
594
4cfce4ed35e0
Use a dedicated option to enable keywords and comment saving as XMP tags
zas_
parents:
586
diff
changeset
|
669 READ_BOOL(save_metadata_in_image_file); |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
670 |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
671 READ_BOOL(mousewheel_scrolls); |
442 | 672 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
673 READ_INT(open_recent_list_maxsize); |
458
7a69309b91c8
Allow the user to set the drag'n drop icon size through
zas_
parents:
446
diff
changeset
|
674 READ_INT(dnd_icon_size); |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
675 READ_BOOL(place_dialogs_under_mouse); |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
676 |
629 | 677 /* startup options */ |
678 | |
679 COMPAT_READ_BOOL(startup_path_enable, startup.restore_path); /* 2008/05/11 */ | |
680 READ_BOOL(startup.restore_path); | |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
681 |
630
83d3ded39e49
An option to save and restore the last path used was added.
zas_
parents:
629
diff
changeset
|
682 READ_BOOL(startup.use_last_path); |
83d3ded39e49
An option to save and restore the last path used was added.
zas_
parents:
629
diff
changeset
|
683 |
629 | 684 COMPAT_READ_CHAR(startup_path, startup.path); /* 2008/05/11 */ |
685 READ_CHAR(startup.path); | |
686 | |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
687 /* layout options */ |
1 | 688 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
689 READ_INT(layout.style); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
690 READ_CHAR(layout.order); |
556
fe675761d091
Replace Layout icon_view field by more generic file_view_type.
zas_
parents:
537
diff
changeset
|
691 |
fe675761d091
Replace Layout icon_view field by more generic file_view_type.
zas_
parents:
537
diff
changeset
|
692 COMPAT_READ_UINT(layout.view_as_icons, layout.file_view_type); /* 2008/05/03 */ |
fe675761d091
Replace Layout icon_view field by more generic file_view_type.
zas_
parents:
537
diff
changeset
|
693 |
380
5afe77bb563a
Introduce a new struct ViewDir to handle directory views common
zas_
parents:
377
diff
changeset
|
694 READ_UINT(layout.dir_view_type); |
556
fe675761d091
Replace Layout icon_view field by more generic file_view_type.
zas_
parents:
537
diff
changeset
|
695 READ_UINT(layout.file_view_type); |
433
5ddcf93278c7
Save Show Marks state to rc file and display current state in menu.
zas_
parents:
413
diff
changeset
|
696 READ_BOOL(layout.show_marks); |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
697 READ_BOOL(layout.show_thumbnails); |
340
77103f3f2cb1
Rename option thumbnails.enabled to layout.show_thumbnails as it makes
zas_
parents:
339
diff
changeset
|
698 |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
699 /* window positions */ |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
700 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
701 READ_BOOL(layout.save_window_positions); |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
702 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
703 READ_INT(layout.main_window.x); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
704 READ_INT(layout.main_window.y); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
705 READ_INT(layout.main_window.w); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
706 READ_INT(layout.main_window.h); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
707 READ_BOOL(layout.main_window.maximized); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
708 READ_INT(layout.float_window.x); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
709 READ_INT(layout.float_window.y); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
710 READ_INT(layout.float_window.w); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
711 READ_INT(layout.float_window.h); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
712 READ_INT(layout.float_window.vdivider_pos); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
713 READ_INT(layout.main_window.hdivider_pos); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
714 READ_INT(layout.main_window.vdivider_pos); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
715 READ_BOOL(layout.tools_float); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
716 READ_BOOL(layout.tools_hidden); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
717 READ_BOOL(layout.tools_restore_state); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
718 READ_BOOL(layout.toolbar_hidden); |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
719 |
489
3809ffa3567b
Save state and width of exif, info and sort panels to rc file.
zas_
parents:
475
diff
changeset
|
720 /* panels */ |
3809ffa3567b
Save state and width of exif, info and sort panels to rc file.
zas_
parents:
475
diff
changeset
|
721 READ_BOOL(panels.exif.enabled); |
3809ffa3567b
Save state and width of exif, info and sort panels to rc file.
zas_
parents:
475
diff
changeset
|
722 READ_INT_CLAMP(panels.exif.width, PANEL_MIN_WIDTH, PANEL_MAX_WIDTH); |
3809ffa3567b
Save state and width of exif, info and sort panels to rc file.
zas_
parents:
475
diff
changeset
|
723 READ_BOOL(panels.info.enabled); |
3809ffa3567b
Save state and width of exif, info and sort panels to rc file.
zas_
parents:
475
diff
changeset
|
724 READ_INT_CLAMP(panels.info.width, PANEL_MIN_WIDTH, PANEL_MAX_WIDTH); |
3809ffa3567b
Save state and width of exif, info and sort panels to rc file.
zas_
parents:
475
diff
changeset
|
725 READ_BOOL(panels.sort.enabled); |
491 | 726 READ_INT(panels.sort.action_state); |
727 READ_INT(panels.sort.mode_state); | |
728 READ_INT(panels.sort.selection_state); | |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
729 |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
730 /* image options */ |
604
0b203af63dbf
Use g_ascii_strcasecmp() instead of strcasecmp() where ascii-only strings
zas_
parents:
594
diff
changeset
|
731 if (g_ascii_strcasecmp(option, "image.zoom_mode") == 0) |
442 | 732 { |
604
0b203af63dbf
Use g_ascii_strcasecmp() instead of strcasecmp() where ascii-only strings
zas_
parents:
594
diff
changeset
|
733 if (g_ascii_strcasecmp(value, "original") == 0) |
377 | 734 options->image.zoom_mode = ZOOM_RESET_ORIGINAL; |
604
0b203af63dbf
Use g_ascii_strcasecmp() instead of strcasecmp() where ascii-only strings
zas_
parents:
594
diff
changeset
|
735 else if (g_ascii_strcasecmp(value, "fit") == 0) |
377 | 736 options->image.zoom_mode = ZOOM_RESET_FIT_WINDOW; |
604
0b203af63dbf
Use g_ascii_strcasecmp() instead of strcasecmp() where ascii-only strings
zas_
parents:
594
diff
changeset
|
737 else if (g_ascii_strcasecmp(value, "dont_change") == 0) |
377 | 738 options->image.zoom_mode = ZOOM_RESET_NONE; |
442 | 739 } |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
740 READ_BOOL(image.zoom_2pass); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
741 READ_BOOL(image.zoom_to_fit_allow_expand); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
742 READ_BOOL(image.fit_window_to_image); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
743 READ_BOOL(image.limit_window_size); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
744 READ_INT(image.max_window_size); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
745 READ_BOOL(image.limit_autofit_size); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
746 READ_INT(image.max_autofit_size); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
747 READ_INT(image.scroll_reset_method); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
748 READ_INT(image.tile_cache_max); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
749 READ_INT_CLAMP(image.zoom_quality, GDK_INTERP_NEAREST, GDK_INTERP_HYPER); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
750 READ_INT_CLAMP(image.dither_quality, GDK_RGB_DITHER_NONE, GDK_RGB_DITHER_MAX); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
751 READ_INT(image.zoom_increment); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
752 READ_BOOL(image.enable_read_ahead); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
753 READ_BOOL(image.exif_rotate_enable); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
754 READ_BOOL(image.use_custom_border_color); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
755 READ_COLOR(image.border_color); |
413
9e521adbf312
Add two new options to control image read buffer at runtime.
zas_
parents:
403
diff
changeset
|
756 READ_INT_CLAMP(image.read_buffer_size, IMAGE_LOADER_READ_BUFFER_SIZE_MIN, IMAGE_LOADER_READ_BUFFER_SIZE_MAX); |
9e521adbf312
Add two new options to control image read buffer at runtime.
zas_
parents:
403
diff
changeset
|
757 READ_INT_CLAMP(image.idle_read_loop_count, IMAGE_LOADER_IDLE_READ_LOOP_COUNT_MIN, IMAGE_LOADER_IDLE_READ_LOOP_COUNT_MAX); |
442 | 758 |
1 | 759 |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
760 /* thumbnails options */ |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
761 READ_INT_CLAMP(thumbnails.max_width, 16, 512); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
762 READ_INT_CLAMP(thumbnails.max_height, 16, 512); |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
763 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
764 READ_BOOL(thumbnails.enable_caching); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
765 READ_BOOL(thumbnails.cache_into_dirs); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
766 READ_BOOL(thumbnails.fast); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
767 READ_BOOL(thumbnails.use_xvpics); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
768 READ_BOOL(thumbnails.spec_standard); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
769 READ_INT_CLAMP(thumbnails.quality, GDK_INTERP_NEAREST, GDK_INTERP_HYPER); |
9 | 770 |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
771 /* file sorting options */ |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
772 READ_UINT(file_sort.method); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
773 READ_BOOL(file_sort.ascending); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
774 READ_BOOL(file_sort.case_sensitive); |
1 | 775 |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
776 /* file operations options */ |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
777 READ_BOOL(file_ops.enable_in_place_rename); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
778 READ_BOOL(file_ops.confirm_delete); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
779 READ_BOOL(file_ops.enable_delete_key); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
780 READ_BOOL(file_ops.safe_delete_enable); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
781 READ_CHAR(file_ops.safe_delete_path); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
782 READ_INT(file_ops.safe_delete_folder_maxsize); |
1 | 783 |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
784 /* fullscreen options */ |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
785 READ_INT(fullscreen.screen); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
786 READ_BOOL(fullscreen.clean_flip); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
787 READ_BOOL(fullscreen.disable_saver); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
788 READ_BOOL(fullscreen.above); |
468
2df505c60459
Replace fullscreen.info and fullscreen.show_info options by:
zas_
parents:
458
diff
changeset
|
789 |
612 | 790 /* histogram */ |
791 READ_UINT(histogram.last_channel_mode); | |
792 READ_UINT(histogram.last_log_mode); | |
793 | |
468
2df505c60459
Replace fullscreen.info and fullscreen.show_info options by:
zas_
parents:
458
diff
changeset
|
794 /* image overlay */ |
638
8cc9f349c670
Rename option image_overlay.common.enabled to image_overlay.common.state
zas_
parents:
630
diff
changeset
|
795 COMPAT_READ_UINT(image_overlay.common.enabled, image_overlay.common.state); /* 2008-05-12 */ |
8cc9f349c670
Rename option image_overlay.common.enabled to image_overlay.common.state
zas_
parents:
630
diff
changeset
|
796 READ_UINT(image_overlay.common.state); |
8cc9f349c670
Rename option image_overlay.common.enabled to image_overlay.common.state
zas_
parents:
630
diff
changeset
|
797 COMPAT_READ_BOOL(fullscreen.show_info, image_overlay.common.show_at_startup); /* 2008-04-21 */ |
468
2df505c60459
Replace fullscreen.info and fullscreen.show_info options by:
zas_
parents:
458
diff
changeset
|
798 READ_BOOL(image_overlay.common.show_at_startup); |
638
8cc9f349c670
Rename option image_overlay.common.enabled to image_overlay.common.state
zas_
parents:
630
diff
changeset
|
799 COMPAT_READ_CHAR(fullscreen.info, image_overlay.common.template_string); /* 2008-04-21 */ |
468
2df505c60459
Replace fullscreen.info and fullscreen.show_info options by:
zas_
parents:
458
diff
changeset
|
800 READ_CHAR(image_overlay.common.template_string); |
638
8cc9f349c670
Rename option image_overlay.common.enabled to image_overlay.common.state
zas_
parents:
630
diff
changeset
|
801 |
9 | 802 /* slideshow options */ |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
803 READ_INT_UNIT(slideshow.delay, SLIDESHOW_SUBSECOND_PRECISION); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
804 READ_BOOL(slideshow.random); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
805 READ_BOOL(slideshow.repeat); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
806 |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
807 /* collection options */ |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
808 |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
809 READ_BOOL(collections.rectangular_selection); |
1 | 810 |
811 /* filtering options */ | |
812 | |
356 | 813 READ_BOOL(file_filter.show_hidden_files); |
373
61a3c8b05b24
Add a new option in Preferences > Filtering to allow the
zas_
parents:
372
diff
changeset
|
814 READ_BOOL(file_filter.show_dot_directory); |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
815 READ_BOOL(file_filter.disable); |
1 | 816 |
604
0b203af63dbf
Use g_ascii_strcasecmp() instead of strcasecmp() where ascii-only strings
zas_
parents:
594
diff
changeset
|
817 if (g_ascii_strcasecmp(option, "file_filter.ext") == 0) |
9 | 818 { |
819 filter_parse(value_all); | |
820 } | |
1 | 821 |
604
0b203af63dbf
Use g_ascii_strcasecmp() instead of strcasecmp() where ascii-only strings
zas_
parents:
594
diff
changeset
|
822 if (g_ascii_strcasecmp(option, "sidecar.ext") == 0) |
145
8be2cc687304
fixed grouping sidecar files and made it configurable via config file
nadvornik
parents:
113
diff
changeset
|
823 { |
170
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
145
diff
changeset
|
824 sidecar_ext_parse(value_all, TRUE); |
145
8be2cc687304
fixed grouping sidecar files and made it configurable via config file
nadvornik
parents:
113
diff
changeset
|
825 } |
442 | 826 |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
827 /* Color Profiles */ |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
828 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
829 READ_BOOL(color_profile.enabled); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
830 READ_BOOL(color_profile.use_image); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
831 READ_INT(color_profile.input_type); |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
832 |
605
651ae2be1031
Use g_ascii_strncasecmp() instead of strncasecmp() where applicable.
zas_
parents:
604
diff
changeset
|
833 if (g_ascii_strncasecmp(option, "color_profile.input_file_", 25) == 0) |
442 | 834 { |
835 i = strtol(option + 25, NULL, 0) - 1; | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
836 if (i >= 0 && i < COLOR_PROFILE_INPUTS) |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
837 { |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
838 read_char_option(f, option, option, value, &options->color_profile.input_file[i]); |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
839 } |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
840 } |
605
651ae2be1031
Use g_ascii_strncasecmp() instead of strncasecmp() where applicable.
zas_
parents:
604
diff
changeset
|
841 if (g_ascii_strncasecmp(option, "color_profile.input_name_", 25) == 0) |
442 | 842 { |
843 i = strtol(option + 25, NULL, 0) - 1; | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
844 if (i >= 0 && i < COLOR_PROFILE_INPUTS) |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
845 { |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
846 read_char_option(f, option, option, value, &options->color_profile.input_name[i]); |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
847 } |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
848 } |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
849 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
850 READ_INT(color_profile.screen_type); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
851 READ_CHAR(color_profile.screen_file); |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
852 |
1 | 853 /* External Programs */ |
854 | |
605
651ae2be1031
Use g_ascii_strncasecmp() instead of strncasecmp() where applicable.
zas_
parents:
604
diff
changeset
|
855 if (g_ascii_strncasecmp(option, "external_", 9) == 0) |
1 | 856 { |
857 i = strtol(option + 9, NULL, 0); | |
283 | 858 if (i > 0 && i <= GQ_EDITOR_SLOTS) |
1 | 859 { |
217 | 860 const gchar *ptr; |
1 | 861 i--; |
318 | 862 g_free(options->editor_name[i]); |
863 g_free(options->editor_command[i]); | |
442 | 864 |
318 | 865 options->editor_name[i] = quoted_value(value_all, &ptr); |
866 options->editor_command[i] = quoted_value(ptr, NULL); | |
1 | 867 } |
868 } | |
869 | |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
870 /* Exif */ |
605
651ae2be1031
Use g_ascii_strncasecmp() instead of strncasecmp() where applicable.
zas_
parents:
604
diff
changeset
|
871 if (0 == g_ascii_strncasecmp(option, "exif.display.", 13)) |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
872 { |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
873 for (i = 0; ExifUIList[i].key; i++) |
604
0b203af63dbf
Use g_ascii_strcasecmp() instead of strcasecmp() where ascii-only strings
zas_
parents:
594
diff
changeset
|
874 if (0 == g_ascii_strcasecmp(option + 13, ExifUIList[i].key)) |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
875 ExifUIList[i].current = strtol(value, NULL, 10); |
442 | 876 } |
1 | 877 } |
878 | |
879 fclose(f); | |
880 g_free(rc_path); | |
881 } |