Mercurial > geeqie.yaz
annotate src/rcfile.c @ 353:691fcf15aca1
Fix a typo, READ_CHAR() must use value_all.
author | zas_ |
---|---|
date | Sun, 13 Apr 2008 12:12:44 +0000 |
parents | 7e7c9fa8fdeb |
children | 673d1eb5af73 |
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 |
1 | 4 * |
5 * Author: John Ellis | |
6 * | |
9 | 7 * This software is released under the GNU General Public License (GNU GPL). |
8 * Please read the included file COPYING for more information. | |
9 * This software comes with no warranty of any kind, use at your own risk! | |
1 | 10 */ |
11 | |
276 | 12 #include <glib/gstdio.h> |
13 #include <errno.h> | |
9 | 14 |
281 | 15 #include "main.h" |
9 | 16 #include "rcfile.h" |
1 | 17 |
307
667e49f52168
Move secure save code to its own files: secure_save.{c,h}.
zas_
parents:
288
diff
changeset
|
18 #include "bar_exif.h" |
9 | 19 #include "filelist.h" |
307
667e49f52168
Move secure save code to its own files: secure_save.{c,h}.
zas_
parents:
288
diff
changeset
|
20 #include "secure_save.h" |
9 | 21 #include "slideshow.h" |
22 #include "ui_fileops.h" | |
23 | |
1 | 24 |
25 /* | |
26 *----------------------------------------------------------------------------- | |
27 * line write/parse routines (private) | |
28 *----------------------------------------------------------------------------- | |
29 */ | |
217 | 30 |
31 /* | |
32 returns text without quotes or NULL for empty or broken string | |
33 any text up to first '"' is skipped | |
34 tail is set to point at the char after the second '"' | |
35 or at the ending \0 | |
36 | |
37 */ | |
1 | 38 |
217 | 39 gchar *quoted_value(const gchar *text, const gchar **tail) |
1 | 40 { |
9 | 41 const gchar *ptr; |
1 | 42 gint c = 0; |
43 gint l = strlen(text); | |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
44 gchar *retval = NULL; |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
45 |
217 | 46 if (tail) *tail = text; |
47 | |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
48 if (l == 0) return retval; |
1 | 49 |
50 while (c < l && text[c] !='"') c++; | |
51 if (text[c] == '"') | |
52 { | |
9 | 53 gint e; |
1 | 54 c++; |
55 ptr = text + c; | |
9 | 56 e = c; |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
57 while (e < l) |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
58 { |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
59 if (text[e-1] != '\\' && text[e] == '"') break; |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
60 e++; |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
61 } |
9 | 62 if (text[e] == '"') |
1 | 63 { |
9 | 64 if (e - c > 0) |
1 | 65 { |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
66 gchar *substring = g_strndup(ptr, e - c); |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
67 |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
68 if (substring) |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
69 { |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
70 retval = g_strcompress(substring); |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
71 g_free(substring); |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
72 } |
1 | 73 } |
74 } | |
217 | 75 if (tail) *tail = text + e + 1; |
1 | 76 } |
77 else | |
78 /* for compatibility with older formats (<0.3.7) | |
79 * read a line without quotes too */ | |
80 { | |
81 c = 0; | |
82 while (c < l && text[c] !=' ' && text[c] !=8 && text[c] != '\n') c++; | |
83 if (c != 0) | |
84 { | |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
85 retval = g_strndup(text, c); |
1 | 86 } |
217 | 87 if (tail) *tail = text + c; |
1 | 88 } |
89 | |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
90 return retval; |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
91 } |
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 gchar *escquote_value(const gchar *text) |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
94 { |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
95 gchar *e; |
250 | 96 |
217 | 97 if (!text) return g_strdup("\"\""); |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
98 |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
99 e = g_strescape(text, ""); |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
100 if (e) |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
101 { |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
102 gchar *retval = g_strdup_printf("\"%s\"", e); |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
103 g_free(e); |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
104 return retval; |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
105 } |
217 | 106 return g_strdup("\"\""); |
1 | 107 } |
108 | |
276 | 109 static void write_char_option(SecureSaveInfo *ssi, gchar *label, gchar *text) |
1 | 110 { |
210
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
111 gchar *escval = escquote_value(text); |
3fa93ab9b119
Improve escaping and quoting of strings saved in rc files.
zas_
parents:
209
diff
changeset
|
112 |
276 | 113 secure_fprintf(ssi, "%s: %s\n", label, escval); |
217 | 114 g_free(escval); |
1 | 115 } |
116 | |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
117 static void read_char_option(FILE *f, gchar *option, gchar *label, gchar *value, gchar **text) |
1 | 118 { |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
119 if (text && strcasecmp(option, label) == 0) |
1 | 120 { |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
121 g_free(*text); |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
122 *text = quoted_value(value, NULL); |
1 | 123 } |
124 } | |
125 | |
267
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
250
diff
changeset
|
126 /* 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
|
127 * here is an equivalent stub function. */ |
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
250
diff
changeset
|
128 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
|
129 { |
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
250
diff
changeset
|
130 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
|
131 } |
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
250
diff
changeset
|
132 |
276 | 133 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
|
134 { |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
135 if (color) |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
136 { |
267
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
250
diff
changeset
|
137 gchar *colorstring = color_to_string(color); |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
138 |
276 | 139 write_char_option(ssi, label, colorstring); |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
140 g_free(colorstring); |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
141 } |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
142 else |
276 | 143 secure_fprintf(ssi, "%s: \n", label); |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
144 } |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
145 |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
146 static void 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
|
147 { |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
148 if (color && strcasecmp(option, label) == 0) |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
149 { |
217 | 150 gchar *colorstr = quoted_value(value, NULL); |
151 if (colorstr) gdk_color_parse(colorstr, color); | |
152 g_free(colorstr); | |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
153 } |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
154 } |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
155 |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
196
diff
changeset
|
156 |
276 | 157 static void write_int_option(SecureSaveInfo *ssi, gchar *label, gint n) |
1 | 158 { |
276 | 159 secure_fprintf(ssi, "%s: %d\n", label, n); |
1 | 160 } |
161 | |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
162 static void read_int_option(FILE *f, gchar *option, gchar *label, gchar *value, gint *n) |
1 | 163 { |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
164 if (n && strcasecmp(option, label) == 0) |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
165 { |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
166 *n = strtol(value, NULL, 10); |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
167 } |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
168 } |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
169 |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
170 static void read_uint_option(FILE *f, gchar *option, gchar *label, gchar *value, guint *n) |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
171 { |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
172 if (n && strcasecmp(option, label) == 0) |
9 | 173 { |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
174 *n = strtoul(value, NULL, 10); |
9 | 175 } |
176 } | |
177 | |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
178 |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
179 |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
180 static void read_int_option_clamp(FILE *f, gchar *option, gchar *label, gchar *value, gint *n, gint min, gint max) |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
181 { |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
182 if (n && strcasecmp(option, label) == 0) |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
183 { |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
184 *n = CLAMP(strtol(value, NULL, 10), min, max); |
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 } |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
187 |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
188 |
276 | 189 static void write_int_unit_option(SecureSaveInfo *ssi, gchar *label, gint n, gint subunits) |
9 | 190 { |
191 gint l, r; | |
192 | |
193 if (subunits > 0) | |
194 { | |
195 l = n / subunits; | |
196 r = n % subunits; | |
197 } | |
198 else | |
1 | 199 { |
9 | 200 l = n; |
201 r = 0; | |
202 } | |
203 | |
276 | 204 secure_fprintf(ssi, "%s: %d.%d\n", label, l, r); |
9 | 205 } |
206 | |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
207 static void read_int_unit_option(FILE *f, gchar *option, gchar *label, gchar *value, gint *n, gint subunits) |
9 | 208 { |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
209 if (n && strcasecmp(option, label) == 0) |
9 | 210 { |
211 gint l, r; | |
212 gchar *ptr; | |
213 | |
214 ptr = value; | |
215 while (*ptr != '\0' && *ptr != '.') ptr++; | |
216 if (*ptr == '.') | |
217 { | |
218 *ptr = '\0'; | |
219 l = strtol(value, NULL, 10); | |
220 *ptr = '.'; | |
221 ptr++; | |
222 r = strtol(ptr, NULL, 10); | |
223 } | |
224 else | |
225 { | |
226 l = strtol(value, NULL, 10); | |
227 r = 0; | |
228 } | |
229 | |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
230 *n = l * subunits + r; |
1 | 231 } |
232 } | |
233 | |
276 | 234 static void write_bool_option(SecureSaveInfo *ssi, gchar *label, gint n) |
1 | 235 { |
276 | 236 secure_fprintf(ssi, "%s: ", label); |
237 if (n) secure_fprintf(ssi, "true\n"); else secure_fprintf(ssi, "false\n"); | |
1 | 238 } |
239 | |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
240 static void read_bool_option(FILE *f, gchar *option, gchar *label, gchar *value, gint *n) |
1 | 241 { |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
242 if (n && strcasecmp(option, label) == 0) |
1 | 243 { |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
244 if (strcasecmp(value, "true") == 0 || strcmp(value, "1") == 0) |
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
245 *n = TRUE; |
1 | 246 else |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
247 *n = FALSE; |
1 | 248 } |
249 } | |
250 | |
251 /* | |
252 *----------------------------------------------------------------------------- | |
253 * save configuration (public) | |
254 *----------------------------------------------------------------------------- | |
255 */ | |
256 | |
9 | 257 void save_options(void) |
1 | 258 { |
276 | 259 SecureSaveInfo *ssi; |
1 | 260 gchar *rc_path; |
9 | 261 gchar *rc_pathl; |
1 | 262 gint i; |
263 | |
283 | 264 rc_path = g_strconcat(homedir(), "/", GQ_RC_DIR, "/", RC_FILE_NAME, NULL); |
1 | 265 |
9 | 266 rc_pathl = path_from_utf8(rc_path); |
276 | 267 ssi = secure_open(rc_pathl); |
9 | 268 g_free(rc_pathl); |
276 | 269 if (!ssi) |
1 | 270 { |
9 | 271 gchar *buf; |
272 | |
273 buf = g_strdup_printf(_("error saving config file: %s\n"), rc_path); | |
274 print_term(buf); | |
275 g_free(buf); | |
276 | |
1 | 277 g_free(rc_path); |
278 return; | |
279 } | |
276 | 280 |
281 secure_fprintf(ssi, "######################################################################\n"); | |
288
d1f74154463e
Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents:
283
diff
changeset
|
282 secure_fprintf(ssi, "# %30s config file version %7s #\n", GQ_APPNAME, VERSION); |
276 | 283 secure_fprintf(ssi, "######################################################################\n"); |
284 secure_fputc(ssi, '\n'); | |
1 | 285 |
276 | 286 secure_fprintf(ssi, "# Note: This file is autogenerated. Options can be changed here,\n"); |
287 secure_fprintf(ssi, "# but user comments and formatting will be lost.\n"); | |
288 secure_fputc(ssi, '\n'); | |
289 | |
290 secure_fprintf(ssi, "##### General Options #####\n\n"); | |
1 | 291 |
320 | 292 write_bool_option(ssi, "show_icon_names", options->show_icon_names); |
276 | 293 secure_fputc(ssi, '\n'); |
9 | 294 |
345 | 295 write_bool_option(ssi, "tree_descend_subdirs", options->tree_descend_subdirs); |
320 | 296 write_bool_option(ssi, "lazy_image_sync", options->lazy_image_sync); |
297 write_bool_option(ssi, "update_on_time_change", options->update_on_time_change); | |
276 | 298 secure_fputc(ssi, '\n'); |
1 | 299 |
344 | 300 write_bool_option(ssi, "startup_path_enable", options->startup_path_enable); |
318 | 301 write_char_option(ssi, "startup_path", options->startup_path); |
335 | 302 |
346 | 303 write_bool_option(ssi, "progressive_key_scrolling", options->progressive_key_scrolling); |
304 write_bool_option(ssi, "enable_metadata_dirs", options->enable_metadata_dirs); | |
335 | 305 |
342
07490120df2d
Rename dupe_custom_threshold option to duplicates_similarity_threshold.
zas_
parents:
341
diff
changeset
|
306 write_int_option(ssi, "duplicates_similarity_threshold", options->duplicates_similarity_threshold); |
335 | 307 secure_fputc(ssi, '\n'); |
308 | |
346 | 309 write_bool_option(ssi, "mousewheel_scrolls", options->mousewheel_scrolls); |
343
63380ea3e65d
Rename recent_list_max/open_recent_max to open_recent_list_maxsize.
zas_
parents:
342
diff
changeset
|
310 write_int_option(ssi, "open_recent_list_maxsize", options->open_recent_list_maxsize); |
346 | 311 write_bool_option(ssi, "place_dialogs_under_mouse", options->place_dialogs_under_mouse); |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
312 |
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
313 |
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
314 secure_fprintf(ssi, "\n##### File operations Options #####\n\n"); |
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
315 |
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
316 write_bool_option(ssi, "file_ops.enable_in_place_rename", options->file_ops.enable_in_place_rename); |
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
317 write_bool_option(ssi, "file_ops.confirm_delete", options->file_ops.confirm_delete); |
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
318 write_bool_option(ssi, "file_ops.enable_delete_key", options->file_ops.enable_delete_key); |
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
319 write_bool_option(ssi, "file_ops.safe_delete_enable", options->file_ops.safe_delete_enable); |
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
320 write_char_option(ssi, "file_ops.safe_delete_path", options->file_ops.safe_delete_path); |
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
321 write_int_option(ssi, "file_ops.safe_delete_folder_maxsize", options->file_ops.safe_delete_folder_maxsize); |
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
322 |
339
de1c2cd06fce
Rename user_specified_window_background and window_background_color
zas_
parents:
338
diff
changeset
|
323 |
335 | 324 secure_fprintf(ssi, "\n##### Layout Options #####\n\n"); |
325 | |
326 write_int_option(ssi, "layout.style", options->layout.style); | |
327 write_char_option(ssi, "layout.order", options->layout.order); | |
328 write_bool_option(ssi, "layout.view_as_icons", options->layout.view_as_icons); | |
329 write_bool_option(ssi, "layout.view_as_tree", options->layout.view_as_tree); | |
340
77103f3f2cb1
Rename option thumbnails.enabled to layout.show_thumbnails as it makes
zas_
parents:
339
diff
changeset
|
330 write_bool_option(ssi, "layout.show_thumbnails", options->layout.show_thumbnails); |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
331 secure_fputc(ssi, '\n'); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
332 |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
333 write_bool_option(ssi, "layout.save_window_positions", options->layout.save_window_positions); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
334 secure_fputc(ssi, '\n'); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
335 |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
336 write_int_option(ssi, "layout.main_window.x", options->layout.main_window.x); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
337 write_int_option(ssi, "layout.main_window.y", options->layout.main_window.y); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
338 write_int_option(ssi, "layout.main_window.w", options->layout.main_window.w); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
339 write_int_option(ssi, "layout.main_window.h", options->layout.main_window.h); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
340 write_bool_option(ssi, "layout.main_window.maximized", options->layout.main_window.maximized); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
341 write_int_option(ssi, "layout.main_window.hdivider_pos", options->layout.main_window.hdivider_pos); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
342 write_int_option(ssi, "layout.main_window.vdivider_pos", options->layout.main_window.vdivider_pos); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
343 secure_fputc(ssi, '\n'); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
344 |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
345 write_int_option(ssi, "layout.float_window.x", options->layout.float_window.x); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
346 write_int_option(ssi, "layout.float_window.y", options->layout.float_window.y); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
347 write_int_option(ssi, "layout.float_window.w", options->layout.float_window.w); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
348 write_int_option(ssi, "layout.float_window.h", options->layout.float_window.h); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
349 write_int_option(ssi, "layout.float_window.vdivider_pos", options->layout.float_window.vdivider_pos); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
350 secure_fputc(ssi, '\n'); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
351 |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
352 write_bool_option(ssi, "layout.tools_float", options->layout.tools_float); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
353 write_bool_option(ssi, "layout.tools_hidden", options->layout.tools_hidden); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
354 write_bool_option(ssi, "layout.tools_restore_state", options->layout.tools_restore_state); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
355 secure_fputc(ssi, '\n'); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
356 |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
357 write_bool_option(ssi, "layout.toolbar_hidden", options->layout.toolbar_hidden); |
335 | 358 |
359 | |
360 secure_fprintf(ssi, "\n##### Image Options #####\n\n"); | |
1 | 361 |
334 | 362 secure_fprintf(ssi, "image.zoom_mode: "); |
363 if (options->image.zoom_mode == ZOOM_RESET_ORIGINAL) secure_fprintf(ssi, "original\n"); | |
364 if (options->image.zoom_mode == ZOOM_RESET_FIT_WINDOW) secure_fprintf(ssi, "fit\n"); | |
365 if (options->image.zoom_mode == ZOOM_RESET_NONE) secure_fprintf(ssi, "dont_change\n"); | |
366 write_bool_option(ssi, "image.zoom_2pass", options->image.zoom_2pass); | |
367 write_bool_option(ssi, "image.zoom_to_fit_allow_expand", options->image.zoom_to_fit_allow_expand); | |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
368 write_int_option(ssi, "image.zoom_quality", options->image.zoom_quality); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
369 write_int_option(ssi, "image.zoom_increment", options->image.zoom_increment); |
334 | 370 write_bool_option(ssi, "image.fit_window_to_image", options->image.fit_window_to_image); |
371 write_bool_option(ssi, "image.limit_window_size", options->image.limit_window_size); | |
372 write_int_option(ssi, "image.max_window_size", options->image.max_window_size); | |
373 write_bool_option(ssi, "image.limit_autofit_size", options->image.limit_autofit_size); | |
374 write_int_option(ssi, "image.max_autofit_size", options->image.max_autofit_size); | |
375 write_int_option(ssi, "image.scroll_reset_method", options->image.scroll_reset_method); | |
337 | 376 write_int_option(ssi, "image.tile_cache_max", options->image.tile_cache_max); |
334 | 377 write_int_option(ssi, "image.dither_quality", options->image.dither_quality); |
378 write_bool_option(ssi, "image.enable_read_ahead", options->image.enable_read_ahead); | |
335 | 379 write_bool_option(ssi, "image.exif_rotate_enable", options->image.exif_rotate_enable); |
339
de1c2cd06fce
Rename user_specified_window_background and window_background_color
zas_
parents:
338
diff
changeset
|
380 write_bool_option(ssi, "image.use_custom_border_color", options->image.use_custom_border_color); |
de1c2cd06fce
Rename user_specified_window_background and window_background_color
zas_
parents:
338
diff
changeset
|
381 write_color_option(ssi, "image.border_color", &options->image.border_color); |
1 | 382 |
335 | 383 |
384 secure_fprintf(ssi, "\n##### Thumbnails Options #####\n\n"); | |
9 | 385 |
333 | 386 write_int_option(ssi, "thumbnails.max_width", options->thumbnails.max_width); |
387 write_int_option(ssi, "thumbnails.max_height", options->thumbnails.max_height); | |
388 write_bool_option(ssi, "thumbnails.enable_caching", options->thumbnails.enable_caching); | |
389 write_bool_option(ssi, "thumbnails.cache_into_dirs", options->thumbnails.cache_into_dirs); | |
390 write_bool_option(ssi, "thumbnails.fast", options->thumbnails.fast); | |
391 write_bool_option(ssi, "thumbnails.use_xvpics", options->thumbnails.use_xvpics); | |
392 write_bool_option(ssi, "thumbnails.spec_standard", options->thumbnails.spec_standard); | |
393 write_int_option(ssi, "thumbnails.quality", options->thumbnails.quality); | |
335 | 394 |
9 | 395 |
335 | 396 secure_fprintf(ssi, "\n##### File sorting Options #####\n\n"); |
1 | 397 |
329 | 398 write_int_option(ssi, "file_sort.method", (gint)options->file_sort.method); |
399 write_bool_option(ssi, "file_sort.ascending", options->file_sort.ascending); | |
400 write_bool_option(ssi, "file_sort.case_sensitive", options->file_sort.case_sensitive); | |
1 | 401 |
335 | 402 |
403 secure_fprintf(ssi, "\n##### Fullscreen Options #####\n\n"); | |
4 | 404 |
322 | 405 write_int_option(ssi, "fullscreen.screen", options->fullscreen.screen); |
406 write_bool_option(ssi, "fullscreen.clean_flip", options->fullscreen.clean_flip); | |
407 write_bool_option(ssi, "fullscreen.disable_saver", options->fullscreen.disable_saver); | |
408 write_bool_option(ssi, "fullscreen.above", options->fullscreen.above); | |
409 write_bool_option(ssi, "fullscreen.show_info", options->fullscreen.show_info); | |
410 write_char_option(ssi, "fullscreen.info", options->fullscreen.info); | |
1 | 411 |
276 | 412 secure_fprintf(ssi, "\n##### Slideshow Options #####\n\n"); |
413 | |
326 | 414 write_int_unit_option(ssi, "slideshow.delay", options->slideshow.delay, SLIDESHOW_SUBSECOND_PRECISION); |
415 write_bool_option(ssi, "slideshow.random", options->slideshow.random); | |
416 write_bool_option(ssi, "slideshow.repeat", options->slideshow.repeat); | |
276 | 417 |
335 | 418 |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
419 secure_fprintf(ssi, "\n##### Collection Options #####\n\n"); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
420 |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
421 write_bool_option(ssi, "collections.rectangular_selection", options->collections.rectangular_selection); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
422 |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
423 |
276 | 424 secure_fprintf(ssi, "\n##### Filtering Options #####\n\n"); |
1 | 425 |
332 | 426 write_bool_option(ssi, "file_filter.show_dot_files", options->file_filter.show_dot_files); |
427 write_bool_option(ssi, "file_filter.disable", options->file_filter.disable); | |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
428 secure_fputc(ssi, '\n'); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
429 |
276 | 430 filter_write_list(ssi); |
431 | |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
432 |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
433 secure_fprintf(ssi, "\n##### Sidecars Options #####\n\n"); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
434 |
276 | 435 sidecar_ext_write(ssi); |
1 | 436 |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
437 |
276 | 438 secure_fprintf(ssi, "\n##### Color Profiles #####\n\n"); |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
439 |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
440 #ifndef HAVE_LCMS |
288
d1f74154463e
Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents:
283
diff
changeset
|
441 secure_fprintf(ssi, "# NOTICE: %s was not built with support for color profiles,\n" |
d1f74154463e
Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents:
283
diff
changeset
|
442 "# 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
|
443 #endif |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
444 |
327 | 445 write_bool_option(ssi, "color_profile.enabled", options->color_profile.enabled); |
446 write_bool_option(ssi, "color_profile.use_image", options->color_profile.use_image); | |
447 write_int_option(ssi, "color_profile.input_type", options->color_profile.input_type); | |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
448 secure_fputc(ssi, '\n'); |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
449 |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
450 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
|
451 { |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
452 gchar *buf; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
453 |
327 | 454 buf = g_strdup_printf("color_profile.input_file_%d", i + 1); |
455 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
|
456 g_free(buf); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
457 |
327 | 458 buf = g_strdup_printf("color_profile.input_name_%d", i + 1); |
459 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
|
460 g_free(buf); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
461 } |
276 | 462 secure_fputc(ssi, '\n'); |
327 | 463 write_int_option(ssi, "color_profile.screen_type", options->color_profile.screen_type); |
464 write_char_option(ssi, "color_profile.screen_file", options->color_profile.screen_file); | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
465 |
276 | 466 secure_fprintf(ssi, "\n##### External Programs #####\n"); |
348 | 467 secure_fprintf(ssi, "# Maximum of %d programs (external_1 through external_%d)\n", GQ_EDITOR_GENERIC_SLOTS, GQ_EDITOR_GENERIC_SLOTS); |
468 secure_fprintf(ssi, "# external_%d through external_%d are used for file ops\n", GQ_EDITOR_GENERIC_SLOTS + 1, GQ_EDITOR_SLOTS); | |
276 | 469 secure_fprintf(ssi, "# format: external_n: \"menu name\" \"command line\"\n\n"); |
1 | 470 |
283 | 471 for (i = 0; i < GQ_EDITOR_SLOTS; i++) |
1 | 472 { |
348 | 473 if (i == GQ_EDITOR_GENERIC_SLOTS) secure_fputc(ssi, '\n'); |
318 | 474 gchar *qname = escquote_value(options->editor_name[i]); |
475 gchar *qcommand = escquote_value(options->editor_command[i]); | |
276 | 476 secure_fprintf(ssi, "external_%d: %s %s\n", i+1, qname, qcommand); |
217 | 477 g_free(qname); |
478 g_free(qcommand); | |
1 | 479 } |
480 | |
481 | |
349 | 482 secure_fprintf(ssi, "\n##### Exif Options #####\n# Display:\n# 0: never\n# 1: if set\n# 2: always\n\n"); |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
483 for (i = 0; ExifUIList[i].key; i++) |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
484 { |
349 | 485 secure_fprintf(ssi, "exif.display."); |
276 | 486 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
|
487 } |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
488 |
276 | 489 secure_fputc(ssi, '\n'); |
490 secure_fprintf(ssi, "######################################################################\n"); | |
288
d1f74154463e
Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents:
283
diff
changeset
|
491 secure_fprintf(ssi, "# end of config file #\n"); |
276 | 492 secure_fprintf(ssi, "######################################################################\n"); |
1 | 493 |
276 | 494 |
495 if (secure_close(ssi)) | |
496 { | |
497 gchar *buf; | |
498 | |
499 buf = g_strdup_printf(_("error saving config file: %s\nerror: %s\n"), rc_path, | |
500 secsave_strerror(secsave_errno)); | |
501 print_term(buf); | |
502 g_free(buf); | |
503 | |
504 g_free(rc_path); | |
505 return; | |
506 } | |
1 | 507 |
508 g_free(rc_path); | |
509 } | |
510 | |
511 /* | |
512 *----------------------------------------------------------------------------- | |
513 * load configuration (public) | |
514 *----------------------------------------------------------------------------- | |
515 */ | |
516 | |
9 | 517 void load_options(void) |
1 | 518 { |
519 FILE *f; | |
520 gchar *rc_path; | |
9 | 521 gchar *rc_pathl; |
1 | 522 gchar s_buf[1024]; |
523 gchar option[1024]; | |
524 gchar value[1024]; | |
525 gchar value_all[1024]; | |
350
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
526 gint i; |
9 | 527 |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
528 for (i = 0; ExifUIList[i].key; i++) |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
529 ExifUIList[i].current = ExifUIList[i].default_value; |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
530 |
283 | 531 rc_path = g_strconcat(homedir(), "/", GQ_RC_DIR, "/", RC_FILE_NAME, NULL); |
1 | 532 |
9 | 533 rc_pathl = path_from_utf8(rc_path); |
534 f = fopen(rc_pathl,"r"); | |
535 g_free(rc_pathl); | |
1 | 536 if (!f) |
537 { | |
538 g_free(rc_path); | |
539 return; | |
540 } | |
541 | |
350
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
542 while (fgets(s_buf, sizeof(s_buf), f)) |
1 | 543 { |
350
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
544 gchar *option_start, *value_start; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
545 gchar *p = s_buf; |
1 | 546 |
350
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
547 while(g_ascii_isspace(*p)) p++; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
548 if (!*p || *p == '\n' || *p == '#') continue; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
549 option_start = p; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
550 while(*p && *p != ':') p++; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
551 if (!*p) continue; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
552 *p = '\0'; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
553 p++; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
554 strncpy(option, option_start, sizeof(option)); |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
555 while(g_ascii_isspace(*p)) p++; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
556 value_start = p; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
557 strncpy(value_all, value_start, sizeof(value_all)); |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
558 while(*p && !g_ascii_isspace(*p) && *p != '\n') p++; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
559 *p = '\0'; |
00696edf1dd3
Partly rewrite option parser to accept whitespaces at start
zas_
parents:
349
diff
changeset
|
560 strncpy(value, value_start, sizeof(value)); |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
561 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
562 #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
|
563 #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
|
564 #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
|
565 #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
|
566 #define READ_INT_UNIT(_name_, _unit_) read_int_unit_option(f, option, #_name_, value, &options->_name_, _unit_) |
353 | 567 #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
|
568 #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
|
569 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
570 /* general options */ |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
571 READ_BOOL(show_icon_names); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
572 READ_BOOL(show_icon_names); |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
573 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
574 READ_BOOL(tree_descend_subdirs); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
575 READ_BOOL(lazy_image_sync); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
576 READ_BOOL(update_on_time_change); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
577 |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
578 READ_BOOL(startup_path_enable); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
579 READ_CHAR(startup_path); |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
580 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
581 READ_INT(duplicates_similarity_threshold); |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
582 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
583 READ_BOOL(progressive_key_scrolling); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
584 |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
585 READ_BOOL(enable_metadata_dirs); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
586 |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
587 READ_BOOL(mousewheel_scrolls); |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
588 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
589 READ_INT(open_recent_list_maxsize); |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
590 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
591 READ_BOOL(place_dialogs_under_mouse); |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
592 |
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
593 |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
594 /* layout options */ |
1 | 595 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
596 READ_INT(layout.style); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
597 READ_CHAR(layout.order); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
598 READ_BOOL(layout.view_as_icons); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
599 READ_BOOL(layout.view_as_tree); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
600 READ_BOOL(layout.show_thumbnails); |
340
77103f3f2cb1
Rename option thumbnails.enabled to layout.show_thumbnails as it makes
zas_
parents:
339
diff
changeset
|
601 |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
602 /* window positions */ |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
603 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
604 READ_BOOL(layout.save_window_positions); |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
605 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
606 READ_INT(layout.main_window.x); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
607 READ_INT(layout.main_window.y); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
608 READ_INT(layout.main_window.w); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
609 READ_INT(layout.main_window.h); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
610 READ_BOOL(layout.main_window.maximized); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
611 READ_INT(layout.float_window.x); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
612 READ_INT(layout.float_window.y); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
613 READ_INT(layout.float_window.w); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
614 READ_INT(layout.float_window.h); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
615 READ_INT(layout.float_window.vdivider_pos); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
616 READ_INT(layout.main_window.hdivider_pos); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
617 READ_INT(layout.main_window.vdivider_pos); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
618 READ_BOOL(layout.tools_float); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
619 READ_BOOL(layout.tools_hidden); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
620 READ_BOOL(layout.tools_restore_state); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
621 READ_BOOL(layout.toolbar_hidden); |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
622 |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
623 |
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
624 /* image options */ |
334 | 625 if (strcasecmp(option, "image.zoom_mode") == 0) |
1 | 626 { |
334 | 627 if (strcasecmp(value, "original") == 0) options->image.zoom_mode = ZOOM_RESET_ORIGINAL; |
628 if (strcasecmp(value, "fit") == 0) options->image.zoom_mode = ZOOM_RESET_FIT_WINDOW; | |
629 if (strcasecmp(value, "dont_change") == 0) options->image.zoom_mode = ZOOM_RESET_NONE; | |
1 | 630 } |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
631 READ_BOOL(image.zoom_2pass); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
632 READ_BOOL(image.zoom_to_fit_allow_expand); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
633 READ_BOOL(image.fit_window_to_image); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
634 READ_BOOL(image.limit_window_size); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
635 READ_INT(image.max_window_size); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
636 READ_BOOL(image.limit_autofit_size); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
637 READ_INT(image.max_autofit_size); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
638 READ_INT(image.scroll_reset_method); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
639 READ_INT(image.tile_cache_max); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
640 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
|
641 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
|
642 READ_INT(image.zoom_increment); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
643 READ_BOOL(image.enable_read_ahead); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
644 READ_BOOL(image.exif_rotate_enable); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
645 READ_BOOL(image.use_custom_border_color); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
646 READ_COLOR(image.border_color); |
1 | 647 |
648 | |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
649 /* thumbnails options */ |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
650 READ_INT_CLAMP(thumbnails.max_width, 16, 512); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
651 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
|
652 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
653 READ_BOOL(thumbnails.enable_caching); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
654 READ_BOOL(thumbnails.cache_into_dirs); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
655 READ_BOOL(thumbnails.fast); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
656 READ_BOOL(thumbnails.use_xvpics); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
657 READ_BOOL(thumbnails.spec_standard); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
658 READ_INT_CLAMP(thumbnails.quality, GDK_INTERP_NEAREST, GDK_INTERP_HYPER); |
9 | 659 |
338
41c3cb73120f
Rename window options (moved to layout) and re-order rc file.
zas_
parents:
337
diff
changeset
|
660 /* file sorting options */ |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
661 READ_UINT(file_sort.method); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
662 READ_BOOL(file_sort.ascending); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
663 READ_BOOL(file_sort.case_sensitive); |
1 | 664 |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
665 /* file operations options */ |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
666 READ_BOOL(file_ops.enable_in_place_rename); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
667 READ_BOOL(file_ops.confirm_delete); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
668 READ_BOOL(file_ops.enable_delete_key); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
669 READ_BOOL(file_ops.safe_delete_enable); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
670 READ_CHAR(file_ops.safe_delete_path); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
671 READ_INT(file_ops.safe_delete_folder_maxsize); |
1 | 672 |
341
15c6b94545a2
Move safe_delete* and in place rename options to file_ops
zas_
parents:
340
diff
changeset
|
673 /* fullscreen options */ |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
674 READ_INT(fullscreen.screen); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
675 READ_BOOL(fullscreen.clean_flip); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
676 READ_BOOL(fullscreen.disable_saver); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
677 READ_BOOL(fullscreen.above); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
678 READ_BOOL(fullscreen.show_info); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
679 READ_CHAR(fullscreen.info); |
9 | 680 |
681 /* slideshow options */ | |
682 | |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
683 READ_INT_UNIT(slideshow.delay, SLIDESHOW_SUBSECOND_PRECISION); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
684 READ_BOOL(slideshow.random); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
685 READ_BOOL(slideshow.repeat); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
686 |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
687 /* collection options */ |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
688 |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
689 READ_BOOL(collections.rectangular_selection); |
1 | 690 |
691 /* filtering options */ | |
692 | |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
693 READ_BOOL(file_filter.show_dot_files); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
694 READ_BOOL(file_filter.disable); |
1 | 695 |
332 | 696 if (strcasecmp(option, "file_filter.ext") == 0) |
9 | 697 { |
698 filter_parse(value_all); | |
699 } | |
1 | 700 |
347 | 701 if (strcasecmp(option, "sidecar.ext") == 0) |
145
8be2cc687304
fixed grouping sidecar files and made it configurable via config file
nadvornik
parents:
113
diff
changeset
|
702 { |
170
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
145
diff
changeset
|
703 sidecar_ext_parse(value_all, TRUE); |
145
8be2cc687304
fixed grouping sidecar files and made it configurable via config file
nadvornik
parents:
113
diff
changeset
|
704 } |
8be2cc687304
fixed grouping sidecar files and made it configurable via config file
nadvornik
parents:
113
diff
changeset
|
705 |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
706 /* Color Profiles */ |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
707 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
708 READ_BOOL(color_profile.enabled); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
709 READ_BOOL(color_profile.use_image); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
710 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
|
711 |
327 | 712 if (strncasecmp(option, "color_profile.input_file_", 25) == 0) |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
713 { |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
714 i = strtol(option + 25, NULL, 0) - 1; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
715 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
|
716 { |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
717 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
|
718 } |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
719 } |
327 | 720 if (strncasecmp(option, "color_profile.input_name_", 25) == 0) |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
721 { |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
722 i = strtol(option + 25, NULL, 0) - 1; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
723 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
|
724 { |
351
55ee774d5bc3
Simplify read_*_option() stuff by passing pointer to option value.
zas_
parents:
350
diff
changeset
|
725 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
|
726 } |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
727 } |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
728 |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
729 READ_INT(color_profile.screen_type); |
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
730 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
|
731 |
1 | 732 /* External Programs */ |
733 | |
9 | 734 if (strncasecmp(option, "external_", 9) == 0) |
1 | 735 { |
736 i = strtol(option + 9, NULL, 0); | |
283 | 737 if (i > 0 && i <= GQ_EDITOR_SLOTS) |
1 | 738 { |
217 | 739 const gchar *ptr; |
1 | 740 i--; |
318 | 741 g_free(options->editor_name[i]); |
742 g_free(options->editor_command[i]); | |
217 | 743 |
318 | 744 options->editor_name[i] = quoted_value(value_all, &ptr); |
745 options->editor_command[i] = quoted_value(ptr, NULL); | |
1 | 746 } |
747 } | |
748 | |
352
7e7c9fa8fdeb
Use convenient macros to read options, it will ensure options
zas_
parents:
351
diff
changeset
|
749 /* Exif */ |
349 | 750 if (0 == strncasecmp(option, "exif.display.", 13)) |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
751 { |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
752 for (i = 0; ExifUIList[i].key; i++) |
349 | 753 if (0 == strcasecmp(option + 13, ExifUIList[i].key)) |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
754 ExifUIList[i].current = strtol(value, NULL, 10); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
755 } |
1 | 756 } |
757 | |
758 fclose(f); | |
759 g_free(rc_path); | |
760 } | |
761 |