2 * Claws Mail -- a GTK based, lightweight, and fast e-mail client
3 * Copyright (C) 1999-2024 the Claws Mail team and Hiroyuki Yamamoto
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 #include "claws-features.h"
27 #include <glib/gi18n.h>
29 #include <gdk/gdkkeysyms.h>
34 #include <sys/types.h>
39 #include "prefs_gtk.h"
40 #include "prefs_common.h"
41 #include "prefs_display_header.h"
42 #include "prefs_summary_column.h"
43 #include "prefs_folder_column.h"
44 #include "prefs_migration.h"
45 #include "mainwindow.h"
46 #include "summaryview.h"
47 #include "folderview.h"
48 #include "messageview.h"
49 #include "manage_window.h"
55 #include "alertpanel.h"
59 #include "stock_pixmap.h"
60 #include "prefswindow.h"
61 #include "colorlabel.h"
62 #include "passwordstore.h"
63 #include "file-utils.h"
65 #ifndef USE_ALT_ADDRBOOK
66 #include "addrcustomattr.h"
75 PrefsCommon prefs_common
;
81 * In the Windows version prefs_common contains
82 * - the non-OS-specific settings of the "Common" section and
83 * - the OS-specific settings of the "CommonWin32" section
84 * The OS-specific settings of the "Common" section are not used
85 * but saved in prefs_unix.
88 # define SPECIFIC_PREFS prefs_unix
90 static PrefsCommon prefs_unix
;
92 static PrefParam param_os_specific
[] = {
95 &prefs_common
.extinc_cmd
, P_STRING
, NULL
, NULL
, NULL
},
96 {"newmail_notify_cmd", "",
97 &prefs_common
.newmail_notify_cmd
, P_STRING
, NULL
, NULL
, NULL
},
100 {"message_font_gtk2", "Monospace 9",
101 &prefs_common
.textfont
, P_STRING
, NULL
, NULL
, NULL
},
102 {"print_font_gtk2", "Monospace 9",
103 &prefs_common
.printfont
, P_STRING
, NULL
, NULL
, NULL
},
104 {"small_font_gtk2", "Sans 9",
105 &prefs_common
.smallfont
, P_STRING
, NULL
, NULL
, NULL
},
106 {"normal_font_gtk2", "Sans 9",
107 &prefs_common
.normalfont
, P_STRING
, NULL
, NULL
, NULL
},
108 {"bold_font_gtk2", "Sans 9 Bold",
109 &prefs_common
.boldfont
, P_STRING
, NULL
, NULL
, NULL
},
111 {"attach_save_directory", NULL
,
112 &prefs_common
.attach_save_dir
, P_STRING
, NULL
, NULL
, NULL
},
113 {"attach_load_directory", NULL
,
114 &prefs_common
.attach_load_dir
, P_STRING
, NULL
, NULL
, NULL
},
117 {"mime_textviewer", NULL
,
118 &prefs_common
.mime_textviewer
, P_STRING
, NULL
, NULL
, NULL
},
119 {"mime_open_command", "notepad '%s'",
120 &prefs_common
.mime_open_cmd
, P_STRING
, NULL
, NULL
, NULL
},
123 {"pixmap_theme_path", DEFAULT_PIXMAP_THEME
,
124 &prefs_common
.pixmap_theme_path
, P_STRING
, NULL
, NULL
, NULL
},
126 {"enable_alpha_svg", "TRUE",
127 &prefs_common
.enable_alpha_svg
, P_BOOL
, NULL
, NULL
, NULL
},
128 {"enable_pixmap_scaling", "TRUE",
129 &prefs_common
.enable_pixmap_scaling
, P_BOOL
, NULL
, NULL
, NULL
},
130 {"pixmap_scaling_auto", "TRUE",
131 &prefs_common
.pixmap_scaling_auto
, P_BOOL
, NULL
, NULL
, NULL
},
132 {"pixmap_scaling_ppi", "96",
133 &prefs_common
.pixmap_scaling_ppi
, P_INT
, NULL
, NULL
, NULL
},
137 {"ext_editor_command", "notepad %s",
138 &prefs_common
.ext_editor_cmd
, P_STRING
, NULL
, NULL
, NULL
},
140 {NULL
, NULL
, NULL
, P_OTHER
, NULL
, NULL
, NULL
}
143 # define SPECIFIC_PREFS prefs_common
147 parameter name, default value, pointer to the prefs variable, data type,
148 pointer to the widget pointer,
149 pointer to the function for data setting,
150 pointer to the function for widget setting
153 static PrefParam param
[] = {
154 {"config_version", "0",
155 &prefs_common
.config_version
, P_INT
, NULL
, NULL
, NULL
},
158 {"use_ext_inc", "FALSE", &prefs_common
.use_extinc
, P_BOOL
,
160 {"ext_inc_path", DEFAULT_INC_PATH
, &SPECIFIC_PREFS
.extinc_cmd
, P_STRING
,
163 {"autochk_newmail", "FALSE", &prefs_common
.autochk_newmail
, P_BOOL
,
165 {"autochk_interval", "600", &prefs_common
.autochk_itv
, P_INT
,
167 {"check_on_startup", "FALSE", &prefs_common
.chk_on_startup
, P_BOOL
,
169 {"open_inbox_on_inc", "FALSE", &prefs_common
.open_inbox_on_inc
,
170 P_BOOL
, NULL
, NULL
, NULL
},
171 {"scan_all_after_inc", "FALSE", &prefs_common
.scan_all_after_inc
,
172 P_BOOL
, NULL
, NULL
, NULL
},
173 {"newmail_notify_manu", "FALSE", &prefs_common
.newmail_notify_manu
,
174 P_BOOL
, NULL
, NULL
, NULL
},
175 {"newmail_notify_auto", "FALSE", &prefs_common
.newmail_notify_auto
,
176 P_BOOL
, NULL
, NULL
, NULL
},
177 {"newmail_notify_cmd", "", &SPECIFIC_PREFS
.newmail_notify_cmd
, P_STRING
,
179 {"receive_dialog_mode", "2", &prefs_common
.recv_dialog_mode
, P_ENUM
,
181 {"receivewin_width", "460", &prefs_common
.receivewin_width
, P_INT
,
183 {"receivewin_height", "-1", &prefs_common
.receivewin_height
, P_INT
,
185 {"no_receive_error_panel", "FALSE", &prefs_common
.no_recv_err_panel
,
186 P_BOOL
, NULL
, NULL
, NULL
}, /* deprecated */
187 {"show_receive_error_dialog", "TRUE", &prefs_common
.show_recv_err_dialog
,
188 P_BOOL
, NULL
, NULL
, NULL
},
189 {"close_receive_dialog", "TRUE", &prefs_common
.close_recv_dialog
,
190 P_BOOL
, NULL
, NULL
, NULL
},
193 {"save_message", "TRUE", &prefs_common
.savemsg
, P_BOOL
,
195 {"confirm_send_queued_messages", "FALSE", &prefs_common
.confirm_send_queued_messages
,
196 P_BOOL
, NULL
, NULL
, NULL
},
198 {"send_dialog_mode", "0", &prefs_common
.send_dialog_invisible
, P_BOOL
,
201 {"send_dialog_mode", "1", &prefs_common
.send_dialog_invisible
, P_BOOL
,
204 {"sendwin_width", "460", &prefs_common
.sendwin_width
, P_INT
,
206 {"sendwin_height", "-1", &prefs_common
.sendwin_height
, P_INT
,
209 {"outgoing_charset", CS_AUTO
, &prefs_common
.outgoing_charset
, P_STRING
,
211 {"encoding_method", "0", &prefs_common
.encoding_method
, P_ENUM
,
213 {"outgoing_fallback_to_ascii", "TRUE", &prefs_common
.outgoing_fallback_to_ascii
, P_BOOL
,
215 {"rewrite_first_from", "TRUE", &prefs_common
.rewrite_first_from
,
216 P_BOOL
, NULL
, NULL
, NULL
},
217 {"warn_empty_subj", "TRUE", &prefs_common
.warn_empty_subj
,
218 P_BOOL
, NULL
, NULL
, NULL
},
219 {"warn_sending_many_recipients_num", "0", &prefs_common
.warn_sending_many_recipients_num
, P_INT
,
221 {"hide_timezone", "FALSE", &prefs_common
.hide_timezone
,
222 P_BOOL
, NULL
, NULL
, NULL
},
223 {"allow_jisx0201_kana", "FALSE", &prefs_common
.allow_jisx0201_kana
,
224 P_BOOL
, NULL
, NULL
, NULL
},
227 {"auto_ext_editor", "FALSE", &prefs_common
.auto_exteditor
, P_BOOL
,
229 {"forward_as_attachment", "FALSE", &prefs_common
.forward_as_attachment
,
230 P_BOOL
, NULL
, NULL
, NULL
},
231 {"redirect_keep_from", "FALSE",
232 &prefs_common
.redirect_keep_from
, P_BOOL
,
234 {"undo_level", "50", &prefs_common
.undolevels
, P_INT
,
236 {"compose_with_format", "FALSE", &prefs_common
.compose_with_format
, P_BOOL
,
238 {"compose_subject_format", "",
239 &prefs_common
.compose_subject_format
, P_STRING
, NULL
, NULL
, NULL
},
240 {"compose_body_format", N_("Hello,\\n"),
241 &prefs_common
.compose_body_format
, P_STRING
, NULL
, NULL
, NULL
},
242 {"show_compose_margin", "FALSE", &prefs_common
.show_compose_margin
, P_BOOL
,
244 {"type_any_header", "FALSE", &prefs_common
.type_any_header
, P_BOOL
,
246 {"notify_pasted_attachments", "TRUE", &prefs_common
.notify_pasted_attachments
, P_BOOL
,
249 {"linewrap_length", "72", &prefs_common
.linewrap_len
, P_INT
,
251 {"linewrap_quotation", "TRUE", &prefs_common
.linewrap_quote
, P_BOOL
,
253 {"linewrap_pastes", "TRUE", &prefs_common
.linewrap_pastes
, P_BOOL
,
255 {"primary_paste_unselects", "FALSE", &prefs_common
.primary_paste_unselects
, P_BOOL
,
257 {"linewrap_auto", "TRUE", &prefs_common
.autowrap
, P_BOOL
,
259 {"auto_indent", "TRUE", &prefs_common
.auto_indent
, P_BOOL
,
261 {"autosave", "TRUE", &prefs_common
.autosave
,
262 P_BOOL
, NULL
, NULL
, NULL
},
263 {"autosave_length", "50", &prefs_common
.autosave_length
, P_INT
,
265 {"autosave_encrypted", "FALSE", &prefs_common
.autosave_encrypted
,
266 P_BOOL
, NULL
, NULL
, NULL
},
267 {"warn_large_insert", "TRUE", &prefs_common
.warn_large_insert
,
268 P_BOOL
, NULL
, NULL
, NULL
},
269 {"warn_large_insert_size", "500", &prefs_common
.warn_large_insert_size
,
270 P_INT
, NULL
, NULL
, NULL
},
272 {"enable_aspell", "TRUE", &prefs_common
.enable_aspell
, P_BOOL
,
274 {"dictionary", "", &prefs_common
.dictionary
, P_STRING
,
276 {"alt_dictionary", "", &prefs_common
.alt_dictionary
, P_STRING
,
278 {"use_alternate_dict", "FALSE", &prefs_common
.use_alternate
, P_BOOL
,
280 {"check_while_typing", "TRUE", &prefs_common
.check_while_typing
, P_BOOL
,
282 {"recheck_when_changing_dict", "TRUE", &prefs_common
.recheck_when_changing_dict
,
283 P_BOOL
, NULL
, NULL
, NULL
},
284 {"misspelled_color", "#ff0000", &prefs_common
.color
[COL_MISSPELLED
],
285 P_COLOR
, NULL
, NULL
, NULL
},
286 {"use_both_dicts", "FALSE", &prefs_common
.use_both_dicts
, P_BOOL
,
289 {"reply_with_quote", "TRUE", &prefs_common
.reply_with_quote
, P_BOOL
,
291 {"compose_dnd_insert_or_attach", "0", &prefs_common
.compose_dnd_mode
, P_ENUM
,
294 /* Account autoselection */
295 {"reply_account_autoselect", "TRUE",
296 &prefs_common
.reply_account_autosel
, P_BOOL
,
298 {"forward_account_autoselect", "TRUE",
299 &prefs_common
.forward_account_autosel
, P_BOOL
,
301 {"reedit_account_autoselect", "TRUE",
302 &prefs_common
.reedit_account_autosel
, P_BOOL
,
305 {"default_reply_list", "TRUE", &prefs_common
.default_reply_list
, P_BOOL
,
309 {"show_ruler", "TRUE", &prefs_common
.show_ruler
, P_BOOL
,
312 {"show_ruler", "FALSE", &prefs_common
.show_ruler
, P_BOOL
,
317 {"reply_quote_mark", "> ", &prefs_common
.quotemark
, P_STRING
,
319 {"reply_quote_format", N_("On %d\\n%f wrote:\\n\\n%q\\n%X"),
320 &prefs_common
.quotefmt
, P_STRING
, NULL
, NULL
, NULL
},
322 {"forward_quote_mark", "> ", &prefs_common
.fw_quotemark
, P_STRING
,
324 {"forward_quote_format",
325 N_("\\n\\nBegin forwarded message:\\n\\n"
326 "?d{Date: %d\\n}?f{From: %f\\n}?t{To: %t\\n}?c{Cc: %c\\n}"
327 "?n{Newsgroups: %n\\n}?s{Subject: %s\\n}\\n\\n%M"),
328 &prefs_common
.fw_quotefmt
, P_STRING
,
330 {"quote_chars", ">", &prefs_common
.quote_chars
, P_STRING
,
336 {"message_font_gtk2", "Monospace 9",
337 &SPECIFIC_PREFS
.textfont
, P_STRING
, NULL
, NULL
, NULL
},
338 {"print_font_gtk2", "Monospace 9",
339 &SPECIFIC_PREFS
.printfont
, P_STRING
, NULL
, NULL
, NULL
},
340 {"small_font_gtk2", "Sans 9",
341 &SPECIFIC_PREFS
.smallfont
, P_STRING
, NULL
, NULL
, NULL
},
342 {"normal_font_gtk2", "Sans 9",
343 &SPECIFIC_PREFS
.normalfont
, P_STRING
, NULL
, NULL
, NULL
},
344 {"bold_font_gtk2", "Sans Bold 9",
345 &SPECIFIC_PREFS
.boldfont
, P_STRING
, NULL
, NULL
, NULL
},
347 {"message_font_gtk2", "Monospace 8",
348 &SPECIFIC_PREFS
.textfont
, P_STRING
, NULL
, NULL
, NULL
},
349 {"print_font_gtk2", "Monospace 8",
350 &SPECIFIC_PREFS
.printfont
, P_STRING
, NULL
, NULL
, NULL
},
351 {"small_font_gtk2", "Sans 8",
352 &SPECIFIC_PREFS
.smallfont
, P_STRING
, NULL
, NULL
, NULL
},
353 {"normal_font_gtk2", "Sans 8",
354 &SPECIFIC_PREFS
.normalfont
, P_STRING
, NULL
, NULL
, NULL
},
355 {"bold_font_gtk2", "Sans Bold 8",
356 &SPECIFIC_PREFS
.boldfont
, P_STRING
, NULL
, NULL
, NULL
},
359 {"use_different_print_font", "FALSE", &prefs_common
.use_different_print_font
, P_BOOL
,
361 {"derive_from_normal_font", "TRUE", &prefs_common
.derive_from_normal_font
, P_BOOL
,
365 {"custom_color1", "#ff9900", &prefs_common
.custom_colorlabel
[0].color
, P_COLOR
,
367 {"custom_colorlabel1", N_("Orange"), &prefs_common
.custom_colorlabel
[0].label
, P_STRING
,
369 {"custom_color2", "#ff0000", &prefs_common
.custom_colorlabel
[1].color
, P_COLOR
,
371 {"custom_colorlabel2", N_("Red"), &prefs_common
.custom_colorlabel
[1].label
, P_STRING
,
373 {"custom_color3", "#ff66ff", &prefs_common
.custom_colorlabel
[2].color
, P_COLOR
,
375 {"custom_colorlabel3", N_("Pink"), &prefs_common
.custom_colorlabel
[2].label
, P_STRING
,
377 {"custom_color4", "#00ccff", &prefs_common
.custom_colorlabel
[3].color
, P_COLOR
,
379 {"custom_colorlabel4", N_("Sky blue"), &prefs_common
.custom_colorlabel
[3].label
, P_STRING
,
381 {"custom_color5", "#0000ff", &prefs_common
.custom_colorlabel
[4].color
, P_COLOR
,
383 {"custom_colorlabel5", N_("Blue"), &prefs_common
.custom_colorlabel
[4].label
, P_STRING
,
385 {"custom_color6", "#009900", &prefs_common
.custom_colorlabel
[5].color
, P_COLOR
,
387 {"custom_colorlabel6", N_("Green"), &prefs_common
.custom_colorlabel
[5].label
, P_STRING
,
389 {"custom_color7", "#663333", &prefs_common
.custom_colorlabel
[6].color
, P_COLOR
,
391 {"custom_colorlabel7", N_("Brown"), &prefs_common
.custom_colorlabel
[6].label
, P_STRING
,
393 {"custom_color8", "#aaaaaa", &prefs_common
.custom_colorlabel
[7].color
, P_COLOR
,
395 {"custom_colorlabel8", N_("Grey"), &prefs_common
.custom_colorlabel
[7].label
, P_STRING
,
397 {"custom_color9", "#c07254", &prefs_common
.custom_colorlabel
[8].color
, P_COLOR
,
399 {"custom_colorlabel9", N_("Light brown"), &prefs_common
.custom_colorlabel
[8].label
, P_STRING
,
401 {"custom_color10", "#c00000", &prefs_common
.custom_colorlabel
[9].color
, P_COLOR
,
403 {"custom_colorlabel10", N_("Dark red"), &prefs_common
.custom_colorlabel
[9].label
, P_STRING
,
405 {"custom_color11", "#cc1074", &prefs_common
.custom_colorlabel
[10].color
, P_COLOR
,
407 {"custom_colorlabel11", N_("Dark pink"), &prefs_common
.custom_colorlabel
[10].label
, P_STRING
,
409 {"custom_color12", "#5094cd", &prefs_common
.custom_colorlabel
[11].color
, P_COLOR
,
411 {"custom_colorlabel12", N_("Steel blue"), &prefs_common
.custom_colorlabel
[11].label
, P_STRING
,
413 {"custom_color13", "#ffd500", &prefs_common
.custom_colorlabel
[12].color
, P_COLOR
,
415 {"custom_colorlabel13", N_("Gold"), &prefs_common
.custom_colorlabel
[12].label
, P_STRING
,
417 {"custom_color14", "#00d800", &prefs_common
.custom_colorlabel
[13].color
, P_COLOR
,
419 {"custom_colorlabel14", N_("Bright green"), &prefs_common
.custom_colorlabel
[13].label
, P_STRING
,
421 {"custom_color15", "#c060c0", &prefs_common
.custom_colorlabel
[14].color
, P_COLOR
,
423 {"custom_colorlabel15", N_("Magenta"), &prefs_common
.custom_colorlabel
[14].label
, P_STRING
,
427 {"display_image", "TRUE", &prefs_common
.display_img
, P_BOOL
,
429 {"resize_image", "TRUE", &prefs_common
.resize_img
, P_BOOL
,
431 {"inline_image", "TRUE", &prefs_common
.inline_img
, P_BOOL
,
433 {"fit_image_height", "TRUE", &prefs_common
.fit_img_height
, P_BOOL
,
436 {"display_folder_unread_num", "0",
437 &prefs_common
.display_folder_unread
, P_INT
,
439 {"newsgroup_abbrev_len", "16",
440 &prefs_common
.ng_abbrev_len
, P_INT
,
444 {"translate_header", "TRUE", &prefs_common
.trans_hdr
, P_BOOL
,
447 {"translate_header", "FALSE", &prefs_common
.trans_hdr
, P_BOOL
,
451 /* Display: Summary View */
452 {"default_sort_key", "3", &prefs_common
.default_sort_key
, P_ENUM
,
454 {"default_sort_type", "1", &prefs_common
.default_sort_type
, P_ENUM
,
456 {"use_address_book", "FALSE", &prefs_common
.use_addr_book
, P_BOOL
,
458 {"thread_by_subject", "TRUE", &prefs_common
.thread_by_subject
, P_BOOL
,
460 {"date_format", N_("%x(%a) %H:%M"), &prefs_common
.date_format
,
461 P_STRING
, NULL
, NULL
, NULL
},
462 {"msgview_date_format", "FALSE", &prefs_common
.msgview_date_format
, P_BOOL
,
465 {"next_on_delete", "FALSE", &prefs_common
.next_on_delete
, P_BOOL
,
468 {"bold_unread", "TRUE", &prefs_common
.bold_unread
, P_BOOL
,
470 {"bold_marked", "FALSE", &prefs_common
.bold_marked
, P_BOOL
,
474 {"toolbar_style", "3", &prefs_common
.toolbar_style
, P_ENUM
,
477 {"toolbar_style", "1", &prefs_common
.toolbar_style
, P_ENUM
,
480 {"show_col_headers", "TRUE", &prefs_common
.show_col_headers
, P_BOOL
,
483 {"show_statusbar", "TRUE", &prefs_common
.show_statusbar
, P_BOOL
,
485 {"show_searchbar", "TRUE", &prefs_common
.show_searchbar
, P_BOOL
,
488 {"show_statusbar", "FALSE", &prefs_common
.show_statusbar
, P_BOOL
,
490 {"show_searchbar", "FALSE", &prefs_common
.show_searchbar
, P_BOOL
,
494 {"summary_col_show_mark", "TRUE",
495 &prefs_common
.summary_col_visible
[S_COL_MARK
], P_BOOL
, NULL
, NULL
, NULL
},
496 {"summary_col_show_unread", "TRUE",
497 &prefs_common
.summary_col_visible
[S_COL_STATUS
], P_BOOL
, NULL
, NULL
, NULL
},
498 {"summary_col_show_subject", "TRUE",
499 &prefs_common
.summary_col_visible
[S_COL_SUBJECT
], P_BOOL
, NULL
, NULL
, NULL
},
500 {"summary_col_show_from", "TRUE",
501 &prefs_common
.summary_col_visible
[S_COL_FROM
], P_BOOL
, NULL
, NULL
, NULL
},
502 {"summary_col_show_to", "FALSE",
503 &prefs_common
.summary_col_visible
[S_COL_TO
], P_BOOL
, NULL
, NULL
, NULL
},
504 {"summary_col_show_date", "TRUE",
505 &prefs_common
.summary_col_visible
[S_COL_DATE
], P_BOOL
, NULL
, NULL
, NULL
},
506 {"summary_col_show_mime", "TRUE",
507 &prefs_common
.summary_col_visible
[S_COL_MIME
], P_BOOL
, NULL
, NULL
, NULL
},
508 {"summary_col_show_size", "TRUE",
509 &prefs_common
.summary_col_visible
[S_COL_SIZE
], P_BOOL
, NULL
, NULL
, NULL
},
510 {"summary_col_show_number", "FALSE",
511 &prefs_common
.summary_col_visible
[S_COL_NUMBER
], P_BOOL
, NULL
, NULL
, NULL
},
512 {"summary_col_show_score", "FALSE",
513 &prefs_common
.summary_col_visible
[S_COL_SCORE
], P_BOOL
, NULL
, NULL
, NULL
},
514 {"summary_col_show_locked", "FALSE",
515 &prefs_common
.summary_col_visible
[S_COL_LOCKED
], P_BOOL
, NULL
, NULL
, NULL
},
516 {"summary_col_show_tags", "FALSE",
517 &prefs_common
.summary_col_visible
[S_COL_TAGS
], P_BOOL
, NULL
, NULL
, NULL
},
519 {"summary_col_lock", "FALSE", &prefs_common
.summary_col_lock
, P_BOOL
,
522 {"summary_col_pos_mark", "0",
523 &prefs_common
.summary_col_pos
[S_COL_MARK
], P_INT
, NULL
, NULL
, NULL
},
524 {"summary_col_pos_unread", "1",
525 &prefs_common
.summary_col_pos
[S_COL_STATUS
], P_INT
, NULL
, NULL
, NULL
},
526 {"summary_col_pos_mime", "2",
527 &prefs_common
.summary_col_pos
[S_COL_MIME
], P_INT
, NULL
, NULL
, NULL
},
528 {"summary_col_pos_subject", "3",
529 &prefs_common
.summary_col_pos
[S_COL_SUBJECT
], P_INT
, NULL
, NULL
, NULL
},
530 {"summary_col_pos_from", "4",
531 &prefs_common
.summary_col_pos
[S_COL_FROM
], P_INT
, NULL
, NULL
, NULL
},
532 {"summary_col_pos_date", "5",
533 &prefs_common
.summary_col_pos
[S_COL_DATE
], P_INT
, NULL
, NULL
, NULL
},
534 {"summary_col_pos_size", "6",
535 &prefs_common
.summary_col_pos
[S_COL_SIZE
], P_INT
, NULL
, NULL
, NULL
},
536 {"summary_col_pos_number", "7",
537 &prefs_common
.summary_col_pos
[S_COL_NUMBER
], P_INT
, NULL
, NULL
, NULL
},
538 {"summary_col_pos_score", "8",
539 &prefs_common
.summary_col_pos
[S_COL_SCORE
], P_INT
, NULL
, NULL
, NULL
},
540 {"summary_col_pos_locked", "9",
541 &prefs_common
.summary_col_pos
[S_COL_LOCKED
], P_INT
, NULL
, NULL
, NULL
},
542 {"summary_col_pos_to", "10",
543 &prefs_common
.summary_col_pos
[S_COL_TO
], P_INT
, NULL
, NULL
, NULL
},
544 {"summary_col_pos_tags", "11",
545 &prefs_common
.summary_col_pos
[S_COL_TAGS
], P_INT
, NULL
, NULL
, NULL
},
547 {"summary_col_size_mark", "10",
548 &prefs_common
.summary_col_size
[S_COL_MARK
], P_INT
, NULL
, NULL
, NULL
},
549 {"summary_col_size_unread", "13",
550 &prefs_common
.summary_col_size
[S_COL_STATUS
], P_INT
, NULL
, NULL
, NULL
},
551 {"summary_col_size_mime", "10",
552 &prefs_common
.summary_col_size
[S_COL_MIME
], P_INT
, NULL
, NULL
, NULL
},
554 {"summary_col_size_subject", "200",
555 &prefs_common
.summary_col_size
[S_COL_SUBJECT
], P_INT
, NULL
, NULL
, NULL
},
556 {"summary_col_size_from", "120",
557 &prefs_common
.summary_col_size
[S_COL_FROM
], P_INT
, NULL
, NULL
, NULL
},
558 {"summary_col_size_to", "120",
559 &prefs_common
.summary_col_size
[S_COL_TO
], P_INT
, NULL
, NULL
, NULL
},
561 {"summary_col_size_subject", "300",
562 &prefs_common
.summary_col_size
[S_COL_SUBJECT
], P_INT
, NULL
, NULL
, NULL
},
563 {"summary_col_size_from", "150",
564 &prefs_common
.summary_col_size
[S_COL_FROM
], P_INT
, NULL
, NULL
, NULL
},
565 {"summary_col_size_to", "150",
566 &prefs_common
.summary_col_size
[S_COL_TO
], P_INT
, NULL
, NULL
, NULL
},
569 {"summary_col_size_date", "118",
570 &prefs_common
.summary_col_size
[S_COL_DATE
], P_INT
, NULL
, NULL
, NULL
},
571 {"summary_col_size_size", "45",
572 &prefs_common
.summary_col_size
[S_COL_SIZE
], P_INT
, NULL
, NULL
, NULL
},
573 {"summary_col_size_number", "40",
574 &prefs_common
.summary_col_size
[S_COL_NUMBER
], P_INT
, NULL
, NULL
, NULL
},
575 {"summary_col_size_score", "40",
576 &prefs_common
.summary_col_size
[S_COL_SCORE
], P_INT
, NULL
, NULL
, NULL
},
577 {"summary_col_size_locked", "13",
578 &prefs_common
.summary_col_size
[S_COL_LOCKED
], P_INT
, NULL
, NULL
, NULL
},
579 {"summary_col_size_tags", "150",
580 &prefs_common
.summary_col_size
[S_COL_TAGS
], P_INT
, NULL
, NULL
, NULL
},
583 {"folderwin_x", "16", &prefs_common
.folderwin_x
, P_INT
,
585 {"folderwin_y", "16", &prefs_common
.folderwin_y
, P_INT
,
587 {"folderview_width", "270", &prefs_common
.folderview_width
, P_INT
,
589 {"folderview_height", "450", &prefs_common
.folderview_height
, P_INT
,
591 {"folderview_visible", "TRUE", &prefs_common
.folderview_visible
, P_BOOL
,
594 {"folder_col_show_folder", "TRUE",
595 &prefs_common
.folder_col_visible
[F_COL_FOLDER
], P_BOOL
, NULL
, NULL
, NULL
},
596 {"folder_col_show_new", "TRUE",
597 &prefs_common
.folder_col_visible
[F_COL_NEW
], P_BOOL
, NULL
, NULL
, NULL
},
598 {"folder_col_show_unread", "TRUE",
599 &prefs_common
.folder_col_visible
[F_COL_UNREAD
], P_BOOL
, NULL
, NULL
, NULL
},
600 {"folder_col_show_total", "TRUE",
601 &prefs_common
.folder_col_visible
[F_COL_TOTAL
], P_BOOL
, NULL
, NULL
, NULL
},
603 {"folder_col_pos_folder", "0",
604 &prefs_common
.folder_col_pos
[F_COL_FOLDER
], P_INT
, NULL
, NULL
, NULL
},
605 {"folder_col_pos_new", "1",
606 &prefs_common
.folder_col_pos
[F_COL_NEW
], P_INT
, NULL
, NULL
, NULL
},
607 {"folder_col_pos_unread", "2",
608 &prefs_common
.folder_col_pos
[F_COL_UNREAD
], P_INT
, NULL
, NULL
, NULL
},
609 {"folder_col_pos_total", "3",
610 &prefs_common
.folder_col_pos
[F_COL_TOTAL
], P_INT
, NULL
, NULL
, NULL
},
613 {"folder_col_size_folder", "120",
614 &prefs_common
.folder_col_size
[F_COL_FOLDER
], P_INT
, NULL
, NULL
, NULL
},
615 {"folder_col_size_new", "32",
616 &prefs_common
.folder_col_size
[F_COL_NEW
], P_INT
, NULL
, NULL
, NULL
},
617 {"folder_col_size_unread", "32",
618 &prefs_common
.folder_col_size
[F_COL_UNREAD
], P_INT
, NULL
, NULL
, NULL
},
619 {"folder_col_size_total", "32",
620 &prefs_common
.folder_col_size
[F_COL_TOTAL
], P_INT
, NULL
, NULL
, NULL
},
622 {"folder_col_size_folder", "400",
623 &prefs_common
.folder_col_size
[F_COL_FOLDER
], P_INT
, NULL
, NULL
, NULL
},
624 {"folder_col_size_new", "32",
625 &prefs_common
.folder_col_size
[F_COL_NEW
], P_INT
, NULL
, NULL
, NULL
},
626 {"folder_col_size_unread", "32",
627 &prefs_common
.folder_col_size
[F_COL_UNREAD
], P_INT
, NULL
, NULL
, NULL
},
628 {"folder_col_size_total", "32",
629 &prefs_common
.folder_col_size
[F_COL_TOTAL
], P_INT
, NULL
, NULL
, NULL
},
632 {"folder_default_thread", "TRUE", &prefs_common
.folder_default_thread
, P_BOOL
,
634 {"folder_default_thread_collapsed", "FALSE", &prefs_common
.folder_default_thread_collapsed
, P_BOOL
,
636 {"folder_default_hide_read_threads", "FALSE", &prefs_common
.folder_default_hide_read_threads
, P_BOOL
,
638 {"folder_default_hide_read_msgs", "FALSE", &prefs_common
.folder_default_hide_read_msgs
, P_BOOL
,
640 {"folder_default_hide_del_msgs", "FALSE", &prefs_common
.folder_default_hide_del_msgs
, P_BOOL
,
643 {"summaryview_width", "500", &prefs_common
.summaryview_width
, P_INT
,
645 {"summaryview_height", "244", &prefs_common
.summaryview_height
, P_INT
,
648 {"main_messagewin_x", "256", &prefs_common
.main_msgwin_x
, P_INT
,
650 {"main_messagewin_y", "210", &prefs_common
.main_msgwin_y
, P_INT
,
652 {"messageview_width", "500", &prefs_common
.msgview_width
, P_INT
,
654 {"messageview_height", "213", &prefs_common
.msgview_height
, P_INT
,
656 {"messageview_visible", "TRUE", &prefs_common
.msgview_visible
, P_BOOL
,
659 {"mainview_x", "64", &prefs_common
.mainview_x
, P_INT
,
661 {"mainview_y", "64", &prefs_common
.mainview_y
, P_INT
,
663 {"mainview_width", "500", &prefs_common
.mainview_width
, P_INT
,
665 {"mainview_height", "400", &prefs_common
.mainview_height
, P_INT
,
667 {"mainwin_x", "64", &prefs_common
.mainwin_x
, P_INT
,
669 {"mainwin_y", "64", &prefs_common
.mainwin_y
, P_INT
,
671 {"mainwin_maximised", "FALSE", &prefs_common
.mainwin_maximised
, P_BOOL
,
673 {"mainwin_fullscreen", "FALSE", &prefs_common
.mainwin_fullscreen
, P_BOOL
,
675 {"mainwin_menubar", "TRUE", &prefs_common
.mainwin_menubar
, P_BOOL
,
678 {"mainwin_width", "800", &prefs_common
.mainwin_width
, P_INT
,
680 {"mainwin_height", "600", &prefs_common
.mainwin_height
, P_INT
,
682 {"messagewin_width", "600", &prefs_common
.msgwin_width
, P_INT
,
684 {"messagewin_height", "540", &prefs_common
.msgwin_height
, P_INT
,
686 {"mimeview_tree_height", "60", &prefs_common
.mimeview_tree_height
, P_INT
,
688 {"sourcewin_width", "600", &prefs_common
.sourcewin_width
, P_INT
,
690 {"sourcewin_height", "500", &prefs_common
.sourcewin_height
, P_INT
,
692 {"compose_width", "600", &prefs_common
.compose_width
, P_INT
,
694 {"compose_height", "560", &prefs_common
.compose_height
, P_INT
,
697 {"mainwin_width", "700", &prefs_common
.mainwin_width
, P_INT
,
699 {"mainwin_height", "470", &prefs_common
.mainwin_height
, P_INT
,
701 {"messagewin_width", "700", &prefs_common
.msgwin_width
, P_INT
,
703 {"messagewin_height", "470", &prefs_common
.msgwin_height
, P_INT
,
705 {"sourcewin_width", "700", &prefs_common
.sourcewin_width
, P_INT
,
707 {"sourcewin_height", "470", &prefs_common
.sourcewin_height
, P_INT
,
709 {"compose_width", "700", &prefs_common
.compose_width
, P_INT
,
711 {"compose_height", "470", &prefs_common
.compose_height
, P_INT
,
714 {"compose_notebook_height", "130", &prefs_common
.compose_notebook_height
, P_INT
,
716 {"compose_x", "0", &prefs_common
.compose_x
, P_INT
,
718 {"compose_y", "0", &prefs_common
.compose_y
, P_INT
,
721 {"enable_color", "TRUE", &prefs_common
.enable_color
, P_BOOL
,
724 {"quote_level1_color", "#0000b3", &prefs_common
.color
[COL_QUOTE_LEVEL1
],
725 P_COLOR
, NULL
, NULL
, NULL
},
726 {"quote_level2_color", "#0000b3", &prefs_common
.color
[COL_QUOTE_LEVEL2
],
727 P_COLOR
, NULL
, NULL
, NULL
},
728 {"quote_level3_color", "#0000b3", &prefs_common
.color
[COL_QUOTE_LEVEL3
],
729 P_COLOR
, NULL
, NULL
, NULL
},
730 {"enable_bgcolor", "FALSE", &prefs_common
.enable_bgcolor
, P_BOOL
,
732 {"quote_level1_bgcolor", "#cccccc", &prefs_common
.color
[COL_QUOTE_LEVEL1_BG
],
733 P_COLOR
, NULL
, NULL
, NULL
},
734 {"quote_level2_bgcolor", "#d4d4d4", &prefs_common
.color
[COL_QUOTE_LEVEL2_BG
],
735 P_COLOR
, NULL
, NULL
, NULL
},
736 {"quote_level3_bgcolor", "#dddddd", &prefs_common
.color
[COL_QUOTE_LEVEL3_BG
],
737 P_COLOR
, NULL
, NULL
, NULL
},
738 {"uri_color", "#007f00", &prefs_common
.color
[COL_URI
],
739 P_COLOR
, NULL
, NULL
, NULL
},
740 {"emphasis_color", "#0000cf", &prefs_common
.color
[COL_EMPHASIS
],
741 P_COLOR
, NULL
, NULL
, NULL
},
742 {"target_folder_color", "#da1cca", &prefs_common
.color
[COL_TGT_FOLDER
],
743 P_COLOR
, NULL
, NULL
, NULL
},
744 {"signature_color", "#797979", &prefs_common
.color
[COL_SIGNATURE
],
745 P_COLOR
, NULL
, NULL
, NULL
},
746 {"recycle_quote_colors", "FALSE", &prefs_common
.recycle_quote_colors
,
747 P_BOOL
, NULL
, NULL
, NULL
},
749 {"default_header_color", "#000000", &prefs_common
.color
[COL_DEFAULT_HEADER
],
750 P_COLOR
, NULL
, NULL
, NULL
},
751 {"default_header_bgcolor", "#f5f6be", &prefs_common
.color
[COL_DEFAULT_HEADER_BG
],
752 P_COLOR
, NULL
, NULL
, NULL
},
753 {"tags_color", "#000000", &prefs_common
.color
[COL_TAGS
],
754 P_COLOR
, NULL
, NULL
, NULL
},
755 {"tags_bgcolor", "#f5f6be", &prefs_common
.color
[COL_TAGS_BG
],
756 P_COLOR
, NULL
, NULL
, NULL
},
757 {"qs_active_color", "#000000", &prefs_common
.color
[COL_QS_ACTIVE
],
758 P_COLOR
, NULL
, NULL
, NULL
},
759 {"qs_active_bgcolor", "#f5f6be", &prefs_common
.color
[COL_QS_ACTIVE_BG
],
760 P_COLOR
, NULL
, NULL
, NULL
},
761 {"qs_error_color", "#000000", &prefs_common
.color
[COL_QS_ERROR
],
762 P_COLOR
, NULL
, NULL
, NULL
},
763 {"qs_error_bgcolor", "#ff7070", &prefs_common
.color
[COL_QS_ERROR_BG
],
764 P_COLOR
, NULL
, NULL
, NULL
},
766 {"display_header_pane", "FALSE", &prefs_common
.display_header_pane
,
767 P_BOOL
, NULL
, NULL
, NULL
},
768 {"display_header", "TRUE", &prefs_common
.display_header
, P_BOOL
,
770 {"display_xface", "TRUE", &prefs_common
.display_xface
,
771 P_BOOL
, NULL
, NULL
, NULL
},
772 {"save_xface", "TRUE", &prefs_common
.save_xface
,
773 P_BOOL
, NULL
, NULL
, NULL
},
774 {"render_html", "TRUE", &prefs_common
.render_html
, P_BOOL
,
776 {"invoke_plugin_on_html", "FALSE", &prefs_common
.invoke_plugin_on_html
, P_BOOL
,
778 {"promote_html_part", "FALSE", &prefs_common
.promote_html_part
, P_BOOL
,
780 {"line_space", "2", &prefs_common
.line_space
, P_INT
,
782 {"never_send_retrcpt", "FALSE", &prefs_common
.never_send_retrcpt
, P_BOOL
,
785 {"enable_smooth_scroll", "FALSE",
786 &prefs_common
.enable_smooth_scroll
, P_BOOL
,
788 {"scroll_step", "1", &prefs_common
.scroll_step
, P_INT
,
790 {"scroll_half_page", "FALSE", &prefs_common
.scroll_halfpage
, P_BOOL
,
792 {"hide_quoted", "TRUE",
793 &prefs_common
.hide_quoted
, P_BOOL
,
795 {"respect_flowed_format", "FALSE", &prefs_common
.respect_flowed_format
, P_BOOL
,
797 {"show_all_headers", "FALSE", &prefs_common
.show_all_headers
, P_BOOL
,
800 {"show_other_header", "FALSE", &prefs_common
.show_other_header
, P_BOOL
,
803 {"attach_desc", "TRUE", &prefs_common
.attach_desc
, P_BOOL
,
805 {"attach_save_directory", NULL
,
806 &SPECIFIC_PREFS
.attach_save_dir
, P_STRING
, NULL
, NULL
, NULL
},
807 {"attach_load_directory", NULL
,
808 &SPECIFIC_PREFS
.attach_load_dir
, P_STRING
, NULL
, NULL
, NULL
},
811 {"mime_textviewer", NULL
,
812 &SPECIFIC_PREFS
.mime_textviewer
, P_STRING
, NULL
, NULL
, NULL
},
813 {"mime_open_command", "xdg-open '%s'",
814 &SPECIFIC_PREFS
.mime_open_cmd
, P_STRING
, NULL
, NULL
, NULL
},
815 {"show_inline_attachments", "TRUE",
816 &prefs_common
.show_inline_attachments
, P_BOOL
, NULL
, NULL
, NULL
},
820 {"layout_mode", "0", &prefs_common
.layout_mode
, P_INT
,
823 {"layout_mode", "5", &prefs_common
.layout_mode
, P_INT
,
826 /* {"emulate_emacs", "FALSE", &prefs_common.emulate_emacs, P_BOOL,
827 NULL, NULL, NULL}, */
828 {"open_selected_message_on_folder_open", "FALSE",
829 &prefs_common
.open_selected_on_folder_open
,
830 P_BOOL
, NULL
, NULL
, NULL
},
831 {"open_selected_message_on_search_results", "FALSE",
832 &prefs_common
.open_selected_on_search_results
,
833 P_BOOL
, NULL
, NULL
, NULL
},
834 {"open_selected_message_on_prevnext", "FALSE",
835 &prefs_common
.open_selected_on_prevnext
,
836 P_BOOL
, NULL
, NULL
, NULL
},
837 {"open_selected_message_on_deletemove", "FALSE",
838 &prefs_common
.open_selected_on_deletemove
,
839 P_BOOL
, NULL
, NULL
, NULL
},
840 {"open_selected_message_on_directional", "FALSE",
841 &prefs_common
.open_selected_on_directional
,
842 P_BOOL
, NULL
, NULL
, NULL
},
843 {"always_show_message_when_selected", "FALSE",
844 &prefs_common
.always_show_msg
,
845 P_BOOL
, NULL
, NULL
, NULL
},
846 {"select_on_entry", "3", &prefs_common
.select_on_entry
,
847 P_ENUM
, NULL
, NULL
, NULL
},
848 {"show_tooltips", "TRUE", &prefs_common
.show_tooltips
,
849 P_BOOL
, NULL
, NULL
, NULL
},
851 /* do it SUMMARY_OPEN_ACTIONS-1 times */
852 {"summary_select_prio1", "0", &prefs_common
.summary_select_prio
[0], P_ENUM
,
854 {"summary_select_prio2", "0", &prefs_common
.summary_select_prio
[1], P_ENUM
,
856 {"summary_select_prio3", "0", &prefs_common
.summary_select_prio
[2], P_ENUM
,
858 {"summary_select_prio4", "0", &prefs_common
.summary_select_prio
[3], P_ENUM
,
860 {"summary_select_prio5", "0", &prefs_common
.summary_select_prio
[4], P_ENUM
,
862 {"summary_select_prio6", "0", &prefs_common
.summary_select_prio
[5], P_ENUM
,
864 {"summary_select_prio7", "0", &prefs_common
.summary_select_prio
[6], P_ENUM
,
866 {"summary_select_prio8", "0", &prefs_common
.summary_select_prio
[7], P_ENUM
,
868 {"summary_select_prio9", "0", &prefs_common
.summary_select_prio
[8], P_ENUM
,
870 {"summary_select_prio10", "0", &prefs_common
.summary_select_prio
[9], P_ENUM
,
873 {"mark_as_read_on_new_window", "FALSE",
874 &prefs_common
.mark_as_read_on_new_window
,
875 P_BOOL
, NULL
, NULL
, NULL
},
876 {"mark_as_read_delay", "0",
877 &prefs_common
.mark_as_read_delay
, P_INT
,
879 {"immediate_execution", "TRUE", &prefs_common
.immediate_exec
, P_BOOL
,
881 {"nextunreadmsg_dialog", "1", &prefs_common
.next_unread_msg_dialog
, P_ENUM
,
883 {"summary_from_show", "0", &prefs_common
.summary_from_show
, P_ENUM
,
886 {"pixmap_theme_path", DEFAULT_PIXMAP_THEME
,
887 &SPECIFIC_PREFS
.pixmap_theme_path
, P_STRING
,
890 {"enable_alpha_svg", "TRUE",
891 &SPECIFIC_PREFS
.enable_alpha_svg
, P_BOOL
,
893 {"enable_pixmap_scaling", "TRUE",
894 &SPECIFIC_PREFS
.enable_pixmap_scaling
, P_BOOL
,
896 {"pixmap_scaling_auto", "TRUE",
897 &SPECIFIC_PREFS
.pixmap_scaling_auto
, P_BOOL
,
899 {"pixmap_scaling_ppi", "96",
900 &SPECIFIC_PREFS
.pixmap_scaling_ppi
, P_INT
,
904 {"run_processingrules_before_mark_all", "FALSE", &prefs_common
.run_processingrules_before_mark_all
, P_BOOL
,
906 {"ask_mark_all_read", "TRUE", &prefs_common
.ask_mark_all_read
, P_BOOL
,
908 {"ask_override_colorlabel", "TRUE", &prefs_common
.ask_override_colorlabel
, P_BOOL
,
911 {"ask_apply_per_account_filtering_rules", "TRUE", &prefs_common
.ask_apply_per_account_filtering_rules
, P_BOOL
,
913 {"apply_per_account_filtering_rules", "0", &prefs_common
.apply_per_account_filtering_rules
, P_ENUM
,
917 {"addressbook_use_editaddress_dialog", "TRUE", &prefs_common
.addressbook_use_editaddress_dialog
,
918 P_BOOL
, NULL
, NULL
, NULL
},
919 {"addressbook_hpaned_pos", "-1", &prefs_common
.addressbook_hpaned_pos
,
920 P_INT
, NULL
, NULL
, NULL
},
921 {"addressbook_vpaned_pos", "-1", &prefs_common
.addressbook_vpaned_pos
,
922 P_INT
, NULL
, NULL
, NULL
},
926 {"uri_open_command", DEFAULT_BROWSER_CMD
,
927 &SPECIFIC_PREFS
.uri_cmd
, P_STRING
, NULL
, NULL
, NULL
},
929 {"gtk_theme", DEFAULT_W32_GTK_THEME
,
930 &SPECIFIC_PREFS
.gtk_theme
, P_STRING
, NULL
, NULL
, NULL
},
932 {"ext_editor_command", DEFAULT_EDITOR_CMD
,
933 &SPECIFIC_PREFS
.ext_editor_cmd
, P_STRING
, NULL
, NULL
, NULL
},
934 {"cmds_use_system_default", "TRUE",
935 &prefs_common
.cmds_use_system_default
, P_BOOL
, NULL
, NULL
, NULL
},
936 {"add_address_by_click", "FALSE", &prefs_common
.add_address_by_click
,
937 P_BOOL
, NULL
, NULL
, NULL
},
938 {"session_passwords", "FALSE", &prefs_common
.session_passwords
,
939 P_BOOL
, NULL
, NULL
, NULL
},
940 {"confirm_on_exit", "FALSE", &prefs_common
.confirm_on_exit
, P_BOOL
,
942 {"clean_trash_on_exit", "FALSE", &prefs_common
.clean_on_exit
, P_BOOL
,
944 {"ask_on_cleaning", "TRUE", &prefs_common
.ask_on_clean
, P_BOOL
,
946 {"warn_queued_on_exit", "TRUE", &prefs_common
.warn_queued_on_exit
,
947 P_BOOL
, NULL
, NULL
, NULL
},
948 {"work_offline", "FALSE", &prefs_common
.work_offline
, P_BOOL
,
950 {"summary_quicksearch_type", "0", &prefs_common
.summary_quicksearch_type
, P_INT
,
953 {"summary_quicksearch_recurse", "1", &prefs_common
.summary_quicksearch_recurse
, P_INT
,
956 {"summary_quicksearch_recurse", "0", &prefs_common
.summary_quicksearch_recurse
, P_INT
,
960 #if defined(__OpenBSD__)
961 {"io_timeout_secs", "80", &prefs_common
.io_timeout_secs
,
962 P_INT
, NULL
, NULL
, NULL
},
964 {"io_timeout_secs", "60", &prefs_common
.io_timeout_secs
,
965 P_INT
, NULL
, NULL
, NULL
},
967 {"hide_score", "-9999", &prefs_common
.kill_score
, P_INT
,
969 {"important_score", "1", &prefs_common
.important_score
, P_INT
,
972 {"clip_log", "TRUE", &prefs_common
.cliplog
, P_BOOL
,
974 {"log_length", "500", &prefs_common
.loglength
, P_INT
,
977 {"enable_log_standard", "TRUE", &prefs_common
.enable_log_standard
, P_BOOL
,
979 {"enable_log_warning", "TRUE", &prefs_common
.enable_log_warning
, P_BOOL
,
981 {"enable_log_error", "TRUE", &prefs_common
.enable_log_error
, P_BOOL
,
983 {"enable_log_status", "TRUE", &prefs_common
.enable_log_status
, P_BOOL
,
986 {"enable_log_standard", "FALSE", &prefs_common
.enable_log_standard
, P_BOOL
,
988 {"enable_log_warning", "FALSE", &prefs_common
.enable_log_warning
, P_BOOL
,
990 {"enable_log_error", "FALSE", &prefs_common
.enable_log_error
, P_BOOL
,
992 {"enable_log_status", "FALSE", &prefs_common
.enable_log_status
, P_BOOL
,
995 {"log_msg_color", "#00af00", &prefs_common
.color
[COL_LOG_MSG
],
996 P_COLOR
, NULL
, NULL
, NULL
},
997 {"log_warn_color", "#af0000", &prefs_common
.color
[COL_LOG_WARN
],
998 P_COLOR
, NULL
, NULL
, NULL
},
999 {"log_error_color", "#af0000", &prefs_common
.color
[COL_LOG_ERROR
],
1000 P_COLOR
, NULL
, NULL
, NULL
},
1001 {"log_in_color", "#000000", &prefs_common
.color
[COL_LOG_IN
],
1002 P_COLOR
, NULL
, NULL
, NULL
},
1003 {"log_out_color", "#0000ef", &prefs_common
.color
[COL_LOG_OUT
],
1004 P_COLOR
, NULL
, NULL
, NULL
},
1005 {"log_status_ok_color", "#00af00", &prefs_common
.color
[COL_LOG_STATUS_OK
],
1006 P_COLOR
, NULL
, NULL
, NULL
},
1007 {"log_status_nok_color", "#0000af", &prefs_common
.color
[COL_LOG_STATUS_NOK
],
1008 P_COLOR
, NULL
, NULL
, NULL
},
1009 {"log_status_skip_color", "#aa00aa", &prefs_common
.color
[COL_LOG_STATUS_SKIP
],
1010 P_COLOR
, NULL
, NULL
, NULL
},
1012 {"enable_filtering_debug", "FALSE", &prefs_common
.enable_filtering_debug
, P_BOOL
,
1014 {"filtering_debug_level", "1", &prefs_common
.filtering_debug_level
, P_INT
,
1016 {"enable_filtering_debug_inc", "TRUE", &prefs_common
.enable_filtering_debug_inc
, P_BOOL
,
1018 {"enable_filtering_debug_manual", "TRUE", &prefs_common
.enable_filtering_debug_manual
, P_BOOL
,
1020 {"enable_filtering_debug_folder_proc", "FALSE", &prefs_common
.enable_filtering_debug_folder_proc
, P_BOOL
,
1022 {"enable_filtering_debug_pre_proc", "FALSE", &prefs_common
.enable_filtering_debug_pre_proc
, P_BOOL
,
1024 {"enable_filtering_debug_post_proc", "FALSE", &prefs_common
.enable_filtering_debug_post_proc
, P_BOOL
,
1026 {"filtering_debug_clip_log", "TRUE", &prefs_common
.filtering_debug_cliplog
, P_BOOL
,
1028 {"filtering_debug_log_length", "500", &prefs_common
.filtering_debug_loglength
, P_INT
,
1031 {"gtk_enable_accels", "TRUE", &prefs_common
.gtk_enable_accels
, P_BOOL
,
1034 {"color_new", "#0000b3", &prefs_common
.color
[COL_NEW
],
1035 P_COLOR
, NULL
, NULL
, NULL
},
1037 /* Some windows' sizes */
1038 {"filteringwin_width", "500", &prefs_common
.filteringwin_width
, P_INT
,
1040 {"filteringwin_height", "-1", &prefs_common
.filteringwin_height
, P_INT
,
1043 {"filteringactionwin_width", "490", &prefs_common
.filteringactionwin_width
, P_INT
,
1045 {"filteringactionwin_height", "-1", &prefs_common
.filteringactionwin_height
, P_INT
,
1048 {"matcherwin_width", "520", &prefs_common
.matcherwin_width
, P_INT
,
1050 {"matcherwin_height", "-1", &prefs_common
.matcherwin_height
, P_INT
,
1053 {"templateswin_width", "480", &prefs_common
.templateswin_width
, P_INT
,
1055 {"templateswin_height", "-1", &prefs_common
.templateswin_height
, P_INT
,
1058 {"actionsiodialog_width", "582", &prefs_common
.actionsiodialog_width
, P_INT
,
1060 {"actionsiodialog_height", "310", &prefs_common
.actionsiodialog_height
, P_INT
,
1063 {"actionswin_width", "486", &prefs_common
.actionswin_width
, P_INT
,
1065 {"actionswin_height", "-1", &prefs_common
.actionswin_height
, P_INT
,
1068 {"tagswin_width", "586", &prefs_common
.tagswin_width
, P_INT
,
1070 {"tagswin_height", "-1", &prefs_common
.tagswin_height
, P_INT
,
1073 {"sslmanwin_width", "486", &prefs_common
.sslmanwin_width
, P_INT
,
1075 {"sslmanwin_height", "-1", &prefs_common
.sslmanwin_height
, P_INT
,
1078 {"uriopenerwin_width", "-1", &prefs_common
.uriopenerwin_width
, P_INT
,
1080 {"uriopenerwin_height", "-1", &prefs_common
.uriopenerwin_height
, P_INT
,
1083 {"foldersortwin_width", "400", &prefs_common
.foldersortwin_width
, P_INT
,
1085 {"foldersortwin_height", "300", &prefs_common
.foldersortwin_height
, P_INT
,
1088 {"addressbookwin_width", "520", &prefs_common
.addressbookwin_width
, P_INT
,
1090 {"addressbookwin_height", "-1", &prefs_common
.addressbookwin_height
, P_INT
,
1093 {"addressbookeditpersonwin_width", "640", &prefs_common
.addressbookeditpersonwin_width
, P_INT
,
1095 {"addressbookeditpersonwin_height", "320", &prefs_common
.addressbookeditpersonwin_height
, P_INT
,
1098 {"addressbookeditgroupwin_width", "580", &prefs_common
.addressbookeditgroupwin_width
, P_INT
,
1100 {"addressbookeditgroupwin_height", "340", &prefs_common
.addressbookeditgroupwin_height
, P_INT
,
1103 {"pluginswin_width", "-1", &prefs_common
.pluginswin_width
, P_INT
,
1105 {"pluginswin_height", "-1", &prefs_common
.pluginswin_height
, P_INT
,
1108 {"prefswin_width", "600", &prefs_common
.prefswin_width
, P_INT
,
1110 {"prefswin_height", "-1", &prefs_common
.prefswin_height
, P_INT
,
1113 {"folderitemwin_width", "500", &prefs_common
.folderitemwin_width
, P_INT
,
1115 {"folderitemwin_height", "-1", &prefs_common
.folderitemwin_height
, P_INT
,
1118 {"zero_replacement_char", "0", &prefs_common
.zero_replacement
, P_STRING
,
1121 {"editaccountwin_width", "500", &prefs_common
.editaccountwin_width
, P_INT
,
1123 {"editaccountwin_height", "-1", &prefs_common
.editaccountwin_height
, P_INT
,
1126 {"accountswin_width", "500", &prefs_common
.accountswin_width
, P_INT
,
1128 {"accountswin_height", "-1", &prefs_common
.accountswin_height
, P_INT
,
1131 {"logwin_width", "520", &prefs_common
.logwin_width
, P_INT
,
1133 {"logwin_height", "-1", &prefs_common
.logwin_height
, P_INT
,
1136 {"filtering_debugwin_width", "600", &prefs_common
.filtering_debugwin_width
, P_INT
,
1138 {"filtering_debugwin_height", "-1", &prefs_common
.filtering_debugwin_height
, P_INT
,
1141 {"folderselwin_width", "300", &prefs_common
.folderselwin_width
, P_INT
,
1143 {"folderselwin_height", "-1", &prefs_common
.folderselwin_height
, P_INT
,
1146 {"addressaddwin_width", "300", &prefs_common
.addressaddwin_width
, P_INT
,
1148 {"addressaddwin_height", "-1", &prefs_common
.addressaddwin_height
, P_INT
,
1151 {"addressbook_folderselwin_width", "300", &prefs_common
.addressbook_folderselwin_width
, P_INT
,
1153 {"addressbook_folderselwin_height", "-1", &prefs_common
.addressbook_folderselwin_height
, P_INT
,
1156 {"aboutwin_width", "450", &prefs_common
.aboutwin_width
, P_INT
,
1158 {"aboutwin_height", "500", &prefs_common
.aboutwin_height
, P_INT
,
1161 {"addrgather_width", "450", &prefs_common
.addrgather_width
, P_INT
,
1163 {"addrgather_height", "-1", &prefs_common
.addrgather_height
, P_INT
,
1166 {"news_subscribe_width", "450", &prefs_common
.news_subscribe_width
, P_INT
,
1168 {"news_subscribe_height", "400", &prefs_common
.news_subscribe_height
, P_INT
,
1172 {"imap_scan_tree_recurs_limit", "64", &prefs_common
.imap_scan_tree_recurs_limit
, P_INT
,
1174 {"warn_dnd", "1", &prefs_common
.warn_dnd
, P_INT
,
1176 {"show_save_all_success", "1", &prefs_common
.show_save_all_success
, P_INT
,
1178 {"show_save_all_failure", "1", &prefs_common
.show_save_all_failure
, P_INT
,
1180 {"utf8_instead_of_locale_for_broken_mail", "0",
1181 &prefs_common
.broken_are_utf8
, P_INT
,
1183 {"enable_swap_from", "FALSE", &prefs_common
.swap_from
, P_BOOL
,
1185 {"use_stripes_everywhere", "TRUE", &prefs_common
.use_stripes_everywhere
, P_BOOL
,
1187 {"use_stripes_in_summaries", "TRUE", &prefs_common
.use_stripes_in_summaries
, P_BOOL
,
1189 {"stripes_color_offset", "4000", &prefs_common
.stripes_color_offset
, P_INT
,
1191 {"enable_hscrollbar", "TRUE", &prefs_common
.enable_hscrollbar
, P_BOOL
,
1193 {"folderview_vscrollbar_policy", "0",
1194 &prefs_common
.folderview_vscrollbar_policy
, P_ENUM
,
1196 {"textview_cursor_visible", "FALSE",
1197 &prefs_common
.textview_cursor_visible
, P_BOOL
,
1199 {"hover_timeout", "500", &prefs_common
.hover_timeout
, P_INT
,
1201 #ifndef GENERIC_UMPC
1202 {"cache_max_mem_usage", "4096", &prefs_common
.cache_max_mem_usage
, P_INT
,
1204 {"cache_min_keep_time", "15", &prefs_common
.cache_min_keep_time
, P_INT
,
1207 {"cache_max_mem_usage", "4096", &prefs_common
.cache_max_mem_usage
, P_INT
,
1209 {"cache_min_keep_time", "0", &prefs_common
.cache_min_keep_time
, P_INT
,
1212 {"thread_by_subject_max_age", "10", &prefs_common
.thread_by_subject_max_age
,
1213 P_INT
, NULL
, NULL
, NULL
},
1214 {"last_opened_folder", "", &prefs_common
.last_opened_folder
,
1215 P_STRING
, NULL
, NULL
, NULL
},
1216 {"goto_last_folder_on_startup", "FALSE", &prefs_common
.goto_last_folder_on_startup
,
1217 P_BOOL
, NULL
, NULL
, NULL
},
1218 {"startup_folder", "", &prefs_common
.startup_folder
,
1219 P_STRING
, NULL
, NULL
, NULL
},
1220 {"goto_folder_on_startup", "FALSE", &prefs_common
.goto_folder_on_startup
,
1221 P_BOOL
, NULL
, NULL
, NULL
},
1222 {"summary_quicksearch_sticky", "1", &prefs_common
.summary_quicksearch_sticky
, P_INT
,
1224 {"summary_quicksearch_dynamic", "0", &prefs_common
.summary_quicksearch_dynamic
, P_INT
,
1226 {"summary_quicksearch_autorun", "0", &prefs_common
.summary_quicksearch_autorun
, P_INT
,
1228 {"statusbar_update_step", "10", &prefs_common
.statusbar_update_step
, P_INT
,
1230 {"compose_no_markup", "FALSE", &prefs_common
.compose_no_markup
, P_BOOL
,
1232 {"skip_ssl_cert_check", "FALSE", &prefs_common
.skip_ssl_cert_check
, P_BOOL
,
1234 {"live_dangerously", "FALSE", &prefs_common
.live_dangerously
, P_BOOL
,
1236 {"save_parts_readwrite", "FALSE", &prefs_common
.save_parts_readwrite
, P_BOOL
,
1238 {"hide_quotes", "0", &prefs_common
.hide_quotes
, P_INT
,
1240 {"unsafe_ssl_certs", "FALSE", &prefs_common
.unsafe_ssl_certs
, P_BOOL
,
1242 #ifndef GENERIC_UMPC
1243 {"real_time_sync", "FALSE", &prefs_common
.real_time_sync
, P_BOOL
,
1246 {"real_time_sync", "TRUE", &prefs_common
.real_time_sync
, P_BOOL
,
1250 {"print_paper_type", NULL
, &prefs_common
.print_paper_type
, P_STRING
,
1252 {"print_paper_orientation", "0", &prefs_common
.print_paper_orientation
, P_INT
,
1254 {"print_margin_top", "-1", &prefs_common
.print_margin_top
, P_INT
,
1256 {"print_margin_bottom", "-1", &prefs_common
.print_margin_bottom
, P_INT
,
1258 {"print_margin_left", "-1", &prefs_common
.print_margin_left
, P_INT
,
1260 {"print_margin_right", "-1", &prefs_common
.print_margin_right
, P_INT
,
1262 {"print_use_color", "0", &prefs_common
.print_use_color
, P_INT
,
1264 {"print_use_collate", "0", &prefs_common
.print_use_collate
, P_INT
,
1266 {"print_use_reverse", "0", &prefs_common
.print_use_reverse
, P_INT
,
1268 {"print_use_duplex", "0", &prefs_common
.print_use_duplex
, P_INT
,
1270 {"print_imgs", "1", &prefs_common
.print_imgs
, P_INT
,
1272 {"print_previewwin_width", "600", &prefs_common
.print_previewwin_width
, P_INT
,
1274 {"print_previewwin_height", "-1", &prefs_common
.print_previewwin_height
, P_INT
,
1276 {"use_networkmanager", "TRUE", &prefs_common
.use_networkmanager
, P_BOOL
,
1278 {"use_shred", "FALSE", &prefs_common
.use_shred
, P_BOOL
,
1281 {"two_line_vertical", "TRUE", &prefs_common
.two_line_vert
,
1282 P_BOOL
, NULL
, NULL
, NULL
},
1284 {"inherit_folder_properties", "FALSE", &prefs_common
.inherit_folder_props
, P_BOOL
,
1287 {"flush_metadata", "TRUE", &prefs_common
.flush_metadata
, P_BOOL
,
1290 {"nav_history_length", "50", &prefs_common
.nav_history_length
, P_INT
,
1293 {"diff_added_color", "#008b8b", &prefs_common
.color
[COL_DIFF_ADDED
],
1294 P_COLOR
, NULL
, NULL
, NULL
},
1295 {"diff_deleted_color", "#6a5acd", &prefs_common
.color
[COL_DIFF_DELETED
],
1296 P_COLOR
, NULL
, NULL
, NULL
},
1297 {"diff_hunk_color", "#a52a2a", &prefs_common
.color
[COL_DIFF_HUNK
],
1298 P_COLOR
, NULL
, NULL
, NULL
},
1300 {"folder_search_wildcard", "TRUE", &prefs_common
.folder_search_wildcard
, P_BOOL
,
1302 {"address_search_wildcard", "TRUE", &prefs_common
.address_search_wildcard
, P_BOOL
,
1304 {"enable_avatars", "3", &prefs_common
.enable_avatars
, P_INT
, NULL
, NULL
, NULL
},
1305 #ifndef PASSWORD_CRYPTO_OLD
1306 {"use_master_passphrase", FALSE
, &prefs_common
.use_primary_passphrase
, P_BOOL
, NULL
, NULL
, NULL
},
1307 {"master_passphrase", "", &prefs_common
.primary_passphrase
, P_STRING
, NULL
, NULL
, NULL
},
1308 {"master_passphrase_salt", "", &prefs_common
.primary_passphrase_salt
, P_STRING
, NULL
, NULL
, NULL
},
1309 {"master_passphrase_pbkdf2_rounds", "50000", &prefs_common
.primary_passphrase_pbkdf2_rounds
, P_INT
, NULL
, NULL
, NULL
},
1312 {"use_proxy", "FALSE", &prefs_common
.use_proxy
, P_BOOL
, NULL
, NULL
, NULL
},
1313 {"proxy_type", "1", &prefs_common
.proxy_info
.proxy_type
, P_ENUM
, NULL
, NULL
, NULL
},
1314 {"proxy_host", "localhost", &prefs_common
.proxy_info
.proxy_host
, P_STRING
, NULL
, NULL
, NULL
},
1315 {"proxy_port", "1080", &prefs_common
.proxy_info
.proxy_port
, P_USHORT
, NULL
, NULL
, NULL
},
1316 {"use_proxy_auth", "FALSE", &prefs_common
.proxy_info
.use_proxy_auth
, P_BOOL
, NULL
, NULL
, NULL
},
1317 {"proxy_name", "", &prefs_common
.proxy_info
.proxy_name
, P_STRING
, NULL
, NULL
, NULL
},
1318 {"proxy_pass", NULL
, &prefs_common
.proxy_info
.proxy_pass
, P_STRING
, NULL
, NULL
, NULL
},
1320 {"qs_press_timeout", "500", &prefs_common
.qs_press_timeout
, P_INT
,
1323 {NULL
, NULL
, NULL
, P_OTHER
, NULL
, NULL
, NULL
}
1327 * Read history list from the specified history file in the specified directory (subdir of rc_dir)
1328 * Fallback to default_list if history file is not found
1330 GList
*prefs_common_read_history_from_dir_with_defaults(const gchar
*dirname
, const gchar
*history
,
1331 GList
*default_list
)
1335 gchar buf
[PREFSBUFSIZE
];
1339 path
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, dirname
,
1340 G_DIR_SEPARATOR_S
, history
,
1343 path
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, history
,
1346 if ((fp
= claws_fopen(path
, "rb")) == NULL
) {
1347 if (ENOENT
!= errno
) FILE_OP_ERROR(path
, "claws_fopen");
1349 /* returns default list if set, otherwise NULL */
1350 return default_list
;
1353 while (claws_fgets(buf
, sizeof(buf
), fp
) != NULL
) {
1355 if (buf
[0] == '\0') continue;
1356 tmp
= add_history(tmp
, buf
);
1360 tmp
= g_list_reverse(tmp
);
1366 * Read history list from the specified history file in the specified directory (subdir of rc_dir)
1368 static GList
*prefs_common_read_history_from_dir(const gchar
*dirname
, const gchar
*history
)
1370 return prefs_common_read_history_from_dir_with_defaults(dirname
, history
, NULL
);
1374 * Read history list from the specified history file
1376 static GList
*prefs_common_read_history(const gchar
*history
)
1378 return prefs_common_read_history_from_dir(NULL
, history
);
1381 void prefs_common_read_config(void)
1386 rcpath
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, COMMON_RC
, NULL
);
1387 prefs_read_config(param
, "Common", rcpath
, NULL
);
1389 prefs_read_config(param_os_specific
, "CommonWin32", rcpath
, NULL
);
1394 tmp
= g_strdup(gettext(prefs_common
.date_format
));
1395 g_free(prefs_common
.date_format
);
1396 prefs_common
.date_format
= tmp
;
1398 prefs_common
.mime_open_cmd_history
=
1399 prefs_common_read_history(COMMAND_HISTORY
);
1400 prefs_common
.summary_quicksearch_history
=
1401 prefs_common_read_history(QUICKSEARCH_HISTORY
);
1402 prefs_common
.summary_search_from_history
=
1403 prefs_common_read_history(SUMMARY_SEARCH_FROM_HISTORY
);
1404 prefs_common
.summary_search_to_history
=
1405 prefs_common_read_history(SUMMARY_SEARCH_TO_HISTORY
);
1406 prefs_common
.summary_search_subject_history
=
1407 prefs_common_read_history(SUMMARY_SEARCH_SUBJECT_HISTORY
);
1408 prefs_common
.summary_search_body_history
=
1409 prefs_common_read_history(SUMMARY_SEARCH_BODY_HISTORY
);
1410 prefs_common
.summary_search_adv_condition_history
=
1411 prefs_common_read_history(SUMMARY_SEARCH_ADV_CONDITION_HISTORY
);
1412 prefs_common
.message_search_history
=
1413 prefs_common_read_history(MESSAGE_SEARCH_HISTORY
);
1414 prefs_common
.compose_save_to_history
=
1415 prefs_common_read_history(COMPOSE_SAVE_TO_HISTORY
);
1416 #ifndef USE_ALT_ADDRBOOK
1417 prefs_common
.addressbook_custom_attributes
= addressbook_update_custom_attr_from_prefs();
1419 colorlabel_update_colortable_from_prefs();
1425 g_warning("failed to write"); \
1430 * Save history list to the specified history file in the specified directory (subdir of rc_dir)
1432 static void prefs_common_save_history_to_dir(const gchar
*dirname
, const gchar
*history
, GList
*list
)
1436 gchar
*path
, *tmp_path
;
1439 path
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, dirname
,
1440 G_DIR_SEPARATOR_S
, history
,
1443 path
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, history
,
1446 tmp_path
= g_strconcat(path
, ".tmp", NULL
);
1448 if ((fp
= claws_fopen(tmp_path
, "wb")) == NULL
) {
1449 FILE_OP_ERROR(tmp_path
, "claws_fopen");
1453 for (cur
= list
; cur
!= NULL
; cur
= cur
->next
) {
1454 TRY(claws_fputs((gchar
*)cur
->data
, fp
) != EOF
&&
1455 claws_fputc('\n', fp
) != EOF
);
1458 if (claws_safe_fclose(fp
) == EOF
) {
1459 FILE_OP_ERROR(tmp_path
, "claws_fclose");
1467 if (g_rename(tmp_path
, path
) < 0) {
1468 FILE_OP_ERROR(path
, "rename");
1474 claws_safe_fclose(fp
);
1480 * Save history list to the specified history file
1482 static void prefs_common_save_history(const gchar
*history
, GList
*list
)
1484 prefs_common_save_history_to_dir(NULL
, history
, list
);
1489 void prefs_common_write_config(void)
1491 prefs_write_config(param
, "Common", COMMON_RC
);
1493 prefs_write_config(param_os_specific
, "CommonWin32", COMMON_RC
);
1496 prefs_common_save_history(COMMAND_HISTORY
,
1497 prefs_common
.mime_open_cmd_history
);
1498 prefs_common_save_history(QUICKSEARCH_HISTORY
,
1499 prefs_common
.summary_quicksearch_history
);
1500 prefs_common_save_history(SUMMARY_SEARCH_FROM_HISTORY
,
1501 prefs_common
.summary_search_from_history
);
1502 prefs_common_save_history(SUMMARY_SEARCH_TO_HISTORY
,
1503 prefs_common
.summary_search_to_history
);
1504 prefs_common_save_history(SUMMARY_SEARCH_SUBJECT_HISTORY
,
1505 prefs_common
.summary_search_subject_history
);
1506 prefs_common_save_history(SUMMARY_SEARCH_BODY_HISTORY
,
1507 prefs_common
.summary_search_body_history
);
1508 prefs_common_save_history(SUMMARY_SEARCH_ADV_CONDITION_HISTORY
,
1509 prefs_common
.summary_search_adv_condition_history
);
1510 prefs_common_save_history(MESSAGE_SEARCH_HISTORY
,
1511 prefs_common
.message_search_history
);
1512 prefs_common_save_history(COMPOSE_SAVE_TO_HISTORY
,
1513 prefs_common
.compose_save_to_history
);
1515 #ifndef USE_ALT_ADDRBOOK
1516 prefs_common_save_history_to_dir(ADDRBOOK_DIR
,
1517 ADDRESSBOOK_CUSTOM_ATTRIBUTES
,
1518 prefs_common
.addressbook_custom_attributes
);
1522 /* make a copy of string 'in' into buffer 'out'. un-escape \ sequences.
1523 both 'in' and 'out' must be non-NULL.
1524 'out' must be a pointer to a buffer whose size is at least equal
1525 to strlen(txt)+1, this buffer will get cleared. out's contents
1526 will always get set to a valid string, even if it's "".*/
1527 void pref_get_unescaped_pref(gchar
*out
, const gchar
*in
)
1534 cm_return_if_fail( in
!= NULL
);
1535 cm_return_if_fail( out
!= NULL
);
1539 memset(out
, 0, strlen(in
)+1);
1540 while (*i
!= '\0') {
1541 if (*i
== '\\' && *(i
+1) == 'n') {
1544 } else if (*i
== '\\' && *(i
+1) == 't') {
1547 } else if (*i
== '\\' && *(i
+1) == '\\') {
1558 /* make a copy of string 'in' into buffer 'out'. escape \ sequences.
1559 both 'in' and 'out' must be non-NULL.
1560 'out' must be a pointer to a buffer whose size is at least equal
1561 to 2*strlen(txt)+1. out's contents will always get set to a valid
1562 string, even if it's "". */
1563 void pref_get_escaped_pref(gchar
*out
, const gchar
*in
)
1570 cm_return_if_fail( in
!= NULL
);
1571 cm_return_if_fail( out
!= NULL
);
1575 while (*i
!= '\0') {
1579 } else if (*i
== '\t') {
1582 } else if (*i
== '\\') {
1593 /* set the contents of a textview widget from the internal \-escaped
1594 representation of a pref string. both txt and textview must be non-NULL. */
1595 void pref_set_textview_from_pref(GtkTextView
*textview
, const gchar
*txt
)
1597 GtkTextBuffer
*buffer
;
1600 cm_return_if_fail( textview
!= NULL
);
1602 buffer
= gtk_text_view_get_buffer(textview
);
1605 gtk_text_buffer_set_text(buffer
, "", -1);
1607 out
= g_malloc(strlen(txt
)+1);
1609 pref_get_unescaped_pref(out
, txt
);
1611 gtk_text_buffer_set_text(buffer
, out
, -1);
1616 /* set the contents of a gtkentry widget from the internal \-escaped
1617 representation of a pref string. both txt and entry must be non-NULL. */
1618 void pref_set_entry_from_pref(GtkEntry
*entry
, const gchar
*txt
)
1622 cm_return_if_fail( entry
!= NULL
);
1624 gtk_entry_set_text(entry
, "");
1626 out
= g_malloc(strlen(txt
)+1);
1628 pref_get_unescaped_pref(out
, txt
);
1630 gtk_entry_set_text(entry
, out
);
1635 /* get the \-escaped internal representation of a pref from the contents of
1636 a textview widget. textview must be non-NULL. */
1637 gchar
*pref_get_pref_from_textview(GtkTextView
*textview
)
1639 GtkTextBuffer
*buffer
;
1640 GtkTextIter start
, end
;
1643 cm_return_val_if_fail( textview
!= NULL
, "" );
1645 buffer
= gtk_text_view_get_buffer(textview
);
1646 gtk_text_buffer_get_start_iter(buffer
, &start
);
1647 gtk_text_buffer_get_iter_at_offset(buffer
, &end
, -1);
1648 tmp
= gtk_text_buffer_get_text(buffer
, &start
, &end
, FALSE
);
1649 out
= malloc(2*strlen(tmp
)+1);
1651 pref_get_escaped_pref(out
, tmp
);
1657 /* get the \-escaped internal representation of a pref from the contents of
1658 a gtkentry widget. entry must be non-NULL. */
1659 gchar
*pref_get_pref_from_entry(GtkEntry
*entry
)
1663 cm_return_val_if_fail( entry
!= NULL
, "" );
1665 tmp
= gtk_editable_get_chars(GTK_EDITABLE(entry
), 0, -1);
1666 out
= malloc(2*strlen(tmp
)+1);
1669 pref_get_escaped_pref(out
, tmp
);
1675 /* ugly hack to be able to get this pref from ssl_certificate.c */
1676 gboolean
prefs_common_unsafe_ssl_certs(void)
1678 return prefs_common
.unsafe_ssl_certs
;
1681 gboolean
prefs_common_enable_log_standard(void)
1683 return prefs_common
.enable_log_standard
;
1686 gboolean
prefs_common_enable_log_warning(void)
1688 return prefs_common
.enable_log_warning
;
1690 gboolean
prefs_common_enable_log_error(void)
1692 return prefs_common
.enable_log_error
;
1694 gboolean
prefs_common_enable_log_status(void)
1696 return prefs_common
.enable_log_status
;
1700 return the translated name of a header, if the translate_header option is
1701 set, otherwise return the untranslated header name (header_name itself).
1702 this function is provided for convenience, it's an interface to
1703 prefs_common.trans_hdr.
1704 works with header names either with or without trailing colon, provided
1705 that gettext found such header name in the sources (they should all be
1706 found in src/gtk/headers.h anyway).
1708 const gchar
*prefs_common_translated_header_name(const gchar
*header_name
)
1710 if (header_name
== NULL
|| *header_name
== '\0')
1713 return prefs_common
.trans_hdr
? gettext(header_name
) : header_name
;
1716 const gchar
*prefs_common_get_uri_cmd(void)
1723 if (!prefs_common
.cmds_use_system_default
)
1724 return prefs_common
.uri_cmd
;
1726 tmp
= g_find_program_in_path("xdg-open");
1728 return prefs_common
.uri_cmd
;
1731 return "xdg-open %s";
1735 const gchar
*prefs_common_get_ext_editor_cmd(void)
1737 return prefs_common
.ext_editor_cmd
;
1738 #if 0 /* we should do that, but it detaches the editor and breaks
1739 compose.c's external composition. */
1742 if (!prefs_common
.cmds_use_system_default
)
1743 return prefs_common
.ext_editor_cmd
;
1745 tmp
= g_find_program_in_path("xdg-open");
1747 return prefs_common
.ext_editor_cmd
;
1750 return "xdg-open %s";
1754 gboolean
prefs_common_get_use_shred(void)
1756 return prefs_common
.use_shred
;
1759 gboolean
prefs_common_get_flush_metadata (void)
1761 return prefs_common
.flush_metadata
;
1764 PrefsCommon
*prefs_common_get_prefs(void)
1766 return &prefs_common
;