2 * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3 * Copyright (C) 1999-2013 Hiroyuki Yamamoto and the Claws Mail team
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/>.
22 #include "claws-features.h"
28 #include <glib/gi18n.h>
30 #include <gdk/gdkkeysyms.h>
35 #include <sys/types.h>
40 #include "prefs_gtk.h"
41 #include "prefs_common.h"
42 #include "prefs_display_header.h"
43 #include "prefs_summary_column.h"
44 #include "prefs_folder_column.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 "folderview.h"
60 #include "stock_pixmap.h"
61 #include "prefswindow.h"
62 #include "colorlabel.h"
63 #ifndef USE_NEW_ADDRBOOK
64 #include "addrcustomattr.h"
73 PrefsCommon prefs_common
;
79 * In the Windows version prefs_common contains
80 * - the non-OS-specific settings of the "Common" section and
81 * - the OS-specific settings of the "CommonWin32" section
82 * The OS-specific settings of the "Common" section are not used
83 * but saved in prefs_unix.
86 # define SPECIFIC_PREFS prefs_unix
88 static PrefsCommon prefs_unix
;
90 static PrefParam param_os_specific
[] = {
93 &prefs_common
.extinc_cmd
, P_STRING
, NULL
, NULL
, NULL
},
94 {"newmail_notify_cmd", "",
95 &prefs_common
.newmail_notify_cmd
, P_STRING
, NULL
, NULL
, NULL
},
98 {"widget_font_gtk2", NULL
,
99 &prefs_common
.widgetfont
, 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
},
127 {"ext_editor_command", "notepad %s",
128 &prefs_common
.ext_editor_cmd
, P_STRING
, NULL
, NULL
, NULL
},
130 {NULL
, NULL
, NULL
, P_OTHER
, NULL
, NULL
, NULL
}
133 # define SPECIFIC_PREFS prefs_common
137 parameter name, default value, pointer to the prefs variable, data type,
138 pointer to the widget pointer,
139 pointer to the function for data setting,
140 pointer to the function for widget setting
143 static PrefParam param
[] = {
145 {"use_ext_inc", "FALSE", &prefs_common
.use_extinc
, P_BOOL
,
147 {"ext_inc_path", DEFAULT_INC_PATH
, &SPECIFIC_PREFS
.extinc_cmd
, P_STRING
,
150 {"autochk_newmail", "FALSE", &prefs_common
.autochk_newmail
, P_BOOL
,
152 {"autochk_interval", "10", &prefs_common
.autochk_itv
, P_INT
,
154 {"check_on_startup", "FALSE", &prefs_common
.chk_on_startup
, P_BOOL
,
156 {"open_inbox_on_inc", "FALSE", &prefs_common
.open_inbox_on_inc
,
157 P_BOOL
, NULL
, NULL
, NULL
},
158 {"scan_all_after_inc", "FALSE", &prefs_common
.scan_all_after_inc
,
159 P_BOOL
, NULL
, NULL
, NULL
},
160 {"newmail_notify_manu", "FALSE", &prefs_common
.newmail_notify_manu
,
161 P_BOOL
, NULL
, NULL
, NULL
},
162 {"newmail_notify_auto", "FALSE", &prefs_common
.newmail_notify_auto
,
163 P_BOOL
, NULL
, NULL
, NULL
},
164 {"newmail_notify_cmd", "", &SPECIFIC_PREFS
.newmail_notify_cmd
, P_STRING
,
166 {"receive_dialog_mode", "2", &prefs_common
.recv_dialog_mode
, P_ENUM
,
168 {"receivewin_width", "460", &prefs_common
.receivewin_width
, P_INT
,
170 {"receivewin_height", "-1", &prefs_common
.receivewin_height
, P_INT
,
172 {"no_receive_error_panel", "FALSE", &prefs_common
.no_recv_err_panel
,
173 P_BOOL
, NULL
, NULL
, NULL
},
174 {"close_receive_dialog", "TRUE", &prefs_common
.close_recv_dialog
,
175 P_BOOL
, NULL
, NULL
, NULL
},
178 {"save_message", "TRUE", &prefs_common
.savemsg
, P_BOOL
,
180 {"confirm_send_queued_messages", "FALSE", &prefs_common
.confirm_send_queued_messages
,
181 P_BOOL
, NULL
, NULL
, NULL
},
183 {"send_dialog_mode", "0", &prefs_common
.send_dialog_invisible
, P_BOOL
,
186 {"send_dialog_mode", "1", &prefs_common
.send_dialog_invisible
, P_BOOL
,
189 {"sendwin_width", "460", &prefs_common
.sendwin_width
, P_INT
,
191 {"sendwin_height", "-1", &prefs_common
.sendwin_height
, P_INT
,
194 {"outgoing_charset", CS_AUTO
, &prefs_common
.outgoing_charset
, P_STRING
,
196 {"encoding_method", "0", &prefs_common
.encoding_method
, P_ENUM
,
198 {"outgoing_fallback_to_ascii", "TRUE", &prefs_common
.outgoing_fallback_to_ascii
, P_BOOL
,
200 {"warn_empty_subj", "TRUE", &prefs_common
.warn_empty_subj
,
201 P_BOOL
, NULL
, NULL
, NULL
},
203 {"allow_jisx0201_kana", "FALSE", &prefs_common
.allow_jisx0201_kana
,
204 P_BOOL
, NULL
, NULL
, NULL
},
207 {"auto_ext_editor", "FALSE", &prefs_common
.auto_exteditor
, P_BOOL
,
209 {"forward_as_attachment", "FALSE", &prefs_common
.forward_as_attachment
,
210 P_BOOL
, NULL
, NULL
, NULL
},
211 {"redirect_keep_from", "FALSE",
212 &prefs_common
.redirect_keep_from
, P_BOOL
,
214 {"undo_level", "50", &prefs_common
.undolevels
, P_INT
,
216 {"compose_with_format", "FALSE", &prefs_common
.compose_with_format
, P_BOOL
,
218 {"compose_subject_format", "",
219 &prefs_common
.compose_subject_format
, P_STRING
, NULL
, NULL
, NULL
},
220 {"compose_body_format", N_("Hello,\\n"),
221 &prefs_common
.compose_body_format
, P_STRING
, NULL
, NULL
, NULL
},
222 {"show_compose_margin", "FALSE", &prefs_common
.show_compose_margin
, P_BOOL
,
224 {"type_any_header", "FALSE", &prefs_common
.type_any_header
, P_BOOL
,
228 {"linewrap_length", "72", &prefs_common
.linewrap_len
, P_INT
,
230 {"linewrap_quotation", "TRUE", &prefs_common
.linewrap_quote
, P_BOOL
,
232 {"linewrap_pastes", "TRUE", &prefs_common
.linewrap_pastes
, P_BOOL
,
234 {"primary_paste_unselects", "FALSE", &prefs_common
.primary_paste_unselects
, P_BOOL
,
236 {"linewrap_auto", "TRUE", &prefs_common
.autowrap
, P_BOOL
,
238 {"auto_indent", "TRUE", &prefs_common
.auto_indent
, P_BOOL
,
240 {"autosave", "TRUE", &prefs_common
.autosave
,
241 P_BOOL
, NULL
, NULL
, NULL
},
242 {"autosave_length", "50", &prefs_common
.autosave_length
, P_INT
,
244 {"autosave_encrypted", "TRUE", &prefs_common
.autosave_encrypted
,
245 P_BOOL
, NULL
, NULL
, NULL
},
246 {"warn_large_insert", "TRUE", &prefs_common
.warn_large_insert
,
247 P_BOOL
, NULL
, NULL
, NULL
},
248 {"warn_large_insert_size", "500", &prefs_common
.warn_large_insert_size
,
249 P_INT
, NULL
, NULL
, NULL
},
251 {"enable_aspell", "TRUE", &prefs_common
.enable_aspell
, P_BOOL
,
253 {"dictionary", "", &prefs_common
.dictionary
, P_STRING
,
255 {"alt_dictionary", "", &prefs_common
.alt_dictionary
, P_STRING
,
257 {"use_alternate_dict", "FALSE", &prefs_common
.use_alternate
, P_BOOL
,
259 {"check_while_typing", "TRUE", &prefs_common
.check_while_typing
, P_BOOL
,
261 {"recheck_when_changing_dict", "TRUE", &prefs_common
.recheck_when_changing_dict
,
262 P_BOOL
, NULL
, NULL
, NULL
},
263 {"misspelled_color", "#ff0000", &prefs_common
.misspelled_col
, P_COLOR
,
265 {"use_both_dicts", "FALSE", &prefs_common
.use_both_dicts
, P_BOOL
,
268 {"reply_with_quote", "TRUE", &prefs_common
.reply_with_quote
, P_BOOL
,
270 {"compose_dnd_insert_or_attach", "0", &prefs_common
.compose_dnd_mode
, P_ENUM
,
273 /* Account autoselection */
274 {"reply_account_autoselect", "TRUE",
275 &prefs_common
.reply_account_autosel
, P_BOOL
,
277 {"forward_account_autoselect", "TRUE",
278 &prefs_common
.forward_account_autosel
, P_BOOL
,
280 {"reedit_account_autoselect", "TRUE",
281 &prefs_common
.reedit_account_autosel
, P_BOOL
,
284 {"default_reply_list", "TRUE", &prefs_common
.default_reply_list
, P_BOOL
,
288 {"show_ruler", "TRUE", &prefs_common
.show_ruler
, P_BOOL
,
291 {"show_ruler", "FALSE", &prefs_common
.show_ruler
, P_BOOL
,
296 {"reply_quote_mark", "> ", &prefs_common
.quotemark
, P_STRING
,
298 {"reply_quote_format", N_("On %d\\n%f wrote:\\n\\n%q\\n%X"),
299 &prefs_common
.quotefmt
, P_STRING
, NULL
, NULL
, NULL
},
301 {"forward_quote_mark", "> ", &prefs_common
.fw_quotemark
, P_STRING
,
303 {"forward_quote_format",
304 N_("\\n\\nBegin forwarded message:\\n\\n"
305 "?d{Date: %d\\n}?f{From: %f\\n}?t{To: %t\\n}?c{Cc: %c\\n}"
306 "?n{Newsgroups: %n\\n}?s{Subject: %s\\n}\\n\\n%M"),
307 &prefs_common
.fw_quotefmt
, P_STRING
,
309 {"quote_chars", ">", &prefs_common
.quote_chars
, P_STRING
,
313 /* Obsolete fonts. For coexisting with Gtk+-1.2 version */
314 {"widget_font", NULL
,
315 &prefs_common
.widgetfont_gtk1
, P_STRING
, NULL
, NULL
, NULL
},
316 {"message_font", "-misc-fixed-medium-r-normal--14-*-*-*-*-*-*-*",
317 &prefs_common
.textfont_gtk1
, P_STRING
, NULL
, NULL
, NULL
},
318 {"small_font", "-*-helvetica-medium-r-normal--10-*-*-*-*-*-*-*",
319 &prefs_common
.smallfont_gtk1
, P_STRING
, NULL
, NULL
, NULL
},
320 {"bold_font", "-*-helvetica-bold-r-normal--12-*-*-*-*-*-*-*",
321 &prefs_common
.boldfont_gtk1
, P_STRING
, NULL
, NULL
, NULL
},
322 {"normal_font", "-*-helvetica-medium-r-normal--12-*-*-*-*-*-*-*",
323 &prefs_common
.normalfont_gtk1
, P_STRING
, NULL
, NULL
, NULL
},
327 {"widget_font_gtk2", NULL
,
328 &SPECIFIC_PREFS
.widgetfont
, P_STRING
, NULL
, NULL
, NULL
},
329 {"message_font_gtk2", "Monospace 9",
330 &SPECIFIC_PREFS
.textfont
, P_STRING
, NULL
, NULL
, NULL
},
331 {"print_font_gtk2", "Monospace 9",
332 &SPECIFIC_PREFS
.printfont
, P_STRING
, NULL
, NULL
, NULL
},
333 {"small_font_gtk2", "Sans 9",
334 &SPECIFIC_PREFS
.smallfont
, P_STRING
, NULL
, NULL
, NULL
},
335 {"normal_font_gtk2", "Sans 9",
336 &SPECIFIC_PREFS
.normalfont
, P_STRING
, NULL
, NULL
, NULL
},
337 {"bold_font_gtk2", "Sans Bold 9",
338 &SPECIFIC_PREFS
.boldfont
, P_STRING
, NULL
, NULL
, NULL
},
340 {"widget_font_gtk2", NULL
,
341 &SPECIFIC_PREFS
.widgetfont
, P_STRING
, NULL
, NULL
, NULL
},
342 {"message_font_gtk2", "Monospace 8",
343 &SPECIFIC_PREFS
.textfont
, P_STRING
, NULL
, NULL
, NULL
},
344 {"print_font_gtk2", "Monospace 8",
345 &SPECIFIC_PREFS
.printfont
, P_STRING
, NULL
, NULL
, NULL
},
346 {"small_font_gtk2", "Sans 8",
347 &SPECIFIC_PREFS
.smallfont
, P_STRING
, NULL
, NULL
, NULL
},
348 {"normal_font_gtk2", "Sans 8",
349 &SPECIFIC_PREFS
.normalfont
, P_STRING
, NULL
, NULL
, NULL
},
350 {"bold_font_gtk2", "Sans Bold 8",
351 &SPECIFIC_PREFS
.boldfont
, P_STRING
, NULL
, NULL
, NULL
},
354 {"use_different_print_font", "FALSE", &prefs_common
.use_different_print_font
, P_BOOL
,
356 {"derive_from_normal_font", "TRUE", &prefs_common
.derive_from_normal_font
, P_BOOL
,
360 {"custom_color1", "#ff9900", &prefs_common
.custom_colorlabel
[0].color
, P_COLOR
,
362 {"custom_colorlabel1", N_("Orange"), &prefs_common
.custom_colorlabel
[0].label
, P_STRING
,
364 {"custom_color2", "#ff0000", &prefs_common
.custom_colorlabel
[1].color
, P_COLOR
,
366 {"custom_colorlabel2", N_("Red"), &prefs_common
.custom_colorlabel
[1].label
, P_STRING
,
368 {"custom_color3", "#ff66ff", &prefs_common
.custom_colorlabel
[2].color
, P_COLOR
,
370 {"custom_colorlabel3", N_("Pink"), &prefs_common
.custom_colorlabel
[2].label
, P_STRING
,
372 {"custom_color4", "#00ccff", &prefs_common
.custom_colorlabel
[3].color
, P_COLOR
,
374 {"custom_colorlabel4", N_("Sky blue"), &prefs_common
.custom_colorlabel
[3].label
, P_STRING
,
376 {"custom_color5", "#0000ff", &prefs_common
.custom_colorlabel
[4].color
, P_COLOR
,
378 {"custom_colorlabel5", N_("Blue"), &prefs_common
.custom_colorlabel
[4].label
, P_STRING
,
380 {"custom_color6", "#009900", &prefs_common
.custom_colorlabel
[5].color
, P_COLOR
,
382 {"custom_colorlabel6", N_("Green"), &prefs_common
.custom_colorlabel
[5].label
, P_STRING
,
384 {"custom_color7", "#663333", &prefs_common
.custom_colorlabel
[6].color
, P_COLOR
,
386 {"custom_colorlabel7", N_("Brown"), &prefs_common
.custom_colorlabel
[6].label
, P_STRING
,
388 {"custom_color8", "#aaaaaa", &prefs_common
.custom_colorlabel
[7].color
, P_COLOR
,
390 {"custom_colorlabel8", N_("Grey"), &prefs_common
.custom_colorlabel
[7].label
, P_STRING
,
392 {"custom_color9", "#c07254", &prefs_common
.custom_colorlabel
[8].color
, P_COLOR
,
394 {"custom_colorlabel9", N_("Light brown"), &prefs_common
.custom_colorlabel
[8].label
, P_STRING
,
396 {"custom_color10", "#c00000", &prefs_common
.custom_colorlabel
[9].color
, P_COLOR
,
398 {"custom_colorlabel10", N_("Dark red"), &prefs_common
.custom_colorlabel
[9].label
, P_STRING
,
400 {"custom_color11", "#cc1074", &prefs_common
.custom_colorlabel
[10].color
, P_COLOR
,
402 {"custom_colorlabel11", N_("Dark pink"), &prefs_common
.custom_colorlabel
[10].label
, P_STRING
,
404 {"custom_color12", "#5094cd", &prefs_common
.custom_colorlabel
[11].color
, P_COLOR
,
406 {"custom_colorlabel12", N_("Steel blue"), &prefs_common
.custom_colorlabel
[11].label
, P_STRING
,
408 {"custom_color13", "#ffd500", &prefs_common
.custom_colorlabel
[12].color
, P_COLOR
,
410 {"custom_colorlabel13", N_("Gold"), &prefs_common
.custom_colorlabel
[12].label
, P_STRING
,
412 {"custom_color14", "#00d800", &prefs_common
.custom_colorlabel
[13].color
, P_COLOR
,
414 {"custom_colorlabel14", N_("Bright green"), &prefs_common
.custom_colorlabel
[13].label
, P_STRING
,
416 {"custom_color15", "#c060c0", &prefs_common
.custom_colorlabel
[14].color
, P_COLOR
,
418 {"custom_colorlabel15", N_("Magenta"), &prefs_common
.custom_colorlabel
[14].label
, P_STRING
,
422 {"display_image", "TRUE", &prefs_common
.display_img
, P_BOOL
,
424 {"resize_image", "TRUE", &prefs_common
.resize_img
, P_BOOL
,
426 {"inline_image", "TRUE", &prefs_common
.inline_img
, P_BOOL
,
429 {"display_folder_unread_num", "0",
430 &prefs_common
.display_folder_unread
, P_INT
,
432 {"newsgroup_abbrev_len", "16",
433 &prefs_common
.ng_abbrev_len
, P_INT
,
436 {"translate_header", "FALSE", &prefs_common
.trans_hdr
, P_BOOL
,
439 /* Display: Summary View */
440 {"default_sort_key", "3", &prefs_common
.default_sort_key
, P_ENUM
,
442 {"default_sort_type", "1", &prefs_common
.default_sort_type
, P_ENUM
,
444 {"use_address_book", "FALSE", &prefs_common
.use_addr_book
, P_BOOL
,
446 {"thread_by_subject", "TRUE", &prefs_common
.thread_by_subject
, P_BOOL
,
448 {"date_format", N_("%x(%a) %H:%M"), &prefs_common
.date_format
,
449 P_STRING
, NULL
, NULL
, NULL
},
450 {"msgview_date_format", "FALSE", &prefs_common
.msgview_date_format
, P_BOOL
,
453 {"bold_unread", "TRUE", &prefs_common
.bold_unread
, P_BOOL
,
456 {"enable_thread", "TRUE", &prefs_common
.enable_thread
, P_BOOL
,
459 {"toolbar_style", "3", &prefs_common
.toolbar_style
, P_ENUM
,
462 {"toolbar_style", "1", &prefs_common
.toolbar_style
, P_ENUM
,
465 {"toolbar_detachable", "FALSE", &prefs_common
.toolbar_detachable
, P_BOOL
,
467 {"show_col_headers", "TRUE", &prefs_common
.show_col_headers
, P_BOOL
,
470 {"show_statusbar", "TRUE", &prefs_common
.show_statusbar
, P_BOOL
,
472 {"show_searchbar", "TRUE", &prefs_common
.show_searchbar
, P_BOOL
,
475 {"show_statusbar", "FALSE", &prefs_common
.show_statusbar
, P_BOOL
,
477 {"show_searchbar", "FALSE", &prefs_common
.show_searchbar
, P_BOOL
,
481 {"summary_col_show_mark", "TRUE",
482 &prefs_common
.summary_col_visible
[S_COL_MARK
], P_BOOL
, NULL
, NULL
, NULL
},
483 {"summary_col_show_unread", "TRUE",
484 &prefs_common
.summary_col_visible
[S_COL_STATUS
], P_BOOL
, NULL
, NULL
, NULL
},
485 {"summary_col_show_subject", "TRUE",
486 &prefs_common
.summary_col_visible
[S_COL_SUBJECT
], P_BOOL
, NULL
, NULL
, NULL
},
487 {"summary_col_show_from", "TRUE",
488 &prefs_common
.summary_col_visible
[S_COL_FROM
], P_BOOL
, NULL
, NULL
, NULL
},
489 {"summary_col_show_to", "FALSE",
490 &prefs_common
.summary_col_visible
[S_COL_TO
], P_BOOL
, NULL
, NULL
, NULL
},
491 {"summary_col_show_date", "TRUE",
492 &prefs_common
.summary_col_visible
[S_COL_DATE
], P_BOOL
, NULL
, NULL
, NULL
},
493 {"summary_col_show_mime", "TRUE",
494 &prefs_common
.summary_col_visible
[S_COL_MIME
], P_BOOL
, NULL
, NULL
, NULL
},
495 {"summary_col_show_size", "TRUE",
496 &prefs_common
.summary_col_visible
[S_COL_SIZE
], P_BOOL
, NULL
, NULL
, NULL
},
497 {"summary_col_show_number", "FALSE",
498 &prefs_common
.summary_col_visible
[S_COL_NUMBER
], P_BOOL
, NULL
, NULL
, NULL
},
499 {"summary_col_show_score", "FALSE",
500 &prefs_common
.summary_col_visible
[S_COL_SCORE
], P_BOOL
, NULL
, NULL
, NULL
},
501 {"summary_col_show_locked", "FALSE",
502 &prefs_common
.summary_col_visible
[S_COL_LOCKED
], P_BOOL
, NULL
, NULL
, NULL
},
503 {"summary_col_show_tags", "FALSE",
504 &prefs_common
.summary_col_visible
[S_COL_TAGS
], P_BOOL
, NULL
, NULL
, NULL
},
506 {"summary_col_pos_mark", "0",
507 &prefs_common
.summary_col_pos
[S_COL_MARK
], P_INT
, NULL
, NULL
, NULL
},
508 {"summary_col_pos_unread", "1",
509 &prefs_common
.summary_col_pos
[S_COL_STATUS
], P_INT
, NULL
, NULL
, NULL
},
510 {"summary_col_pos_mime", "2",
511 &prefs_common
.summary_col_pos
[S_COL_MIME
], P_INT
, NULL
, NULL
, NULL
},
512 {"summary_col_pos_subject", "3",
513 &prefs_common
.summary_col_pos
[S_COL_SUBJECT
], P_INT
, NULL
, NULL
, NULL
},
514 {"summary_col_pos_from", "4",
515 &prefs_common
.summary_col_pos
[S_COL_FROM
], P_INT
, NULL
, NULL
, NULL
},
516 {"summary_col_pos_date", "5",
517 &prefs_common
.summary_col_pos
[S_COL_DATE
], P_INT
, NULL
, NULL
, NULL
},
518 {"summary_col_pos_size", "6",
519 &prefs_common
.summary_col_pos
[S_COL_SIZE
], P_INT
, NULL
, NULL
, NULL
},
520 {"summary_col_pos_number", "7",
521 &prefs_common
.summary_col_pos
[S_COL_NUMBER
], P_INT
, NULL
, NULL
, NULL
},
522 {"summary_col_pos_score", "8",
523 &prefs_common
.summary_col_pos
[S_COL_SCORE
], P_INT
, NULL
, NULL
, NULL
},
524 {"summary_col_pos_locked", "9",
525 &prefs_common
.summary_col_pos
[S_COL_LOCKED
], P_INT
, NULL
, NULL
, NULL
},
526 {"summary_col_pos_to", "10",
527 &prefs_common
.summary_col_pos
[S_COL_TO
], P_INT
, NULL
, NULL
, NULL
},
528 {"summary_col_pos_tags", "11",
529 &prefs_common
.summary_col_pos
[S_COL_TAGS
], P_INT
, NULL
, NULL
, NULL
},
531 {"summary_col_size_mark", "10",
532 &prefs_common
.summary_col_size
[S_COL_MARK
], P_INT
, NULL
, NULL
, NULL
},
533 {"summary_col_size_unread", "13",
534 &prefs_common
.summary_col_size
[S_COL_STATUS
], P_INT
, NULL
, NULL
, NULL
},
535 {"summary_col_size_mime", "10",
536 &prefs_common
.summary_col_size
[S_COL_MIME
], P_INT
, NULL
, NULL
, NULL
},
538 {"summary_col_size_subject", "200",
539 &prefs_common
.summary_col_size
[S_COL_SUBJECT
], P_INT
, NULL
, NULL
, NULL
},
540 {"summary_col_size_from", "120",
541 &prefs_common
.summary_col_size
[S_COL_FROM
], P_INT
, NULL
, NULL
, NULL
},
542 {"summary_col_size_to", "120",
543 &prefs_common
.summary_col_size
[S_COL_TO
], P_INT
, NULL
, NULL
, NULL
},
545 {"summary_col_size_subject", "300",
546 &prefs_common
.summary_col_size
[S_COL_SUBJECT
], P_INT
, NULL
, NULL
, NULL
},
547 {"summary_col_size_from", "150",
548 &prefs_common
.summary_col_size
[S_COL_FROM
], P_INT
, NULL
, NULL
, NULL
},
549 {"summary_col_size_to", "150",
550 &prefs_common
.summary_col_size
[S_COL_TO
], P_INT
, NULL
, NULL
, NULL
},
553 {"summary_col_size_date", "118",
554 &prefs_common
.summary_col_size
[S_COL_DATE
], P_INT
, NULL
, NULL
, NULL
},
555 {"summary_col_size_size", "45",
556 &prefs_common
.summary_col_size
[S_COL_SIZE
], P_INT
, NULL
, NULL
, NULL
},
557 {"summary_col_size_number", "40",
558 &prefs_common
.summary_col_size
[S_COL_NUMBER
], P_INT
, NULL
, NULL
, NULL
},
559 {"summary_col_size_score", "40",
560 &prefs_common
.summary_col_size
[S_COL_SCORE
], P_INT
, NULL
, NULL
, NULL
},
561 {"summary_col_size_locked", "13",
562 &prefs_common
.summary_col_size
[S_COL_LOCKED
], P_INT
, NULL
, NULL
, NULL
},
563 {"summary_col_size_tags", "150",
564 &prefs_common
.summary_col_size
[S_COL_TAGS
], P_INT
, NULL
, NULL
, NULL
},
567 {"folderwin_x", "16", &prefs_common
.folderwin_x
, P_INT
,
569 {"folderwin_y", "16", &prefs_common
.folderwin_y
, P_INT
,
571 {"folderview_width", "270", &prefs_common
.folderview_width
, P_INT
,
573 {"folderview_height", "450", &prefs_common
.folderview_height
, P_INT
,
575 {"folderview_visible", "TRUE", &prefs_common
.folderview_visible
, P_BOOL
,
578 {"folder_col_show_folder", "TRUE",
579 &prefs_common
.folder_col_visible
[F_COL_FOLDER
], P_BOOL
, NULL
, NULL
, NULL
},
580 {"folder_col_show_new", "TRUE",
581 &prefs_common
.folder_col_visible
[F_COL_NEW
], P_BOOL
, NULL
, NULL
, NULL
},
582 {"folder_col_show_unread", "TRUE",
583 &prefs_common
.folder_col_visible
[F_COL_UNREAD
], P_BOOL
, NULL
, NULL
, NULL
},
584 {"folder_col_show_total", "TRUE",
585 &prefs_common
.folder_col_visible
[F_COL_TOTAL
], P_BOOL
, NULL
, NULL
, NULL
},
587 {"folder_col_pos_folder", "0",
588 &prefs_common
.folder_col_pos
[F_COL_FOLDER
], P_INT
, NULL
, NULL
, NULL
},
589 {"folder_col_pos_new", "1",
590 &prefs_common
.folder_col_pos
[F_COL_NEW
], P_INT
, NULL
, NULL
, NULL
},
591 {"folder_col_pos_unread", "2",
592 &prefs_common
.folder_col_pos
[F_COL_UNREAD
], P_INT
, NULL
, NULL
, NULL
},
593 {"folder_col_pos_total", "3",
594 &prefs_common
.folder_col_pos
[F_COL_TOTAL
], P_INT
, NULL
, NULL
, NULL
},
597 {"folder_col_size_folder", "120",
598 &prefs_common
.folder_col_size
[F_COL_FOLDER
], P_INT
, NULL
, NULL
, NULL
},
599 {"folder_col_size_new", "32",
600 &prefs_common
.folder_col_size
[F_COL_NEW
], P_INT
, NULL
, NULL
, NULL
},
601 {"folder_col_size_unread", "32",
602 &prefs_common
.folder_col_size
[F_COL_UNREAD
], P_INT
, NULL
, NULL
, NULL
},
603 {"folder_col_size_total", "32",
604 &prefs_common
.folder_col_size
[F_COL_TOTAL
], P_INT
, NULL
, NULL
, NULL
},
606 {"folder_col_size_folder", "400",
607 &prefs_common
.folder_col_size
[F_COL_FOLDER
], P_INT
, NULL
, NULL
, NULL
},
608 {"folder_col_size_new", "32",
609 &prefs_common
.folder_col_size
[F_COL_NEW
], P_INT
, NULL
, NULL
, NULL
},
610 {"folder_col_size_unread", "32",
611 &prefs_common
.folder_col_size
[F_COL_UNREAD
], P_INT
, NULL
, NULL
, NULL
},
612 {"folder_col_size_total", "32",
613 &prefs_common
.folder_col_size
[F_COL_TOTAL
], P_INT
, NULL
, NULL
, NULL
},
615 {"summaryview_width", "500", &prefs_common
.summaryview_width
, P_INT
,
617 {"summaryview_height", "244", &prefs_common
.summaryview_height
, P_INT
,
620 {"main_messagewin_x", "256", &prefs_common
.main_msgwin_x
, P_INT
,
622 {"main_messagewin_y", "210", &prefs_common
.main_msgwin_y
, P_INT
,
624 {"messageview_width", "500", &prefs_common
.msgview_width
, P_INT
,
626 {"messageview_height", "213", &prefs_common
.msgview_height
, P_INT
,
628 {"messageview_visible", "TRUE", &prefs_common
.msgview_visible
, P_BOOL
,
631 {"mainview_x", "64", &prefs_common
.mainview_x
, P_INT
,
633 {"mainview_y", "64", &prefs_common
.mainview_y
, P_INT
,
635 {"mainview_width", "500", &prefs_common
.mainview_width
, P_INT
,
637 {"mainview_height", "400", &prefs_common
.mainview_height
, P_INT
,
639 {"mainwin_x", "64", &prefs_common
.mainwin_x
, P_INT
,
641 {"mainwin_y", "64", &prefs_common
.mainwin_y
, P_INT
,
643 {"mainwin_maximised", "FALSE", &prefs_common
.mainwin_maximised
, P_BOOL
,
645 {"mainwin_fullscreen", "FALSE", &prefs_common
.mainwin_fullscreen
, P_BOOL
,
647 {"mainwin_menubar", "TRUE", &prefs_common
.mainwin_menubar
, P_BOOL
,
650 {"mainwin_width", "800", &prefs_common
.mainwin_width
, P_INT
,
652 {"mainwin_height", "600", &prefs_common
.mainwin_height
, P_INT
,
654 {"messagewin_width", "600", &prefs_common
.msgwin_width
, P_INT
,
656 {"messagewin_height", "540", &prefs_common
.msgwin_height
, P_INT
,
658 {"mimeview_tree_height", "60", &prefs_common
.mimeview_tree_height
, P_INT
,
660 {"sourcewin_width", "600", &prefs_common
.sourcewin_width
, P_INT
,
662 {"sourcewin_height", "500", &prefs_common
.sourcewin_height
, P_INT
,
664 {"compose_width", "600", &prefs_common
.compose_width
, P_INT
,
666 {"compose_height", "560", &prefs_common
.compose_height
, P_INT
,
669 {"mainwin_width", "700", &prefs_common
.mainwin_width
, P_INT
,
671 {"mainwin_height", "470", &prefs_common
.mainwin_height
, P_INT
,
673 {"messagewin_width", "700", &prefs_common
.msgwin_width
, P_INT
,
675 {"messagewin_height", "470", &prefs_common
.msgwin_height
, P_INT
,
677 {"sourcewin_width", "700", &prefs_common
.sourcewin_width
, P_INT
,
679 {"sourcewin_height", "470", &prefs_common
.sourcewin_height
, P_INT
,
681 {"compose_width", "700", &prefs_common
.compose_width
, P_INT
,
683 {"compose_height", "470", &prefs_common
.compose_height
, P_INT
,
686 {"compose_notebook_height", "130", &prefs_common
.compose_notebook_height
, P_INT
,
688 {"compose_x", "0", &prefs_common
.compose_x
, P_INT
,
690 {"compose_y", "0", &prefs_common
.compose_y
, P_INT
,
693 {"enable_color", "TRUE", &prefs_common
.enable_color
, P_BOOL
,
696 {"quote_level1_color", "#0000b3", &prefs_common
.quote_level1_col
, P_COLOR
,
698 {"quote_level2_color", "#0000b3", &prefs_common
.quote_level2_col
, P_COLOR
,
700 {"quote_level3_color", "#0000b3", &prefs_common
.quote_level3_col
, P_COLOR
,
702 {"enable_bgcolor", "FALSE", &prefs_common
.enable_bgcolor
, P_BOOL
,
704 {"quote_level1_bgcolor", "#cccccc", &prefs_common
.quote_level1_bgcol
, P_COLOR
,
706 {"quote_level2_bgcolor", "#d4d4d4", &prefs_common
.quote_level2_bgcol
, P_COLOR
,
708 {"quote_level3_bgcolor", "#dddddd", &prefs_common
.quote_level3_bgcol
, P_COLOR
,
710 {"uri_color", "#007f00", &prefs_common
.uri_col
, P_COLOR
,
712 {"emphasis_color", "#0000cf", &prefs_common
.emphasis_col
, P_COLOR
,
714 {"target_folder_color", "#da1cca", &prefs_common
.tgt_folder_col
, P_COLOR
,
716 {"signature_color", "#797979", &prefs_common
.signature_col
, P_COLOR
,
718 {"recycle_quote_colors", "FALSE", &prefs_common
.recycle_quote_colors
,
719 P_BOOL
, NULL
, NULL
, NULL
},
721 {"display_header_pane", "FALSE", &prefs_common
.display_header_pane
,
722 P_BOOL
, NULL
, NULL
, NULL
},
723 {"display_header", "TRUE", &prefs_common
.display_header
, P_BOOL
,
725 {"display_xface", "TRUE", &prefs_common
.display_xface
,
726 P_BOOL
, NULL
, NULL
, NULL
},
727 {"render_html", "TRUE", &prefs_common
.render_html
, P_BOOL
,
729 {"invoke_plugin_on_html", "FALSE", &prefs_common
.invoke_plugin_on_html
, P_BOOL
,
731 {"promote_html_part", "FALSE", &prefs_common
.promote_html_part
, P_BOOL
,
733 {"line_space", "2", &prefs_common
.line_space
, P_INT
,
735 {"never_send_retrcpt", "FALSE", &prefs_common
.never_send_retrcpt
, P_BOOL
,
738 {"enable_smooth_scroll", "FALSE",
739 &prefs_common
.enable_smooth_scroll
, P_BOOL
,
741 {"scroll_step", "1", &prefs_common
.scroll_step
, P_INT
,
743 {"scroll_half_page", "FALSE", &prefs_common
.scroll_halfpage
, P_BOOL
,
745 {"hide_quoted", "TRUE",
746 &prefs_common
.hide_quoted
, P_BOOL
,
748 {"respect_flowed_format", "FALSE", &prefs_common
.respect_flowed_format
, P_BOOL
,
750 {"show_all_headers", "FALSE", &prefs_common
.show_all_headers
, P_BOOL
,
753 {"show_other_header", "FALSE", &prefs_common
.show_other_header
, P_BOOL
,
756 {"attach_desc", "TRUE", &prefs_common
.attach_desc
, P_BOOL
,
758 {"attach_save_directory", NULL
,
759 &SPECIFIC_PREFS
.attach_save_dir
, P_STRING
, NULL
, NULL
, NULL
},
760 {"attach_load_directory", NULL
,
761 &SPECIFIC_PREFS
.attach_load_dir
, P_STRING
, NULL
, NULL
, NULL
},
764 {"mime_textviewer", NULL
,
765 &SPECIFIC_PREFS
.mime_textviewer
, P_STRING
, NULL
, NULL
, NULL
},
766 {"mime_open_command", "gedit '%s'",
767 &SPECIFIC_PREFS
.mime_open_cmd
, P_STRING
, NULL
, NULL
, NULL
},
768 {"show_inline_attachments", "TRUE",
769 &prefs_common
.show_inline_attachments
, P_BOOL
, NULL
, NULL
, NULL
},
773 {"layout_mode", "0", &prefs_common
.layout_mode
, P_INT
,
776 {"layout_mode", "5", &prefs_common
.layout_mode
, P_INT
,
779 /* {"emulate_emacs", "FALSE", &prefs_common.emulate_emacs, P_BOOL,
780 NULL, NULL, NULL}, */
781 {"always_show_message_when_selected", "0",
782 &prefs_common
.always_show_msg
,
783 P_ENUM
, NULL
, NULL
, NULL
},
784 {"select_on_entry", "3", &prefs_common
.select_on_entry
,
785 P_ENUM
, NULL
, NULL
, NULL
},
786 {"show_tooltips", "TRUE", &prefs_common
.show_tooltips
,
787 P_BOOL
, NULL
, NULL
, NULL
},
789 /* do it SUMMARY_OPEN_ACTIONS-1 times */
790 {"summary_select_prio1", "0", &prefs_common
.summary_select_prio
[0], P_ENUM
,
792 {"summary_select_prio2", "0", &prefs_common
.summary_select_prio
[1], P_ENUM
,
794 {"summary_select_prio3", "0", &prefs_common
.summary_select_prio
[2], P_ENUM
,
796 {"summary_select_prio4", "0", &prefs_common
.summary_select_prio
[3], P_ENUM
,
798 {"summary_select_prio5", "0", &prefs_common
.summary_select_prio
[4], P_ENUM
,
800 {"summary_select_prio6", "0", &prefs_common
.summary_select_prio
[5], P_ENUM
,
802 {"summary_select_prio7", "0", &prefs_common
.summary_select_prio
[6], P_ENUM
,
805 {"mark_as_read_on_new_window", "FALSE",
806 &prefs_common
.mark_as_read_on_new_window
,
807 P_BOOL
, NULL
, NULL
, NULL
},
808 {"mark_as_read_delay", "0",
809 &prefs_common
.mark_as_read_delay
, P_INT
,
811 {"immediate_execution", "TRUE", &prefs_common
.immediate_exec
, P_BOOL
,
813 {"nextunreadmsg_dialog", "1", &prefs_common
.next_unread_msg_dialog
, P_ENUM
,
815 {"summary_from_show", "0", &prefs_common
.summary_from_show
, P_ENUM
,
818 {"pixmap_theme_path", DEFAULT_PIXMAP_THEME
,
819 &SPECIFIC_PREFS
.pixmap_theme_path
, P_STRING
,
822 {"ask_mark_all_read", "TRUE", &prefs_common
.ask_mark_all_read
, P_BOOL
,
825 {"ask_apply_per_account_filtering_rules", "TRUE", &prefs_common
.ask_apply_per_account_filtering_rules
, P_BOOL
,
827 {"apply_per_account_filtering_rules", "0", &prefs_common
.apply_per_account_filtering_rules
, P_ENUM
,
831 {"addressbook_use_editaddress_dialog", "TRUE", &prefs_common
.addressbook_use_editaddress_dialog
,
832 P_BOOL
, NULL
, NULL
, NULL
},
833 {"addressbook_hpaned_pos", "-1", &prefs_common
.addressbook_hpaned_pos
,
834 P_INT
, NULL
, NULL
, NULL
},
835 {"addressbook_vpaned_pos", "-1", &prefs_common
.addressbook_vpaned_pos
,
836 P_INT
, NULL
, NULL
, NULL
},
840 {"uri_open_command", DEFAULT_BROWSER_CMD
,
841 &SPECIFIC_PREFS
.uri_cmd
, P_STRING
, NULL
, NULL
, NULL
},
843 {"gtk_theme", DEFAULT_W32_GTK_THEME
,
844 &SPECIFIC_PREFS
.gtk_theme
, P_STRING
, NULL
, NULL
, NULL
},
846 {"ext_editor_command", DEFAULT_EDITOR_CMD
,
847 &SPECIFIC_PREFS
.ext_editor_cmd
, P_STRING
, NULL
, NULL
, NULL
},
848 {"cmds_use_system_default", "TRUE",
849 &prefs_common
.cmds_use_system_default
, P_BOOL
, NULL
, NULL
, NULL
},
850 {"add_address_by_click", "FALSE", &prefs_common
.add_address_by_click
,
851 P_BOOL
, NULL
, NULL
, NULL
},
852 {"session_passwords", "FALSE", &prefs_common
.session_passwords
,
853 P_BOOL
, NULL
, NULL
, NULL
},
854 {"confirm_on_exit", "FALSE", &prefs_common
.confirm_on_exit
, P_BOOL
,
856 {"clean_trash_on_exit", "FALSE", &prefs_common
.clean_on_exit
, P_BOOL
,
858 {"ask_on_cleaning", "TRUE", &prefs_common
.ask_on_clean
, P_BOOL
,
860 {"warn_queued_on_exit", "TRUE", &prefs_common
.warn_queued_on_exit
,
861 P_BOOL
, NULL
, NULL
, NULL
},
862 {"work_offline", "FALSE", &prefs_common
.work_offline
, P_BOOL
,
864 {"summary_quicksearch_type", "0", &prefs_common
.summary_quicksearch_type
, P_INT
,
867 {"summary_quicksearch_recurse", "1", &prefs_common
.summary_quicksearch_recurse
, P_INT
,
870 {"summary_quicksearch_recurse", "0", &prefs_common
.summary_quicksearch_recurse
, P_INT
,
874 #if defined(__OpenBSD__)
875 {"io_timeout_secs", "80", &prefs_common
.io_timeout_secs
,
876 P_INT
, NULL
, NULL
, NULL
},
878 {"io_timeout_secs", "60", &prefs_common
.io_timeout_secs
,
879 P_INT
, NULL
, NULL
, NULL
},
881 {"hide_score", "-9999", &prefs_common
.kill_score
, P_INT
,
883 {"important_score", "1", &prefs_common
.important_score
, P_INT
,
886 {"clip_log", "TRUE", &prefs_common
.cliplog
, P_BOOL
,
888 {"log_length", "500", &prefs_common
.loglength
, P_INT
,
891 {"enable_log_standard", "TRUE", &prefs_common
.enable_log_standard
, P_BOOL
,
893 {"enable_log_warning", "TRUE", &prefs_common
.enable_log_warning
, P_BOOL
,
895 {"enable_log_error", "TRUE", &prefs_common
.enable_log_error
, P_BOOL
,
897 {"enable_log_status", "TRUE", &prefs_common
.enable_log_status
, P_BOOL
,
900 {"enable_log_standard", "FALSE", &prefs_common
.enable_log_standard
, P_BOOL
,
902 {"enable_log_warning", "FALSE", &prefs_common
.enable_log_warning
, P_BOOL
,
904 {"enable_log_error", "FALSE", &prefs_common
.enable_log_error
, P_BOOL
,
906 {"enable_log_status", "FALSE", &prefs_common
.enable_log_status
, P_BOOL
,
909 {"log_msg_color", "#00af00", &prefs_common
.log_msg_color
, P_COLOR
,
911 {"log_warn_color", "#af0000", &prefs_common
.log_warn_color
, P_COLOR
,
913 {"log_error_color", "#af0000", &prefs_common
.log_error_color
, P_COLOR
,
915 {"log_in_color", "#000000", &prefs_common
.log_in_color
, P_COLOR
,
917 {"log_out_color", "#0000ef", &prefs_common
.log_out_color
, P_COLOR
,
919 {"log_status_ok_color", "#00af00", &prefs_common
.log_status_ok_color
, P_COLOR
,
921 {"log_status_nok_color", "#0000af", &prefs_common
.log_status_nok_color
, P_COLOR
,
923 {"log_status_skip_color", "#aa00aa", &prefs_common
.log_status_skip_color
, P_COLOR
,
926 {"enable_filtering_debug", "FALSE", &prefs_common
.enable_filtering_debug
, P_BOOL
,
928 {"filtering_debug_level", "1", &prefs_common
.filtering_debug_level
, P_INT
,
930 {"enable_filtering_debug_inc", "TRUE", &prefs_common
.enable_filtering_debug_inc
, P_BOOL
,
932 {"enable_filtering_debug_manual", "TRUE", &prefs_common
.enable_filtering_debug_manual
, P_BOOL
,
934 {"enable_filtering_debug_folder_proc", "FALSE", &prefs_common
.enable_filtering_debug_folder_proc
, P_BOOL
,
936 {"enable_filtering_debug_pre_proc", "FALSE", &prefs_common
.enable_filtering_debug_pre_proc
, P_BOOL
,
938 {"enable_filtering_debug_post_proc", "FALSE", &prefs_common
.enable_filtering_debug_post_proc
, P_BOOL
,
940 {"filtering_debug_clip_log", "TRUE", &prefs_common
.filtering_debug_cliplog
, P_BOOL
,
942 {"filtering_debug_log_length", "500", &prefs_common
.filtering_debug_loglength
, P_INT
,
945 {"gtk_can_change_accels", "FALSE", &prefs_common
.gtk_can_change_accels
, P_BOOL
,
948 {"color_new", "#0000b3", &prefs_common
.color_new
, P_COLOR
,
951 /* Some windows' sizes */
952 {"filteringwin_width", "500", &prefs_common
.filteringwin_width
, P_INT
,
954 {"filteringwin_height", "-1", &prefs_common
.filteringwin_height
, P_INT
,
957 {"filteringactionwin_width", "490", &prefs_common
.filteringactionwin_width
, P_INT
,
959 {"filteringactionwin_height", "-1", &prefs_common
.filteringactionwin_height
, P_INT
,
962 {"matcherwin_width", "520", &prefs_common
.matcherwin_width
, P_INT
,
964 {"matcherwin_height", "-1", &prefs_common
.matcherwin_height
, P_INT
,
967 {"templateswin_width", "480", &prefs_common
.templateswin_width
, P_INT
,
969 {"templateswin_height", "-1", &prefs_common
.templateswin_height
, P_INT
,
972 {"actionswin_width", "486", &prefs_common
.actionswin_width
, P_INT
,
974 {"actionswin_height", "-1", &prefs_common
.actionswin_height
, P_INT
,
977 {"tagswin_width", "486", &prefs_common
.tagswin_width
, P_INT
,
979 {"tagswin_height", "-1", &prefs_common
.tagswin_height
, P_INT
,
982 {"addressbookwin_width", "520", &prefs_common
.addressbookwin_width
, P_INT
,
984 {"addressbookwin_height", "-1", &prefs_common
.addressbookwin_height
, P_INT
,
987 {"addressbookeditpersonwin_width", "640", &prefs_common
.addressbookeditpersonwin_width
, P_INT
,
989 {"addressbookeditpersonwin_height", "320", &prefs_common
.addressbookeditpersonwin_height
, P_INT
,
992 {"addressbookeditgroupwin_width", "580", &prefs_common
.addressbookeditgroupwin_width
, P_INT
,
994 {"addressbookeditgroupwin_height", "340", &prefs_common
.addressbookeditgroupwin_height
, P_INT
,
997 {"pluginswin_width", "-1", &prefs_common
.pluginswin_width
, P_INT
,
999 {"pluginswin_height", "-1", &prefs_common
.pluginswin_height
, P_INT
,
1002 {"prefswin_width", "600", &prefs_common
.prefswin_width
, P_INT
,
1004 {"prefswin_height", "-1", &prefs_common
.prefswin_height
, P_INT
,
1007 {"folderitemwin_width", "500", &prefs_common
.folderitemwin_width
, P_INT
,
1009 {"folderitemwin_height", "-1", &prefs_common
.folderitemwin_height
, P_INT
,
1012 {"zero_replacement_char", "0", &prefs_common
.zero_replacement
, P_STRING
,
1015 {"editaccountwin_width", "500", &prefs_common
.editaccountwin_width
, P_INT
,
1017 {"editaccountwin_height", "-1", &prefs_common
.editaccountwin_height
, P_INT
,
1020 {"accountswin_width", "500", &prefs_common
.accountswin_width
, P_INT
,
1022 {"accountswin_height", "-1", &prefs_common
.accountswin_height
, P_INT
,
1025 {"logwin_width", "520", &prefs_common
.logwin_width
, P_INT
,
1027 {"logwin_height", "-1", &prefs_common
.logwin_height
, P_INT
,
1030 {"filtering_debugwin_width", "600", &prefs_common
.filtering_debugwin_width
, P_INT
,
1032 {"filtering_debugwin_height", "-1", &prefs_common
.filtering_debugwin_height
, P_INT
,
1035 {"folderselwin_width", "300", &prefs_common
.folderselwin_width
, P_INT
,
1037 {"folderselwin_height", "-1", &prefs_common
.folderselwin_height
, P_INT
,
1040 {"addressaddwin_width", "300", &prefs_common
.addressaddwin_width
, P_INT
,
1042 {"addressaddwin_height", "-1", &prefs_common
.addressaddwin_height
, P_INT
,
1045 {"addressbook_folderselwin_width", "300", &prefs_common
.addressbook_folderselwin_width
, P_INT
,
1047 {"addressbook_folderselwin_height", "-1", &prefs_common
.addressbook_folderselwin_height
, P_INT
,
1050 {"aboutwin_width", "450", &prefs_common
.aboutwin_width
, P_INT
,
1052 {"aboutwin_height", "500", &prefs_common
.aboutwin_height
, P_INT
,
1055 {"addrgather_width", "450", &prefs_common
.addrgather_width
, P_INT
,
1057 {"addrgather_height", "-1", &prefs_common
.addrgather_height
, P_INT
,
1060 {"news_subscribe_width", "450", &prefs_common
.news_subscribe_width
, P_INT
,
1062 {"news_subscribe_height", "400", &prefs_common
.news_subscribe_height
, P_INT
,
1066 {"warn_dnd", "1", &prefs_common
.warn_dnd
, P_INT
,
1068 {"utf8_instead_of_locale_for_broken_mail", "0",
1069 &prefs_common
.broken_are_utf8
, P_INT
,
1071 {"enable_swap_from", "FALSE", &prefs_common
.swap_from
, P_BOOL
,
1073 {"use_stripes_everywhere", "TRUE", &prefs_common
.use_stripes_everywhere
, P_BOOL
,
1075 {"use_stripes_in_summaries", "TRUE", &prefs_common
.use_stripes_in_summaries
, P_BOOL
,
1077 {"stripes_color_offset", "4000", &prefs_common
.stripes_color_offset
, P_INT
,
1079 {"enable_hscrollbar", "TRUE", &prefs_common
.enable_hscrollbar
, P_BOOL
,
1081 {"folderview_vscrollbar_policy", "0",
1082 &prefs_common
.folderview_vscrollbar_policy
, P_ENUM
,
1084 {"textview_cursor_visible", "FALSE",
1085 &prefs_common
.textview_cursor_visible
, P_BOOL
,
1087 {"hover_timeout", "500", &prefs_common
.hover_timeout
, P_INT
,
1089 #ifndef GENERIC_UMPC
1090 {"cache_max_mem_usage", "4096", &prefs_common
.cache_max_mem_usage
, P_INT
,
1092 {"cache_min_keep_time", "15", &prefs_common
.cache_min_keep_time
, P_INT
,
1095 {"cache_max_mem_usage", "4096", &prefs_common
.cache_max_mem_usage
, P_INT
,
1097 {"cache_min_keep_time", "0", &prefs_common
.cache_min_keep_time
, P_INT
,
1100 {"thread_by_subject_max_age", "10", &prefs_common
.thread_by_subject_max_age
,
1101 P_INT
, NULL
, NULL
, NULL
},
1102 {"last_opened_folder", "", &prefs_common
.last_opened_folder
,
1103 P_STRING
, NULL
, NULL
, NULL
},
1104 {"goto_last_folder_on_startup", "FALSE", &prefs_common
.goto_last_folder_on_startup
,
1105 P_BOOL
, NULL
, NULL
, NULL
},
1106 {"summary_quicksearch_sticky", "1", &prefs_common
.summary_quicksearch_sticky
, P_INT
,
1108 {"summary_quicksearch_dynamic", "0", &prefs_common
.summary_quicksearch_dynamic
, P_INT
,
1110 {"summary_quicksearch_autorun", "0", &prefs_common
.summary_quicksearch_autorun
, P_INT
,
1112 {"statusbar_update_step", "10", &prefs_common
.statusbar_update_step
, P_INT
,
1114 {"compose_no_markup", "FALSE", &prefs_common
.compose_no_markup
, P_BOOL
,
1116 {"skip_ssl_cert_check", "FALSE", &prefs_common
.skip_ssl_cert_check
, P_BOOL
,
1118 {"live_dangerously", "FALSE", &prefs_common
.live_dangerously
, P_BOOL
,
1120 {"save_parts_readwrite", "FALSE", &prefs_common
.save_parts_readwrite
, P_BOOL
,
1122 {"hide_quotes", "0", &prefs_common
.hide_quotes
, P_INT
,
1124 {"unsafe_ssl_certs", "FALSE", &prefs_common
.unsafe_ssl_certs
, P_BOOL
,
1126 #ifndef GENERIC_UMPC
1127 {"real_time_sync", "FALSE", &prefs_common
.real_time_sync
, P_BOOL
,
1130 {"real_time_sync", "TRUE", &prefs_common
.real_time_sync
, P_BOOL
,
1134 {"print_paper_type", NULL
, &prefs_common
.print_paper_type
, P_STRING
,
1136 {"print_paper_orientation", "0", &prefs_common
.print_paper_orientation
, P_INT
,
1138 {"print_margin_top", "-1", &prefs_common
.print_margin_top
, P_INT
,
1140 {"print_margin_bottom", "-1", &prefs_common
.print_margin_bottom
, P_INT
,
1142 {"print_margin_left", "-1", &prefs_common
.print_margin_left
, P_INT
,
1144 {"print_margin_right", "-1", &prefs_common
.print_margin_right
, P_INT
,
1146 {"print_use_color", "0", &prefs_common
.print_use_color
, P_INT
,
1148 {"print_use_collate", "0", &prefs_common
.print_use_collate
, P_INT
,
1150 {"print_use_reverse", "0", &prefs_common
.print_use_reverse
, P_INT
,
1152 {"print_use_duplex", "0", &prefs_common
.print_use_duplex
, P_INT
,
1154 {"print_imgs", "1", &prefs_common
.print_imgs
, P_INT
,
1156 {"print_previewwin_width", "600", &prefs_common
.print_previewwin_width
, P_INT
,
1158 {"print_previewwin_height", "-1", &prefs_common
.print_previewwin_height
, P_INT
,
1160 {"use_networkmanager", "TRUE", &prefs_common
.use_networkmanager
, P_BOOL
,
1162 {"use_shred", "FALSE", &prefs_common
.use_shred
, P_BOOL
,
1165 {"two_line_vertical", "TRUE", &prefs_common
.two_line_vert
,
1166 P_BOOL
, NULL
, NULL
, NULL
},
1168 {"inherit_folder_properties", "FALSE", &prefs_common
.inherit_folder_props
, P_BOOL
,
1171 {"flush_metadata", "TRUE", &prefs_common
.flush_metadata
, P_BOOL
,
1174 {"nav_history_length", "50", &prefs_common
.nav_history_length
, P_INT
,
1177 {"diff_added_color", "#008b8b", &prefs_common
.diff_added_color
, P_COLOR
,
1179 {"diff_deleted_color", "#6a5acd", &prefs_common
.diff_deleted_color
, P_COLOR
,
1181 {"diff_hunk_color", "#a52a2a", &prefs_common
.diff_hunk_color
, P_COLOR
,
1184 {"folder_search_wildcard", "TRUE", &prefs_common
.folder_search_wildcard
, P_BOOL
,
1186 {"address_search_wildcard", "TRUE", &prefs_common
.address_search_wildcard
, P_BOOL
,
1188 {"enable_avatars", "3", &prefs_common
.enable_avatars
, P_INT
, NULL
, NULL
, NULL
},
1190 {NULL
, NULL
, NULL
, P_OTHER
, NULL
, NULL
, NULL
}
1194 * Read history list from the specified history file in the specified directory (subdir of rc_dir)
1195 * Fallback to default_list if history file is not found
1197 GList
*prefs_common_read_history_from_dir_with_defaults(const gchar
*dirname
, const gchar
*history
,
1198 GList
*default_list
)
1202 gchar buf
[PREFSBUFSIZE
];
1206 path
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, dirname
,
1207 G_DIR_SEPARATOR_S
, history
,
1210 path
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, history
,
1213 if ((fp
= g_fopen(path
, "rb")) == NULL
) {
1214 if (ENOENT
!= errno
) FILE_OP_ERROR(path
, "fopen");
1216 /* returns default list if set, otherwise NULL */
1217 return default_list
;
1220 while (fgets(buf
, sizeof(buf
), fp
) != NULL
) {
1222 if (buf
[0] == '\0') continue;
1223 tmp
= add_history(tmp
, buf
);
1227 tmp
= g_list_reverse(tmp
);
1233 * Read history list from the specified history file in the specified directory (subdir of rc_dir)
1235 static GList
*prefs_common_read_history_from_dir(const gchar
*dirname
, const gchar
*history
)
1237 return prefs_common_read_history_from_dir_with_defaults(dirname
, history
, NULL
);
1241 * Read history list from the specified history file
1243 static GList
*prefs_common_read_history(const gchar
*history
)
1245 return prefs_common_read_history_from_dir(NULL
, history
);
1248 void prefs_common_read_config(void)
1253 rcpath
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, COMMON_RC
, NULL
);
1254 prefs_read_config(param
, "Common", rcpath
, NULL
);
1256 prefs_read_config(param_os_specific
, "CommonWin32", rcpath
, NULL
);
1261 tmp
= g_strdup(gettext(prefs_common
.date_format
));
1262 g_free(prefs_common
.date_format
);
1263 prefs_common
.date_format
= tmp
;
1265 prefs_common
.mime_open_cmd_history
=
1266 prefs_common_read_history(COMMAND_HISTORY
);
1267 prefs_common
.summary_quicksearch_history
=
1268 prefs_common_read_history(QUICKSEARCH_HISTORY
);
1269 prefs_common
.summary_search_from_history
=
1270 prefs_common_read_history(SUMMARY_SEARCH_FROM_HISTORY
);
1271 prefs_common
.summary_search_to_history
=
1272 prefs_common_read_history(SUMMARY_SEARCH_TO_HISTORY
);
1273 prefs_common
.summary_search_subject_history
=
1274 prefs_common_read_history(SUMMARY_SEARCH_SUBJECT_HISTORY
);
1275 prefs_common
.summary_search_body_history
=
1276 prefs_common_read_history(SUMMARY_SEARCH_BODY_HISTORY
);
1277 prefs_common
.summary_search_adv_condition_history
=
1278 prefs_common_read_history(SUMMARY_SEARCH_ADV_CONDITION_HISTORY
);
1279 prefs_common
.message_search_history
=
1280 prefs_common_read_history(MESSAGE_SEARCH_HISTORY
);
1281 prefs_common
.compose_save_to_history
=
1282 prefs_common_read_history(COMPOSE_SAVE_TO_HISTORY
);
1283 #ifndef USE_NEW_ADDRBOOK
1284 prefs_common
.addressbook_custom_attributes
= addressbook_update_custom_attr_from_prefs();
1286 colorlabel_update_colortable_from_prefs();
1292 g_warning("failed to write"); \
1297 * Save history list to the specified history file in the specified directory (subdir of rc_dir)
1299 static void prefs_common_save_history_to_dir(const gchar
*dirname
, const gchar
*history
, GList
*list
)
1303 gchar
*path
, *tmp_path
;
1306 path
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, dirname
,
1307 G_DIR_SEPARATOR_S
, history
,
1310 path
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, history
,
1313 tmp_path
= g_strconcat(path
, ".tmp", NULL
);
1315 if ((fp
= g_fopen(tmp_path
, "wb")) == NULL
) {
1316 FILE_OP_ERROR(tmp_path
, "fopen");
1320 for (cur
= list
; cur
!= NULL
; cur
= cur
->next
) {
1321 TRY(fputs((gchar
*)cur
->data
, fp
) != EOF
&&
1322 fputc('\n', fp
) != EOF
);
1325 if (fclose(fp
) == EOF
) {
1326 FILE_OP_ERROR(tmp_path
, "fclose");
1334 if (g_rename(tmp_path
, path
) < 0) {
1335 FILE_OP_ERROR(path
, "rename");
1347 * Save history list to the specified history file
1349 static void prefs_common_save_history(const gchar
*history
, GList
*list
)
1351 prefs_common_save_history_to_dir(NULL
, history
, list
);
1356 void prefs_common_write_config(void)
1358 prefs_write_config(param
, "Common", COMMON_RC
);
1360 prefs_write_config(param_os_specific
, "CommonWin32", COMMON_RC
);
1363 prefs_common_save_history(COMMAND_HISTORY
,
1364 prefs_common
.mime_open_cmd_history
);
1365 prefs_common_save_history(QUICKSEARCH_HISTORY
,
1366 prefs_common
.summary_quicksearch_history
);
1367 prefs_common_save_history(SUMMARY_SEARCH_FROM_HISTORY
,
1368 prefs_common
.summary_search_from_history
);
1369 prefs_common_save_history(SUMMARY_SEARCH_TO_HISTORY
,
1370 prefs_common
.summary_search_to_history
);
1371 prefs_common_save_history(SUMMARY_SEARCH_SUBJECT_HISTORY
,
1372 prefs_common
.summary_search_subject_history
);
1373 prefs_common_save_history(SUMMARY_SEARCH_BODY_HISTORY
,
1374 prefs_common
.summary_search_body_history
);
1375 prefs_common_save_history(SUMMARY_SEARCH_ADV_CONDITION_HISTORY
,
1376 prefs_common
.summary_search_adv_condition_history
);
1377 prefs_common_save_history(MESSAGE_SEARCH_HISTORY
,
1378 prefs_common
.message_search_history
);
1379 prefs_common_save_history(COMPOSE_SAVE_TO_HISTORY
,
1380 prefs_common
.compose_save_to_history
);
1382 #ifndef USE_NEW_ADDRBOOK
1383 prefs_common_save_history_to_dir(ADDRBOOK_DIR
,
1384 ADDRESSBOOK_CUSTOM_ATTRIBUTES
,
1385 prefs_common
.addressbook_custom_attributes
);
1389 /* make a copy of string 'in' into buffer 'out'. un-escape \ sequences.
1390 both 'in' and 'out' must be non-NULL.
1391 'out' must be a pointer to a buffer whose size is at least equal
1392 to strlen(txt)+1, this buffer will get cleared. out's contents
1393 will always get set to a valid string, even if it's "".*/
1394 void pref_get_unescaped_pref(gchar
*out
, const gchar
*in
)
1401 cm_return_if_fail( in
!= NULL
);
1402 cm_return_if_fail( out
!= NULL
);
1406 memset(out
, 0, strlen(in
)+1);
1407 while (*i
!= '\0') {
1408 if (*i
== '\\' && *(i
+1) == 'n') {
1411 } else if (*i
== '\\' && *(i
+1) == 't') {
1414 } else if (*i
== '\\' && *(i
+1) == '\\') {
1425 /* make a copy of string 'in' into buffer 'out'. escape \ sequences.
1426 both 'in' and 'out' must be non-NULL.
1427 'out' must be a pointer to a buffer whose size is at least equal
1428 to 2*strlen(txt)+1. out's contents will always get set to a valid
1429 string, even if it's "". */
1430 void pref_get_escaped_pref(gchar
*out
, const gchar
*in
)
1437 cm_return_if_fail( in
!= NULL
);
1438 cm_return_if_fail( out
!= NULL
);
1442 while (*i
!= '\0') {
1446 } else if (*i
== '\t') {
1449 } else if (*i
== '\\') {
1460 /* set the contents of a textview widget from the internal \-escaped
1461 representation of a pref string. both txt and textview must be non-NULL. */
1462 void pref_set_textview_from_pref(GtkTextView
*textview
, const gchar
*txt
)
1464 GtkTextBuffer
*buffer
;
1467 cm_return_if_fail( textview
!= NULL
);
1469 buffer
= gtk_text_view_get_buffer(textview
);
1472 gtk_text_buffer_set_text(buffer
, "", -1);
1474 out
= g_malloc(strlen(txt
)+1);
1476 pref_get_unescaped_pref(out
, txt
);
1478 gtk_text_buffer_set_text(buffer
, out
, -1);
1483 /* set the contents of a gtkentry widget from the internal \-escaped
1484 representation of a pref string. both txt and entry must be non-NULL. */
1485 void pref_set_entry_from_pref(GtkEntry
*entry
, const gchar
*txt
)
1489 cm_return_if_fail( entry
!= NULL
);
1491 gtk_entry_set_text(entry
, "");
1493 out
= g_malloc(strlen(txt
)+1);
1495 pref_get_unescaped_pref(out
, txt
);
1497 gtk_entry_set_text(entry
, out
);
1502 /* get the \-escaped internal representation of a pref from the contents of
1503 a textview widget. textview must be non-NULL. */
1504 gchar
*pref_get_pref_from_textview(GtkTextView
*textview
)
1506 GtkTextBuffer
*buffer
;
1507 GtkTextIter start
, end
;
1510 cm_return_val_if_fail( textview
!= NULL
, "" );
1512 buffer
= gtk_text_view_get_buffer(textview
);
1513 gtk_text_buffer_get_start_iter(buffer
, &start
);
1514 gtk_text_buffer_get_iter_at_offset(buffer
, &end
, -1);
1515 tmp
= gtk_text_buffer_get_text(buffer
, &start
, &end
, FALSE
);
1516 out
= malloc(2*strlen(tmp
)+1);
1518 pref_get_escaped_pref(out
, tmp
);
1524 /* get the \-escaped internal representation of a pref from the contents of
1525 a gtkentry widget. entry must be non-NULL. */
1526 gchar
*pref_get_pref_from_entry(GtkEntry
*entry
)
1530 cm_return_val_if_fail( entry
!= NULL
, "" );
1532 tmp
= gtk_editable_get_chars(GTK_EDITABLE(entry
), 0, -1);
1533 out
= malloc(2*strlen(tmp
)+1);
1536 pref_get_escaped_pref(out
, tmp
);
1542 /* ugly hack to be able to get this pref from ssl_certificate.c */
1543 gboolean
prefs_common_unsafe_ssl_certs(void)
1545 return prefs_common
.unsafe_ssl_certs
;
1548 gboolean
prefs_common_enable_log_standard(void)
1550 return prefs_common
.enable_log_standard
;
1553 gboolean
prefs_common_enable_log_warning(void)
1555 return prefs_common
.enable_log_warning
;
1557 gboolean
prefs_common_enable_log_error(void)
1559 return prefs_common
.enable_log_error
;
1561 gboolean
prefs_common_enable_log_status(void)
1563 return prefs_common
.enable_log_status
;
1567 return the translated name of a header, if the translate_header option is
1568 set, otherwise return the untranslated header name (header_name itself).
1569 this function is provided for convenience, it's an interface to
1570 prefs_common.trans_hdr.
1571 works with header names either with or without trailing colon, provided
1572 that gettext found such header name in the sources (they should all be
1573 found in src/gtk/headers.h anyway).
1575 const gchar
*prefs_common_translated_header_name(const gchar
*header_name
)
1577 if (header_name
== NULL
|| *header_name
== '\0')
1580 return prefs_common
.trans_hdr
? gettext(header_name
) : header_name
;
1583 const gchar
*prefs_common_get_uri_cmd(void)
1590 if (!prefs_common
.cmds_use_system_default
)
1591 return prefs_common
.uri_cmd
;
1593 tmp
= g_find_program_in_path("xdg-open");
1595 return prefs_common
.uri_cmd
;
1598 return "xdg-open %s";
1602 const gchar
*prefs_common_get_ext_editor_cmd(void)
1604 return prefs_common
.ext_editor_cmd
;
1605 #if 0 /* we should do that, but it detaches the editor and breaks
1606 compose.c's external composition. */
1609 if (!prefs_common
.cmds_use_system_default
)
1610 return prefs_common
.ext_editor_cmd
;
1612 tmp
= g_find_program_in_path("xdg-open");
1614 return prefs_common
.ext_editor_cmd
;
1617 return "xdg-open %s";
1621 gboolean
prefs_common_get_use_shred(void)
1623 return prefs_common
.use_shred
;
1626 gboolean
prefs_common_get_flush_metadata (void)
1628 return prefs_common
.flush_metadata
;
1631 PrefsCommon
*prefs_common_get_prefs(void)
1633 return &prefs_common
;