2006-06-21 [paul] 2.3.1cvs10
[claws.git] / src / prefs_account.c
index cde192257d2c1542a464de8c19508a3a0e765f85..afa4c6ee49f5ae0598bdcfd22e91d4123a3c23a6 100644 (file)
@@ -131,7 +131,6 @@ static struct Receive {
 } receive;
 
 static struct Send {
-       GtkWidget *date_chkbtn;
        GtkWidget *msgid_chkbtn;
        GtkWidget *customhdr_chkbtn;
        GtkWidget *smtp_auth_chkbtn;
@@ -140,6 +139,8 @@ static struct Send {
        GtkWidget *smtp_pass_entry;
        GtkWidget *pop_bfr_smtp_chkbtn;
        GtkWidget *pop_bfr_smtp_tm_entry;
+       GtkWidget *pop_auth_timeout_lbl;
+       GtkWidget *pop_auth_minutes_lbl;
 } p_send;
 
 static struct Compose {
@@ -161,6 +162,7 @@ static struct Privacy {
        GtkWidget *default_encrypt_reply_chkbtn;
        GtkWidget *default_sign_chkbtn;
        GtkWidget *save_clear_text_chkbtn;
+       GtkWidget *encrypt_to_self_chkbtn;
 } privacy;
 
 #if USE_OPENSSL
@@ -317,7 +319,7 @@ static PrefParam param[] = {
         &receive.rmmail_chkbtn,
         prefs_set_data_from_toggle, prefs_set_toggle},
 
-       {"message_leave_time", "0", &tmp_ac_prefs.msg_leave_time, P_INT,
+       {"message_leave_time", "7", &tmp_ac_prefs.msg_leave_time, P_INT,
         &receive.leave_time_entry,
         prefs_set_data_from_entry, prefs_set_entry},
 
@@ -350,10 +352,6 @@ static PrefParam param[] = {
         prefs_set_data_from_spinbtn, prefs_set_spinbtn},
 
        /* Send */
-       {"add_date", "TRUE", &tmp_ac_prefs.add_date, P_BOOL,
-        &p_send.date_chkbtn,
-        prefs_set_data_from_toggle, prefs_set_toggle},
-
        {"generate_msgid", "TRUE", &tmp_ac_prefs.gen_msgid, P_BOOL,
         &p_send.msgid_chkbtn,
         prefs_set_data_from_toggle, prefs_set_toggle},
@@ -441,6 +439,9 @@ static PrefParam param[] = {
        {"save_clear_text", "FALSE", &tmp_ac_prefs.save_encrypted_as_clear_text, P_BOOL,
         &privacy.save_clear_text_chkbtn,
         prefs_set_data_from_toggle, prefs_set_toggle},
+       {"encrypt_to_self", "FALSE", &tmp_ac_prefs.encrypt_to_self, P_BOOL,
+        &privacy.encrypt_to_self_chkbtn,
+        prefs_set_data_from_toggle, prefs_set_toggle},
        {"privacy_prefs", "", &privacy_prefs, P_STRING,
         NULL, NULL, NULL},
 #if USE_OPENSSL
@@ -628,7 +629,10 @@ static void privacy_system_activated(GtkMenuItem *menuitem)
        gtk_widget_set_sensitive (privacy.default_encrypt_chkbtn, privacy_enabled);
        gtk_widget_set_sensitive (privacy.default_encrypt_reply_chkbtn, privacy_enabled);
        gtk_widget_set_sensitive (privacy.default_sign_chkbtn, privacy_enabled);
-       gtk_widget_set_sensitive (privacy.save_clear_text_chkbtn, privacy_enabled);
+       gtk_widget_set_sensitive (privacy.encrypt_to_self_chkbtn, privacy_enabled);
+       gtk_widget_set_sensitive (privacy.save_clear_text_chkbtn, 
+               privacy_enabled && !gtk_toggle_button_get_active(
+                                       GTK_TOGGLE_BUTTON(privacy.encrypt_to_self_chkbtn)));
 }
 
 void update_privacy_system_menu() {
@@ -947,7 +951,8 @@ void destroy_dialog(gpointer data)
        PrefsAccount *ac_prefs = (PrefsAccount *) data;
        if (!cancelled)
                *ac_prefs = tmp_ac_prefs;
-
+       else /* the customhdr_list may have changed, update it anyway */
+               ac_prefs->customhdr_list = (&tmp_ac_prefs)->customhdr_list;
        gtk_main_quit();
 }
 
@@ -1008,21 +1013,21 @@ static void prefs_account_create(void)
 
        /* create all widgets on notebook */
        prefs_account_basic_create();
-       SET_NOTEBOOK_LABEL(notebook, _("Basic"), page++);
+       SET_NOTEBOOK_LABEL(notebook, _("_Basic"), page++);
        prefs_account_receive_create();
-       SET_NOTEBOOK_LABEL(notebook, _("Receive"), page++);
+       SET_NOTEBOOK_LABEL(notebook, _("_Receive"), page++);
        prefs_account_send_create();
-       SET_NOTEBOOK_LABEL(notebook, _("Send"), page++);
+       SET_NOTEBOOK_LABEL(notebook, _("_Send"), page++);
        prefs_account_compose_create();
-       SET_NOTEBOOK_LABEL(notebook, _("Compose"), page++);
+       SET_NOTEBOOK_LABEL(notebook, _("Co_mpose"), page++);
        prefs_account_privacy_create();
-       SET_NOTEBOOK_LABEL(notebook, _("Privacy"), page++);
+       SET_NOTEBOOK_LABEL(notebook, _("_Privacy"), page++);
 #if USE_OPENSSL
        prefs_account_ssl_create();
-       SET_NOTEBOOK_LABEL(notebook, _("SSL"), page++);
+       SET_NOTEBOOK_LABEL(notebook, _("SS_L"), page++);
 #endif /* USE_OPENSSL */
        prefs_account_advanced_create();
-       SET_NOTEBOOK_LABEL(notebook, _("Advanced"), page++);
+       SET_NOTEBOOK_LABEL(notebook, _("A_dvanced"), page++);
 
        prefs_account_fix_size();
 }
@@ -1425,7 +1430,7 @@ static void prefs_account_receive_create(void)
        gtk_widget_set_size_request (local_inbox_entry, DEFAULT_ENTRY_WIDTH, -1);
        gtk_box_pack_start (GTK_BOX (local_hbox), local_inbox_entry, TRUE, TRUE, 0);
 
-       local_inbox_btn = gtkut_get_browse_file_btn(_("_Browse"));
+       local_inbox_btn = gtkut_get_browse_file_btn(_("Bro_wse"));
        gtk_widget_show (local_inbox_btn);
        gtk_tooltips_set_tip(GTK_TOOLTIPS(inbox_tooltip), local_inbox_btn,
                             _("Unfiltered messages will be stored in this folder"),
@@ -1520,7 +1525,7 @@ static void prefs_account_receive_create(void)
        gtk_widget_set_size_request (inbox_entry, DEFAULT_ENTRY_WIDTH, -1);
        gtk_box_pack_start (GTK_BOX (hbox1), inbox_entry, TRUE, TRUE, 0);
 
-       inbox_btn = gtkut_get_browse_file_btn(_("_Browse"));
+       inbox_btn = gtkut_get_browse_file_btn(_("Bro_wse"));
        gtk_widget_show (inbox_btn);
        gtk_tooltips_set_tip(GTK_TOOLTIPS(inbox_tooltip), inbox_btn,
                             _("Unfiltered messages will be stored in this folder"),
@@ -1585,6 +1590,7 @@ static void prefs_account_receive_create(void)
        MENUITEM_ADD (optmenu_menu, menuitem, _("Automatic"), 0);
        MENUITEM_ADD (optmenu_menu, menuitem, "LOGIN", IMAP_AUTH_LOGIN);
        MENUITEM_ADD (optmenu_menu, menuitem, "CRAM-MD5", IMAP_AUTH_CRAM_MD5);
+       MENUITEM_ADD (optmenu_menu, menuitem, "ANONYMOUS", IMAP_AUTH_ANON);
 
        gtk_option_menu_set_menu (GTK_OPTION_MENU (optmenu), optmenu_menu);
 
@@ -1647,7 +1653,6 @@ static void prefs_account_send_create(void)
        GtkWidget *vbox1;
        GtkWidget *vbox2;
        GtkWidget *frame;
-       GtkWidget *date_chkbtn;
        GtkWidget *msgid_chkbtn;
        GtkWidget *hbox;
        GtkWidget *customhdr_chkbtn;
@@ -1665,6 +1670,8 @@ static void prefs_account_send_create(void)
        GtkWidget *vbox_spc;
        GtkWidget *pop_bfr_smtp_chkbtn;
        GtkWidget *pop_bfr_smtp_tm_entry;
+       GtkWidget *pop_auth_timeout_lbl;
+       GtkWidget *pop_auth_minutes_lbl;
 
        vbox1 = gtk_vbox_new (FALSE, VSPACING);
        gtk_widget_show (vbox1);
@@ -1678,7 +1685,6 @@ static void prefs_account_send_create(void)
        gtk_container_add (GTK_CONTAINER (frame), vbox2);
        gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8);
 
-       PACK_CHECK_BUTTON (vbox2, date_chkbtn, _("Add Date"));
        PACK_CHECK_BUTTON (vbox2, msgid_chkbtn, _("Generate Message-ID"));
 
        hbox = gtk_hbox_new (FALSE, 12);
@@ -1808,22 +1814,21 @@ static void prefs_account_send_create(void)
        gtk_box_pack_start (GTK_BOX (hbox), hbox_spc, FALSE, FALSE, 0);
        gtk_widget_set_size_request (hbox_spc, 12, -1);
 
-       label = gtk_label_new(_("POP authentication timeout: "));
-       gtk_widget_show (label);
-       gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+       pop_auth_timeout_lbl = gtk_label_new(_("POP authentication timeout: "));
+       gtk_widget_show (pop_auth_timeout_lbl);
+       gtk_box_pack_start (GTK_BOX (hbox), pop_auth_timeout_lbl, FALSE, FALSE, 0);
 
        pop_bfr_smtp_tm_entry = gtk_entry_new ();
        gtk_widget_show (pop_bfr_smtp_tm_entry);
        gtk_widget_set_size_request (pop_bfr_smtp_tm_entry, 30, -1);
        gtk_box_pack_start (GTK_BOX (hbox), pop_bfr_smtp_tm_entry, FALSE, FALSE, 0);
 
-       label = gtk_label_new(_("minutes"));
-       gtk_widget_show (label);
-       gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+       pop_auth_minutes_lbl = gtk_label_new(_("minutes"));
+       gtk_widget_show (pop_auth_minutes_lbl);
+       gtk_box_pack_start (GTK_BOX (hbox), pop_auth_minutes_lbl, FALSE, FALSE, 0);
 
 
        
-       p_send.date_chkbtn      = date_chkbtn;
        p_send.msgid_chkbtn     = msgid_chkbtn;
        p_send.customhdr_chkbtn = customhdr_chkbtn;
 
@@ -1833,6 +1838,8 @@ static void prefs_account_send_create(void)
        p_send.smtp_pass_entry        = smtp_pass_entry;
        p_send.pop_bfr_smtp_chkbtn    = pop_bfr_smtp_chkbtn;
        p_send.pop_bfr_smtp_tm_entry  = pop_bfr_smtp_tm_entry;
+       p_send.pop_auth_timeout_lbl   = pop_auth_timeout_lbl;
+       p_send.pop_auth_minutes_lbl   = pop_auth_minutes_lbl;
 }
 
 static void prefs_account_compose_create(void)
@@ -1920,7 +1927,7 @@ static void prefs_account_compose_create(void)
        gtk_widget_show (entry_sigpath);
        gtk_box_pack_start (GTK_BOX (hbox2), entry_sigpath, TRUE, TRUE, 0);
 
-       signature_browse_button = gtkut_get_browse_file_btn(_("_Browse"));
+       signature_browse_button = gtkut_get_browse_file_btn(_("Bro_wse"));
        gtk_widget_show (signature_browse_button);
        gtk_box_pack_start (GTK_BOX (hbox2), signature_browse_button, FALSE, FALSE, 0);
        g_signal_connect(G_OBJECT(signature_browse_button), "clicked",
@@ -2008,6 +2015,7 @@ static void prefs_account_privacy_create(void)
        GtkWidget *default_encrypt_reply_chkbtn;
        GtkWidget *default_sign_chkbtn;
        GtkWidget *save_clear_text_chkbtn;
+       GtkWidget *encrypt_to_self_chkbtn;
 
        vbox1 = gtk_vbox_new (FALSE, VSPACING);
        gtk_widget_show (vbox1);
@@ -2030,21 +2038,26 @@ static void prefs_account_privacy_create(void)
        gtk_widget_show (default_privacy_system);
        gtk_box_pack_start (GTK_BOX(hbox1), default_privacy_system, FALSE, TRUE, 0);
 
+       PACK_CHECK_BUTTON (vbox2, default_sign_chkbtn,
+                          _("Always sign messages"));
        PACK_CHECK_BUTTON (vbox2, default_encrypt_chkbtn,
-                          _("Encrypt message by default"));
+                          _("Always encrypt messages"));
        PACK_CHECK_BUTTON (vbox2, default_encrypt_reply_chkbtn,
-                          _("Encrypt message by default when replying to an "
+                          _("Always encrypt messages when replying to an "
                             "encrypted message"));
-       PACK_CHECK_BUTTON (vbox2, default_sign_chkbtn,
-                          _("Sign message by default"));
+       PACK_CHECK_BUTTON (vbox2, encrypt_to_self_chkbtn,
+                          _("Encrypt sent messages with your own key in addition to recipient's"));
        PACK_CHECK_BUTTON (vbox2, save_clear_text_chkbtn,
                           _("Save sent encrypted messages as clear text"));
 
+       SET_TOGGLE_SENSITIVITY_REVERSE(encrypt_to_self_chkbtn, save_clear_text_chkbtn);
+
        privacy.default_privacy_system = default_privacy_system;
        privacy.default_encrypt_chkbtn = default_encrypt_chkbtn;
        privacy.default_encrypt_reply_chkbtn = default_encrypt_reply_chkbtn;
        privacy.default_sign_chkbtn    = default_sign_chkbtn;
        privacy.save_clear_text_chkbtn = save_clear_text_chkbtn;
+       privacy.encrypt_to_self_chkbtn = encrypt_to_self_chkbtn;
 }
 
 #if USE_OPENSSL
@@ -2549,6 +2562,10 @@ static void pop_bfr_smtp_tm_set_sens(GtkWidget *widget, gpointer data)
 {
        gtk_widget_set_sensitive(p_send.pop_bfr_smtp_tm_entry, 
                                 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(p_send.pop_bfr_smtp_chkbtn)));
+       gtk_widget_set_sensitive(p_send.pop_auth_timeout_lbl, 
+                                gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(p_send.pop_bfr_smtp_chkbtn)));
+       gtk_widget_set_sensitive(p_send.pop_auth_minutes_lbl, 
+                                gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(p_send.pop_bfr_smtp_chkbtn)));
 }
 
 static void prefs_account_select_folder_cb(GtkWidget *widget, gpointer data)
@@ -2702,6 +2719,9 @@ static void prefs_account_imap_auth_type_set_optmenu(PrefParam *pparam)
        case IMAP_AUTH_CRAM_MD5:
                gtk_option_menu_set_history(optmenu, 2);
                break;
+       case IMAP_AUTH_ANON:
+               gtk_option_menu_set_history(optmenu, 3);
+               break;
        case 0:
        default:
                gtk_option_menu_set_history(optmenu, 0);