#include "gtkutils.h"
#include "alertpanel.h"
#include "folder.h"
+#include "socket.h"
#include "filesel.h"
#include "folderview.h"
#include "stock_pixmap.h"
#include "quote_fmt.h"
-#if USE_ASPELL
-#include "gtkaspell.h"
-#endif
-
PrefsCommon prefs_common;
static PrefsDialog dialog;
GtkWidget *entry_incext;
GtkWidget *button_incext;
- GtkWidget *checkbtn_local;
- GtkWidget *checkbtn_filter_on_inc;
- GtkWidget *entry_spool;
-
GtkWidget *checkbtn_autochk;
GtkWidget *spinbtn_autochk;
GtkObject *spinbtn_autochk_adj;
} receive;
static struct Send {
- GtkWidget *checkbtn_extsend;
- GtkWidget *entry_extsend;
- GtkWidget *button_extsend;
-
GtkWidget *checkbtn_savemsg;
GtkWidget *checkbtn_queuemsg;
GtkWidget *optmenu_senddialog;
GtkWidget *entry_autosave_length;
} compose;
- /* spelling */
-#if USE_ASPELL
-static struct Spelling {
- GtkWidget *checkbtn_enable_aspell;
- GtkWidget *entry_aspell_path;
- GtkWidget *btn_aspell_path;
- GtkWidget *optmenu_dictionary;
- GtkWidget *optmenu_sugmode;
- GtkWidget *misspelled_btn;
- GtkWidget *checkbtn_use_alternate;
- GtkWidget *checkbtn_check_while_typing;
-} spelling;
-#endif
-
static struct Quote {
GtkWidget *entry_quotemark;
GtkWidget *text_quotefmt;
GtkWidget *printcmd_entry;
GtkWidget *exteditor_combo;
GtkWidget *exteditor_entry;
+
GtkWidget *checkbtn_addaddrbyclick;
GtkWidget *checkbtn_confonexit;
GtkWidget *checkbtn_cleanonexit;
#endif
#endif
+ GtkWidget *spinbtn_iotimeout;
+ GtkObject *spinbtn_iotimeout_adj;
} other;
static struct MessageColorButtons {
static void prefs_nextunreadmsgdialog_set_data_from_optmenu(PrefParam *pparam);
static void prefs_nextunreadmsgdialog_set_optmenu(PrefParam *pparam);
-#if USE_ASPELL
-static void prefs_dictionary_set_data_from_optmenu (PrefParam *param);
-static void prefs_dictionary_set_optmenu (PrefParam *pparam);
-static void prefs_speller_sugmode_set_data_from_optmenu (PrefParam *pparam);
-static void prefs_speller_sugmode_set_optmenu (PrefParam *pparam);
-#endif
-
-
/*
parameter name, default value, pointer to the prefs variable, data type,
pointer to the widget pointer,
&receive.entry_incext,
prefs_set_data_from_entry, prefs_set_entry},
- {"inc_local", "TRUE", &prefs_common.inc_local, P_BOOL,
- &receive.checkbtn_local,
- prefs_set_data_from_toggle, prefs_set_toggle},
- {"filter_on_inc_local", "TRUE", &prefs_common.filter_on_inc, P_BOOL,
- &receive.checkbtn_filter_on_inc,
- prefs_set_data_from_toggle, prefs_set_toggle},
- {"spool_path", DEFAULT_SPOOL_PATH, &prefs_common.spool_path, P_STRING,
- &receive.entry_spool,
- prefs_set_data_from_entry, prefs_set_entry},
-
{"autochk_newmail", "FALSE", &prefs_common.autochk_newmail, P_BOOL,
&receive.checkbtn_autochk,
prefs_set_data_from_toggle, prefs_set_toggle},
prefs_set_data_from_toggle, prefs_set_toggle},
/* Send */
- {"use_ext_sendmail", "FALSE", &prefs_common.use_extsend, P_BOOL,
- &p_send.checkbtn_extsend,
- prefs_set_data_from_toggle, prefs_set_toggle},
- {"ext_sendmail_cmd", DEFAULT_SENDMAIL_CMD,
- &prefs_common.extsend_cmd, P_STRING,
- &p_send.entry_extsend, prefs_set_data_from_entry, prefs_set_entry},
{"save_message", "TRUE", &prefs_common.savemsg, P_BOOL,
&p_send.checkbtn_savemsg,
prefs_set_data_from_toggle, prefs_set_toggle},
P_INT, &compose.entry_autosave_length,
prefs_set_data_from_entry, prefs_set_entry},
#if USE_ASPELL
- {"enable_aspell", "TRUE", &prefs_common.enable_aspell,
- P_BOOL, &spelling.checkbtn_enable_aspell,
- prefs_set_data_from_toggle, prefs_set_toggle},
- {"aspell_path", ASPELL_PATH, &prefs_common.aspell_path,
- P_STRING, &spelling.entry_aspell_path,
- prefs_set_data_from_entry, prefs_set_entry},
- {"dictionary", "", &prefs_common.dictionary,
- P_STRING, &spelling.optmenu_dictionary,
- prefs_dictionary_set_data_from_optmenu, prefs_dictionary_set_optmenu },
- {"aspell_sugmode", "1", &prefs_common.aspell_sugmode,
- P_INT, &spelling.optmenu_sugmode,
- prefs_speller_sugmode_set_data_from_optmenu, prefs_speller_sugmode_set_optmenu },
- {"use_alternate_dict", "FALSE", &prefs_common.use_alternate,
- P_BOOL, &spelling.checkbtn_use_alternate,
- prefs_set_data_from_toggle, prefs_set_toggle},
- {"check_while_typing", "TRUE", &prefs_common.check_while_typing,
- P_BOOL, &spelling.checkbtn_check_while_typing,
- prefs_set_data_from_toggle, prefs_set_toggle},
+ {"enable_aspell", "TRUE", &prefs_common.enable_aspell, P_BOOL,
+ NULL, NULL, NULL},
+ {"aspell_path", ASPELL_PATH, &prefs_common.aspell_path, P_STRING,
+ NULL, NULL, NULL},
+ {"dictionary", "", &prefs_common.dictionary, P_STRING,
+ NULL, NULL, NULL},
+ {"aspell_sugmode", "1", &prefs_common.aspell_sugmode, P_INT,
+ NULL, NULL, NULL},
+ {"use_alternate_dict", "FALSE", &prefs_common.use_alternate, P_BOOL,
+ NULL, NULL, NULL},
+ {"check_while_typing", "TRUE", &prefs_common.check_while_typing, P_BOOL,
+ NULL, NULL, NULL},
{"misspelled_color", "16711680", &prefs_common.misspelled_col, P_COLOR,
NULL, NULL, NULL},
#endif
NULL, NULL, NULL},
{"bold_unread", "TRUE", &prefs_common.bold_unread, P_BOOL,
NULL, NULL, NULL},
+ {"thread_by_subject_max_age", "10", &prefs_common.thread_by_subject_max_age,
+ P_INT, NULL, NULL, NULL },
{"enable_thread", "TRUE", &prefs_common.enable_thread, P_BOOL,
NULL, NULL, NULL},
&prefs_common.summary_col_size[S_COL_LOCKED], P_INT, NULL, NULL, NULL},
/* Widget size */
+ {"folderwin_x", "16", &prefs_common.folderwin_x, P_INT,
+ NULL, NULL, NULL},
+ {"folderwin_y", "16", &prefs_common.folderwin_y, P_INT,
+ NULL, NULL, NULL},
{"folderview_width", "179", &prefs_common.folderview_width, P_INT,
NULL, NULL, NULL},
{"folderview_height", "600", &prefs_common.folderview_height, P_INT,
NULL, NULL, NULL},
+ {"folderview_visible", "TRUE", &prefs_common.folderview_visible, P_BOOL,
+ NULL, NULL, NULL},
+
{"folder_col_folder", "150", &prefs_common.folder_col_folder, P_INT,
NULL, NULL, NULL},
{"folder_col_new", "32", &prefs_common.folder_col_new, P_INT,
{"summaryview_height", "173", &prefs_common.summaryview_height, P_INT,
NULL, NULL, NULL},
+ {"main_messagewin_x", "256", &prefs_common.main_msgwin_x, P_INT,
+ NULL, NULL, NULL},
+ {"main_messagewin_y", "210", &prefs_common.main_msgwin_y, P_INT,
+ NULL, NULL, NULL},
+ {"messageview_width", "600", &prefs_common.msgview_width, P_INT,
+ NULL, NULL, NULL},
+ {"messageview_height", "540", &prefs_common.msgview_height, P_INT,
+ NULL, NULL, NULL},
+ {"messageview_visible", "TRUE", &prefs_common.msgview_visible, P_BOOL,
+ NULL, NULL, NULL},
+
{"mainview_x", "64", &prefs_common.mainview_x, P_INT,
NULL, NULL, NULL},
{"mainview_y", "64", &prefs_common.mainview_y, P_INT,
{"pixmap_theme_path", DEFAULT_PIXMAP_THEME,
&prefs_common.pixmap_theme_path, P_STRING,
&interface.entry_pixmap_theme, prefs_set_data_from_entry, prefs_set_entry},
+
+ {"hover_timeout", "500", &prefs_common.hover_timeout, P_INT,
+ NULL, NULL, NULL},
/* Other */
{"uri_open_command", DEFAULT_BROWSER_CMD,
{"summary_quicksearch_type", "0", &prefs_common.summary_quicksearch_type, P_INT,
NULL, NULL, NULL},
+ {"io_timeout_secs", "60", &prefs_common.io_timeout_secs,
+ P_INT, &other.spinbtn_iotimeout,
+ prefs_set_data_from_spinbtn, prefs_set_spinbtn},
{"hide_score", "-9999", &prefs_common.kill_score, P_INT,
NULL, NULL, NULL},
{"important_score", "1", &prefs_common.important_score, P_INT,
static void prefs_common_create (void);
static void prefs_receive_create (void);
static void prefs_send_create (void);
-#ifdef USE_ASPELL
-static void prefs_spelling_create (void);
-#endif
static void prefs_compose_create (void);
static void prefs_quote_create (void);
static void prefs_display_create (void);
SET_NOTEBOOK_LABEL(dialog.notebook, _("Send"), page++);
prefs_compose_create();
SET_NOTEBOOK_LABEL(dialog.notebook, _("Compose"), page++);
-#if USE_ASPELL
- prefs_spelling_create();
- SET_NOTEBOOK_LABEL(dialog.notebook, _("Spell Checker"), page++);
-#endif
prefs_quote_create();
SET_NOTEBOOK_LABEL(dialog.notebook, _("Quote"), page++);
prefs_display_create();
GtkWidget *entry_incext;
/* GtkWidget *button_incext; */
- GtkWidget *frame_spool;
- GtkWidget *checkbtn_local;
- GtkWidget *checkbtn_filter_on_inc;
- GtkWidget *label_spool;
- GtkWidget *entry_spool;
-
GtkWidget *hbox_autochk;
GtkWidget *checkbtn_autochk;
GtkWidget *label_autochk1;
gtk_box_pack_start (GTK_BOX (hbox), button_incext, FALSE, FALSE, 0);
#endif
- PACK_FRAME(vbox1, frame_spool, _("Local spool"));
-
- vbox2 = gtk_vbox_new (FALSE, VSPACING_NARROW);
- gtk_widget_show (vbox2);
- gtk_container_add (GTK_CONTAINER (frame_spool), vbox2);
- gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8);
-
- hbox = gtk_hbox_new (FALSE, 32);
- gtk_widget_show (hbox);
- gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 0);
-
- PACK_CHECK_BUTTON (hbox, checkbtn_local, _("Incorporate from spool"));
- PACK_CHECK_BUTTON (hbox, checkbtn_filter_on_inc,
- _("Filter on incorporation"));
- SET_TOGGLE_SENSITIVITY (checkbtn_local, checkbtn_filter_on_inc);
-
- hbox = gtk_hbox_new (FALSE, 8);
- gtk_widget_show (hbox);
- gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 0);
- SET_TOGGLE_SENSITIVITY (checkbtn_local, hbox);
-
- label_spool = gtk_label_new (_("Spool directory"));
- gtk_widget_show (label_spool);
- gtk_box_pack_start (GTK_BOX (hbox), label_spool, FALSE, FALSE, 0);
-
- entry_spool = gtk_entry_new ();
- gtk_widget_show (entry_spool);
- gtk_box_pack_start (GTK_BOX (hbox), entry_spool, TRUE, TRUE, 0);
-
vbox2 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox2);
gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0);
menu = gtk_menu_new ();
MENUITEM_ADD (menu, menuitem, _("Always"), RECV_DIALOG_ALWAYS);
- MENUITEM_ADD (menu, menuitem, _("Only if a window is active"),
- RECV_DIALOG_ACTIVE);
+ MENUITEM_ADD (menu, menuitem, _("Only on manual receiving"),
+ RECV_DIALOG_MANUAL);
MENUITEM_ADD (menu, menuitem, _("Never"), RECV_DIALOG_NEVER);
gtk_option_menu_set_menu (GTK_OPTION_MENU (optmenu_recvdialog), menu);
receive.entry_incext = entry_incext;
/* receive.button_incext = button_incext; */
- receive.checkbtn_local = checkbtn_local;
- receive.checkbtn_filter_on_inc = checkbtn_filter_on_inc;
- receive.entry_spool = entry_spool;
-
receive.checkbtn_autochk = checkbtn_autochk;
receive.spinbtn_autochk = spinbtn_autochk;
receive.spinbtn_autochk_adj = spinbtn_autochk_adj;
{
GtkWidget *vbox1;
GtkWidget *vbox2;
- GtkWidget *frame_extsend;
- GtkWidget *vbox_extsend;
- GtkWidget *checkbtn_extsend;
GtkWidget *hbox1;
- GtkWidget *label_extsend;
- GtkWidget *entry_extsend;
- /* GtkWidget *button_extsend; */
GtkWidget *checkbtn_savemsg;
GtkWidget *checkbtn_queuemsg;
GtkWidget *label_outcharset;
GtkWidget *optmenu_charset;
GtkWidget *optmenu_menu;
GtkWidget *menuitem;
- GtkWidget *label_charset_desc;
+ GtkTooltips *charset_tooltip;
GtkWidget *optmenu_encoding;
GtkWidget *label_encoding;
- GtkWidget *label_encoding_desc;
+ GtkTooltips *encoding_tooltip;
GtkWidget *label_senddialog;
GtkWidget *menu;
GtkWidget *optmenu_senddialog;
gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
- PACK_FRAME(vbox1, frame_extsend, _("External program"));
-
- vbox_extsend = gtk_vbox_new (FALSE, VSPACING_NARROW);
- gtk_widget_show (vbox_extsend);
- gtk_container_add (GTK_CONTAINER (frame_extsend), vbox_extsend);
- gtk_container_set_border_width (GTK_CONTAINER (vbox_extsend), 8);
-
- PACK_CHECK_BUTTON (vbox_extsend, checkbtn_extsend,
- _("Use external program for sending"));
-
- hbox1 = gtk_hbox_new (FALSE, 8);
- gtk_widget_show (hbox1);
- gtk_box_pack_start (GTK_BOX (vbox_extsend), hbox1, FALSE, FALSE, 0);
- SET_TOGGLE_SENSITIVITY(checkbtn_extsend, hbox1);
-
- label_extsend = gtk_label_new (_("Command"));
- gtk_widget_show (label_extsend);
- gtk_box_pack_start (GTK_BOX (hbox1), label_extsend, FALSE, FALSE, 0);
-
- entry_extsend = gtk_entry_new ();
- gtk_widget_show (entry_extsend);
- gtk_box_pack_start (GTK_BOX (hbox1), entry_extsend, TRUE, TRUE, 0);
-
-#if 0
- button_extsend = gtk_button_new_with_label ("... ");
- gtk_widget_show (button_extsend);
- gtk_box_pack_start (GTK_BOX (hbox1), button_extsend, FALSE, FALSE, 0);
-#endif
-
vbox2 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox2);
gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0);
_("Queue messages that fail to send"));
hbox_senddialog = gtk_hbox_new (FALSE, 8);
- gtk_widget_show (hbox1);
gtk_box_pack_start (GTK_BOX (vbox1), hbox_senddialog, FALSE, FALSE, 0);
label_senddialog = gtk_label_new (_("Show send dialog"));
gtk_widget_show (label_outcharset);
gtk_box_pack_start (GTK_BOX (hbox1), label_outcharset, FALSE, FALSE, 0);
+ charset_tooltip = gtk_tooltips_new();
+
optmenu_charset = gtk_option_menu_new ();
gtk_widget_show (optmenu_charset);
- gtk_box_pack_start (GTK_BOX (hbox1), optmenu_charset, FALSE, FALSE, 0);
+ gtk_tooltips_set_tip(GTK_TOOLTIPS(charset_tooltip), optmenu_charset,
+ _("If `Automatic' is selected, the optimal encoding"
+ " for the current locale will be used"),
+ NULL);
+ gtk_box_pack_start (GTK_BOX (hbox1), optmenu_charset, FALSE, FALSE, 0);
optmenu_menu = gtk_menu_new ();
gtk_widget_show (hbox1);
gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);
- label_charset_desc = gtk_label_new
- (_("If `Automatic' is selected, the optimal encoding\n"
- "for the current locale will be used."));
- gtk_widget_show (label_charset_desc);
- gtk_box_pack_start (GTK_BOX (hbox1), label_charset_desc,
- FALSE, FALSE, 0);
- gtk_label_set_justify (GTK_LABEL (label_charset_desc),
- GTK_JUSTIFY_LEFT);
-
hbox1 = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox1);
gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);
gtk_widget_show (label_encoding);
gtk_box_pack_start (GTK_BOX (hbox1), label_encoding, FALSE, FALSE, 0);
+ encoding_tooltip = gtk_tooltips_new();
+
optmenu_encoding = gtk_option_menu_new ();
gtk_widget_show (optmenu_encoding);
- gtk_box_pack_start (GTK_BOX (hbox1), optmenu_encoding, FALSE, FALSE, 0);
+ gtk_tooltips_set_tip(GTK_TOOLTIPS(encoding_tooltip), optmenu_encoding,
+ _("Specify Content-Transfer-Encoding used when"
+ " message body contains non-ASCII characters"),
+ NULL);
+ gtk_box_pack_start (GTK_BOX (hbox1), optmenu_encoding, FALSE, FALSE, 0);
optmenu_menu = gtk_menu_new ();
gtk_widget_show (hbox1);
gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);
- label_encoding_desc = gtk_label_new
- (_("Specify Content-Transfer-Encoding used when\n"
- "message body contains non-ASCII characters."));
- gtk_widget_show (label_encoding_desc);
- gtk_box_pack_start (GTK_BOX (hbox1), label_encoding_desc,
- FALSE, FALSE, 0);
- gtk_label_set_justify (GTK_LABEL (label_encoding_desc),
- GTK_JUSTIFY_LEFT);
-
- p_send.checkbtn_extsend = checkbtn_extsend;
- p_send.entry_extsend = entry_extsend;
- /* p_send.button_extsend = button_extsend; */
-
p_send.checkbtn_savemsg = checkbtn_savemsg;
p_send.checkbtn_queuemsg = checkbtn_queuemsg;
p_send.optmenu_senddialog = optmenu_senddialog;
gtk_widget_set_sensitive(receive.hbox_newmail_notify, toggled);
}
-#if USE_ASPELL
-static void prefs_dictionary_set_data_from_optmenu(PrefParam *param)
-{
- gchar *str;
- gchar *dict_fullname;
-
- g_return_if_fail(param);
- g_return_if_fail(param->data);
- g_return_if_fail(param->widget);
- g_return_if_fail(*(param->widget));
-
- dict_fullname = gtkaspell_get_dictionary_menu_active_item
- (gtk_option_menu_get_menu(GTK_OPTION_MENU(*(param->widget))));
- str = *((gchar **) param->data);
- if (str)
- g_free(str);
- *((gchar **) param->data) = dict_fullname;
-}
-
-static void prefs_dictionary_set_optmenu(PrefParam *pparam)
-{
- GList *cur;
- GtkOptionMenu *optmenu = GTK_OPTION_MENU(*pparam->widget);
- GtkWidget *menu;
- GtkWidget *menuitem;
- gchar *dict_name;
- gint n = 0;
-
- g_return_if_fail(optmenu != NULL);
- g_return_if_fail(pparam->data != NULL);
-
- if (*(gchar **) pparam->data) {
- menu = gtk_option_menu_get_menu(optmenu);
- for (cur = GTK_MENU_SHELL(menu)->children;
- cur != NULL; cur = cur->next) {
- menuitem = GTK_WIDGET(cur->data);
- dict_name = gtk_object_get_data(GTK_OBJECT(menuitem),
- "dict_name");
- if (!strcmp2(dict_name, *((gchar **)pparam->data))) {
- gtk_option_menu_set_history(optmenu, n);
- return;
- }
- n++;
- }
- }
-
- gtk_option_menu_set_history(optmenu, 0);
- prefs_dictionary_set_data_from_optmenu(pparam);
-}
-
-static void prefs_speller_sugmode_set_data_from_optmenu(PrefParam *param)
-{
- gint sugmode;
- g_return_if_fail(param);
- g_return_if_fail(param->data);
- g_return_if_fail(param->widget);
- g_return_if_fail(*(param->widget));
-
- sugmode = gtkaspell_get_sugmode_from_option_menu
- (GTK_OPTION_MENU(*(param->widget)));
- *((gint *) param->data) = sugmode;
-}
-
-static void prefs_speller_sugmode_set_optmenu(PrefParam *pparam)
-{
- GtkOptionMenu *optmenu = GTK_OPTION_MENU(*pparam->widget);
- gint sugmode;
-
- g_return_if_fail(optmenu != NULL);
- g_return_if_fail(pparam->data != NULL);
-
- sugmode = *(gint *) pparam->data;
- gtkaspell_sugmode_option_menu_set(optmenu, sugmode);
-}
-
-
-static void prefs_spelling_checkbtn_enable_aspell_toggle_cb
- (GtkWidget *widget,
- gpointer data)
-{
- gboolean toggled;
-
- toggled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
-
- gtk_widget_set_sensitive(spelling.entry_aspell_path, toggled);
- gtk_widget_set_sensitive(spelling.optmenu_dictionary, toggled);
- gtk_widget_set_sensitive(spelling.optmenu_sugmode, toggled);
- gtk_widget_set_sensitive(spelling.btn_aspell_path, toggled);
- gtk_widget_set_sensitive(spelling.misspelled_btn, toggled);
- gtk_widget_set_sensitive(spelling.checkbtn_use_alternate, toggled);
- gtk_widget_set_sensitive(spelling.checkbtn_check_while_typing, toggled);
-}
-
-static void prefs_spelling_btn_aspell_path_clicked_cb(GtkWidget *widget,
- gpointer data)
-{
- gchar *file_path, *tmp;
- GtkWidget *new_menu;
-
- file_path = filesel_select_file(_("Select dictionaries location"),
- prefs_common.aspell_path);
- if (file_path == NULL) {
- /* don't change */
- }
- else {
- tmp=g_dirname(file_path);
-
- if (prefs_common.aspell_path)
- g_free(prefs_common.aspell_path);
- prefs_common.aspell_path = g_strdup_printf("%s%s",tmp,
- G_DIR_SEPARATOR_S);
-
- new_menu = gtkaspell_dictionary_option_menu_new(prefs_common.aspell_path);
- gtk_option_menu_set_menu(GTK_OPTION_MENU(spelling.optmenu_dictionary),
- new_menu);
-
- gtk_entry_set_text(GTK_ENTRY(spelling.entry_aspell_path),
- prefs_common.aspell_path);
- /* select first one */
- gtk_option_menu_set_history(GTK_OPTION_MENU(
- spelling.optmenu_dictionary), 0);
-
- if (prefs_common.dictionary)
- g_free(prefs_common.dictionary);
-
- prefs_common.dictionary =
- gtkaspell_get_dictionary_menu_active_item(
- gtk_option_menu_get_menu(
- GTK_OPTION_MENU(
- spelling.optmenu_dictionary)));
- g_free(tmp);
-
- }
-}
-
-static void prefs_spelling_create()
-{
- GtkWidget *vbox1;
- GtkWidget *frame_spell;
- GtkWidget *vbox_spell;
- GtkWidget *hbox_aspell_path;
- GtkWidget *checkbtn_enable_aspell;
- GtkWidget *label_aspell_path;
- GtkWidget *entry_aspell_path;
- GtkWidget *btn_aspell_path;
- GtkWidget *spell_table;
- GtkWidget *label_dictionary;
- GtkWidget *optmenu_dictionary;
- GtkWidget *sugmode_label;
- GtkWidget *sugmode_optmenu;
- GtkWidget *checkbtn_use_alternate;
- GtkWidget *help_label;
- GtkWidget *checkbtn_check_while_typing;
- GtkWidget *color_label;
- GtkWidget *col_align;
-
- vbox1 = gtk_vbox_new (FALSE, VSPACING);
- gtk_widget_show (vbox1);
- gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
- gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
-
- /* spell checker defaults */
- PACK_FRAME(vbox1, frame_spell, _("Global spelling checker settings"));
- vbox_spell = gtk_vbox_new(FALSE, VSPACING_NARROW);
- gtk_widget_show (vbox_spell);
- gtk_container_add(GTK_CONTAINER(frame_spell), vbox_spell);
- gtk_container_set_border_width(GTK_CONTAINER(vbox_spell), 8);
-
- PACK_CHECK_BUTTON(vbox_spell, checkbtn_enable_aspell,
- _("Enable spell checker"));
-
- gtk_signal_connect(GTK_OBJECT(checkbtn_enable_aspell), "toggled",
- GTK_SIGNAL_FUNC(prefs_spelling_checkbtn_enable_aspell_toggle_cb),
- NULL);
-
- /* Check while typing */
- PACK_CHECK_BUTTON(vbox_spell, checkbtn_check_while_typing,
- _("Check while typing"));
-
- PACK_CHECK_BUTTON(vbox_spell, checkbtn_use_alternate,
- _("Enable alternate dictionary"));
-
- help_label = gtk_label_new(_("Enabling an alternate dictionary makes switching\n"
- "with the last used dictionary faster."));
- gtk_misc_set_alignment (GTK_MISC (help_label), 0, 0);
- gtk_widget_show(help_label);
- gtk_box_pack_start(GTK_BOX(vbox_spell), help_label, FALSE, TRUE, 0);
-
- spell_table = gtk_table_new(4, 3, FALSE);
- gtk_container_set_border_width (GTK_CONTAINER (spell_table), VSPACING);
- gtk_table_set_row_spacings(GTK_TABLE(spell_table), 8);
- gtk_table_set_col_spacings(GTK_TABLE(spell_table), 8);
-
- gtk_box_pack_start(GTK_BOX(vbox_spell), spell_table, TRUE, TRUE, 0);
-
- label_aspell_path = gtk_label_new (_("Dictionaries path:"));
- gtk_misc_set_alignment(GTK_MISC(label_aspell_path), 1.0, 0.5);
- gtk_widget_show(label_aspell_path);
- gtk_table_attach (GTK_TABLE (spell_table), label_aspell_path, 0, 1, 0,
- 1, GTK_FILL, (GTK_EXPAND | GTK_FILL), 0, 0);
-
- hbox_aspell_path = gtk_hbox_new (FALSE, 8);
- gtk_table_attach (GTK_TABLE (spell_table), hbox_aspell_path, 1, 2, 0,
- 1, GTK_FILL, (GTK_EXPAND | GTK_FILL), 0, 0);
- gtk_widget_show(hbox_aspell_path);
-
- entry_aspell_path = gtk_entry_new();
- gtk_widget_show(entry_aspell_path);
- gtk_box_pack_start(GTK_BOX(hbox_aspell_path), entry_aspell_path, TRUE,
- TRUE, 0);
-
- gtk_widget_set_sensitive(entry_aspell_path, prefs_common.enable_aspell);
-
- btn_aspell_path = gtk_button_new_with_label(" ... ");
- gtk_widget_show(btn_aspell_path);
- gtk_box_pack_start(GTK_BOX(hbox_aspell_path), btn_aspell_path, FALSE, FALSE, 0);
- gtk_widget_set_sensitive(btn_aspell_path, prefs_common.enable_aspell);
-
- gtk_signal_connect(GTK_OBJECT(btn_aspell_path), "clicked",
- GTK_SIGNAL_FUNC(prefs_spelling_btn_aspell_path_clicked_cb),
- NULL);
-
- label_dictionary = gtk_label_new(_("Default dictionary:"));
- gtk_misc_set_alignment(GTK_MISC(label_dictionary), 1.0, 0.5);
- gtk_widget_show(label_dictionary);
- gtk_table_attach (GTK_TABLE (spell_table), label_dictionary, 0, 1, 1, 2,
- GTK_FILL, (GTK_EXPAND | GTK_FILL), 0, 0);
-
- optmenu_dictionary = gtk_option_menu_new();
- gtk_widget_show(optmenu_dictionary);
- gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu_dictionary),
- gtkaspell_dictionary_option_menu_new(
- prefs_common.aspell_path));
- gtk_table_attach (GTK_TABLE (spell_table), optmenu_dictionary, 1, 2, 1,
- 2, GTK_FILL, (GTK_EXPAND | GTK_FILL), 0, 0);
- gtk_widget_set_sensitive(optmenu_dictionary, prefs_common.enable_aspell);
-
- /* Suggestion mode */
- sugmode_label = gtk_label_new(_("Default suggestion mode"));
- gtk_misc_set_alignment(GTK_MISC(sugmode_label), 1.0, 0.5);
- gtk_widget_show(sugmode_label);
- gtk_table_attach(GTK_TABLE (spell_table), sugmode_label, 0, 1, 2, 3,
- GTK_FILL, (GTK_EXPAND | GTK_FILL), 0, 0);
-
- sugmode_optmenu = gtk_option_menu_new();
- gtk_widget_show(sugmode_optmenu);
- gtk_option_menu_set_menu(GTK_OPTION_MENU(sugmode_optmenu),
- gtkaspell_sugmode_option_menu_new(prefs_common.aspell_sugmode));
- gtk_table_attach(GTK_TABLE(spell_table), sugmode_optmenu, 1, 2, 2, 3,
- GTK_FILL, (GTK_EXPAND | GTK_FILL), 0, 0);
- gtk_widget_set_sensitive(sugmode_optmenu, prefs_common.enable_aspell);
-
- /* Color */
- color_label = gtk_label_new(_("Misspelled word color:"));
- gtk_misc_set_alignment(GTK_MISC(color_label), 1.0, 0.5);
- gtk_table_attach (GTK_TABLE (spell_table), color_label, 0, 1, 3, 4,
- GTK_FILL, GTK_SHRINK, 0, 0);
- gtk_widget_show(color_label);
-
- col_align = gtk_alignment_new(0.0, 0.5, 0, 0);
- gtk_widget_show(col_align);
- gtk_table_attach (GTK_TABLE (spell_table), col_align, 1, 2, 3, 4,
- GTK_FILL, GTK_SHRINK, 0, 0);
-
- spelling.misspelled_btn = gtk_button_new_with_label ("");
- set_button_bg_color(spelling.misspelled_btn,
- prefs_common.misspelled_col);
- gtk_widget_set_usize (spelling.misspelled_btn, 30, 20);
- gtk_widget_set_sensitive(spelling.misspelled_btn, prefs_common.enable_aspell);
- gtk_signal_connect (GTK_OBJECT (spelling.misspelled_btn), "clicked",
- GTK_SIGNAL_FUNC(quote_color_set_dialog), "Misspelled word");
- gtk_container_add(GTK_CONTAINER(col_align), spelling.misspelled_btn);
-
-
- spelling.checkbtn_enable_aspell = checkbtn_enable_aspell;
- spelling.entry_aspell_path = entry_aspell_path;
- spelling.btn_aspell_path = btn_aspell_path;
- spelling.optmenu_dictionary = optmenu_dictionary;
- spelling.optmenu_sugmode = sugmode_optmenu;
- spelling.checkbtn_use_alternate = checkbtn_use_alternate;
- spelling.checkbtn_check_while_typing = checkbtn_check_while_typing;
-}
-
-#endif
-
-
static void prefs_compose_create(void)
{
GtkWidget *vbox1;
PACK_CHECK_BUTTON (hbox1, chkbtn_enablecol,
_("Enable coloration of message"));
- gtk_signal_connect (GTK_OBJECT (chkbtn_enablecol), "toggled",
- GTK_SIGNAL_FUNC (prefs_enable_message_color_toggled),
- NULL);
+ gtk_signal_connect(GTK_OBJECT(chkbtn_enablecol), "toggled",
+ GTK_SIGNAL_FUNC(prefs_enable_message_color_toggled),
+ NULL);
button_edit_col = gtk_button_new_with_label (_(" Edit... "));
gtk_widget_show (button_edit_col);
GtkWidget *checkbtn_store_passphrase;
GtkObject *spinbtn_store_passphrase_adj;
GtkWidget *spinbtn_store_passphrase;
+ GtkTooltips *store_tooltip;
GtkWidget *checkbtn_passphrase_grab;
GtkWidget *checkbtn_gpg_warning;
gtk_widget_show (label);
gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 0);
+ store_tooltip = gtk_tooltips_new();
+
spinbtn_store_passphrase_adj = gtk_adjustment_new (0, 0, 1440, 1, 5, 5);
spinbtn_store_passphrase = gtk_spin_button_new
(GTK_ADJUSTMENT (spinbtn_store_passphrase_adj), 1, 0);
gtk_widget_show (spinbtn_store_passphrase);
- gtk_box_pack_start (GTK_BOX (hbox1), spinbtn_store_passphrase, FALSE, FALSE, 0);
+ gtk_tooltips_set_tip(GTK_TOOLTIPS(store_tooltip), spinbtn_store_passphrase,
+ _("Setting to '0' will store the passphrase"
+ " for the whole session"),
+ NULL);
+ gtk_box_pack_start (GTK_BOX (hbox1), spinbtn_store_passphrase, FALSE, FALSE, 0);
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_store_passphrase),
TRUE);
gtk_widget_set_usize (spinbtn_store_passphrase, 64, -1);
gtk_box_pack_start (GTK_BOX (hbox1), hbox_spc, FALSE, FALSE, 0);
gtk_widget_set_usize (hbox_spc, 12, -1);
- label = gtk_label_new (_("(Setting to '0' will store the passphrase\n"
- " for the whole session)"));
- gtk_widget_show (label);
- gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 0);
- gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
-
SET_TOGGLE_SENSITIVITY (checkbtn_store_passphrase, vbox3);
#ifndef __MINGW32__
GtkWidget *checkbtn_mark_as_read_on_newwin;
GtkWidget *checkbtn_openinbox;
GtkWidget *checkbtn_immedexec;
+ GtkTooltips *immedexec_tooltip;
GtkWidget *hbox1;
GtkWidget *label;
GtkWidget *menu;
gtk_widget_show (vbox3);
gtk_box_pack_start (GTK_BOX (vbox2), vbox3, FALSE, FALSE, 0);
+ immedexec_tooltip = gtk_tooltips_new();
+
PACK_CHECK_BUTTON
(vbox3, checkbtn_immedexec,
_("Execute immediately when moving or deleting messages"));
+ gtk_tooltips_set_tip(GTK_TOOLTIPS(immedexec_tooltip), checkbtn_immedexec,
+ _("Messages will be marked until execution"
+ " if this is turned off"),
+ NULL);
hbox1 = gtk_hbox_new (FALSE, 0);
gtk_widget_show (hbox1);
gtk_box_pack_start (GTK_BOX (vbox3), hbox1, FALSE, FALSE, 0);
- label = gtk_label_new
- (_("(Messages will be marked until execution\n"
- " if this is turned off)"));
- gtk_widget_show (label);
- gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 8);
- gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
-
/* Next Unread Message Dialog */
hbox_nextunreadmsgdialog = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox1);
GtkWidget *checkbtn_cliplog;
GtkWidget *loglength_label;
GtkWidget *loglength_entry;
+ GtkTooltips *loglength_tooltip;
GtkWidget *frame_exit;
GtkWidget *vbox_exit;
GtkWidget *checkbtn_cleanonexit;
GtkWidget *checkbtn_askonclean;
GtkWidget *checkbtn_warnqueued;
+
+ GtkWidget *label_iotimeout;
+ GtkWidget *spinbtn_iotimeout;
+ GtkObject *spinbtn_iotimeout_adj;
+
#if 0
#ifdef USE_OPENSSL
GtkWidget *frame_ssl;
gtk_box_pack_start (GTK_BOX (hbox_cliplog), loglength_label,
FALSE, TRUE, 0);
gtk_widget_show (GTK_WIDGET (loglength_label));
+
+ loglength_tooltip = gtk_tooltips_new();
+
loglength_entry = gtk_entry_new ();
gtk_widget_set_usize (GTK_WIDGET (loglength_entry), 64, -1);
gtk_box_pack_start (GTK_BOX (hbox_cliplog), loglength_entry,
FALSE, TRUE, 0);
gtk_widget_show (GTK_WIDGET (loglength_entry));
- loglength_label = gtk_label_new (_("(0 to stop logging in the log window)"));
+ gtk_tooltips_set_tip(GTK_TOOLTIPS(loglength_tooltip), loglength_entry,
+ _("0 to stop logging in the log window"),
+ NULL);
gtk_box_pack_start (GTK_BOX (hbox_cliplog), loglength_label,
FALSE, TRUE, 0);
SET_TOGGLE_SENSITIVITY(checkbtn_cliplog, loglength_entry);
PACK_CHECK_BUTTON (vbox_exit, checkbtn_warnqueued,
_("Warn if there are queued messages"));
+ hbox1 = gtk_hbox_new (FALSE, 8);
+ gtk_widget_show (hbox1);
+ gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);
+
+ label_iotimeout = gtk_label_new (_("Socket I/O timeout:"));
+ gtk_widget_show (label_iotimeout);
+ gtk_box_pack_start (GTK_BOX (hbox1), label_iotimeout, FALSE, FALSE, 0);
+
+ spinbtn_iotimeout_adj = gtk_adjustment_new (60, 0, 1000, 1, 10, 10);
+ spinbtn_iotimeout = gtk_spin_button_new
+ (GTK_ADJUSTMENT (spinbtn_iotimeout_adj), 1, 0);
+ gtk_widget_show (spinbtn_iotimeout);
+ gtk_box_pack_start (GTK_BOX (hbox1), spinbtn_iotimeout,
+ FALSE, FALSE, 0);
+ gtk_widget_set_usize (spinbtn_iotimeout, 64, -1);
+ gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_iotimeout), TRUE);
+
+ label_iotimeout = gtk_label_new (_("seconds"));
+ gtk_widget_show (label_iotimeout);
+ gtk_box_pack_start (GTK_BOX (hbox1), label_iotimeout, FALSE, FALSE, 0);
+
other.uri_combo = uri_combo;
other.uri_entry = uri_entry;
other.printcmd_entry = printcmd_entry;
other.checkbtn_cleanonexit = checkbtn_cleanonexit;
other.checkbtn_askonclean = checkbtn_askonclean;
other.checkbtn_warnqueued = checkbtn_warnqueued;
+
+ other.spinbtn_iotimeout = spinbtn_iotimeout;
+ other.spinbtn_iotimeout_adj = spinbtn_iotimeout_adj;
#if 0
#ifdef USE_OPENSSL
} else if(g_strcasecmp(type, "SIGNATURE") == 0) {
title = _("Pick color for signatures");
rgbvalue = prefs_common.signature_col;
-#if USE_ASPELL
- } else if(g_strcasecmp(type, "Misspelled word") == 0) {
- title = _("Pick color for misspelled word");
- rgbvalue = prefs_common.misspelled_col;
-#endif
} else { /* Should never be called */
g_warning("Unrecognized datatype '%s' in quote_color_set_dialog\n", type);
return;
} else if (g_strcasecmp(type, "SIGNATURE") == 0) {
prefs_common.signature_col = rgbvalue;
set_button_bg_color(color_buttons.signature_btn, rgbvalue);
-#if USE_ASPELL
- } else if (g_strcasecmp(type, "Misspelled word") == 0) {
- prefs_common.misspelled_col = rgbvalue;
- set_button_bg_color(spelling.misspelled_btn, rgbvalue);
-#endif
} else
fprintf( stderr, "Unrecognized datatype '%s' in quote_color_set_dialog_ok\n", type );
{
gchar *entry_pixmap_theme_str;
gboolean update_pixmap_theme;
+ gchar *backup_theme_path;
+ MainWindow *mainwindow;
entry_pixmap_theme_str = gtk_entry_get_text(GTK_ENTRY(interface.entry_pixmap_theme));
if (entry_pixmap_theme_str &&
update_pixmap_theme = TRUE;
else
update_pixmap_theme = FALSE;
-
+
+ /*!< FIXME: prefs_set_data_from_dialog() clears and frees all strings,
+ * but prefs_common.pixmap_theme_path is stored in the StockPixmapData
+ * in stock_pixmap.c::pixmaps[].icon_path, and used when reflecting
+ * the pixmap changes. Work around by saving the old one and freeing
+ * it later. */
+ backup_theme_path = prefs_common.pixmap_theme_path;
+ prefs_common.pixmap_theme_path = g_strdup(backup_theme_path);
prefs_set_data_from_dialog(param);
+ sock_set_io_timeout(prefs_common.io_timeout_secs);
- if (update_pixmap_theme)
- {
+ if (update_pixmap_theme) {
main_window_reflect_prefs_all_real(TRUE);
compose_reflect_prefs_pixmap_theme();
} else
main_window_reflect_prefs_all_real(FALSE);
-
+
+ /*!< FIXME: Now it's safe to delete the backup path */
+ g_free(backup_theme_path);
+
prefs_common_save_config();
+ mainwindow = mainwindow_get_mainwindow();
+ log_window_set_clipping(mainwindow->logwin, prefs_common.cliplog,
+ prefs_common.loglength);
+
inc_autocheck_timer_remove();
inc_autocheck_timer_set();
}