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