2005-12-04 [paul] 1.9.100cvs60
[claws.git] / src / prefs_account.c
index f99a23aa09d40fd8f1919c3a205a5eadd5cf7efa..76cc92a6e4aefe432025c012d1b69eb9bb224cde 100644 (file)
@@ -38,6 +38,7 @@
 #include "main.h"
 #include "prefs_gtk.h"
 #include "prefs_account.h"
+#include "prefs_common.h"
 #include "prefs_customheader.h"
 #include "account.h"
 #include "mainwindow.h"
@@ -109,6 +110,11 @@ static struct Receive {
        GtkWidget *inbox_entry;
        GtkWidget *inbox_btn;
 
+       GtkWidget *local_frame;
+       GtkWidget *local_inbox_label;
+       GtkWidget *local_inbox_entry;
+       GtkWidget *local_inbox_btn;
+
        GtkWidget *filter_on_recv_chkbtn;
        GtkWidget *recvatgetall_chkbtn;
        
@@ -298,6 +304,9 @@ static PrefParam param[] = {
        {"inbox", "#mh/Mailbox/inbox", &tmp_ac_prefs.inbox, P_STRING,
         &receive.inbox_entry, prefs_set_data_from_entry, prefs_set_entry},
 
+       {"local_inbox", "#mh/Mailbox/inbox", &tmp_ac_prefs.local_inbox, P_STRING,
+        &receive.local_inbox_entry, prefs_set_data_from_entry, prefs_set_entry},
+
        /* Receive */
        {"use_apop_auth", "FALSE", &tmp_ac_prefs.use_apop_auth, P_BOOL,
         &receive.use_apop_chkbtn,
@@ -963,7 +972,8 @@ PrefsAccount *prefs_account_open(PrefsAccount *ac_prefs)
                title = g_strdup_printf (_("%s - Account preferences"),
                                ac_prefs->account_name);
 
-       prefswindow_open_full(title, prefs_pages, ac_prefs, destroy_dialog);
+       prefswindow_open_full(title, prefs_pages, ac_prefs, destroy_dialog,
+                       &prefs_common.editaccountwin_width, &prefs_common.editaccountwin_height);
        g_free(title);
        gtk_main();
 
@@ -1197,14 +1207,14 @@ static void prefs_account_basic_create(void)
                (_("This server requires authentication"));
        gtk_widget_show (nntpauth_chkbtn);
        
-       gtk_table_attach (GTK_TABLE (serv_table), nntpauth_chkbtn, 0, 2, 1, 2,
+       gtk_table_attach (GTK_TABLE (serv_table), nntpauth_chkbtn, 0, 2, 6, 7,
                          GTK_FILL, 0, 0, 0);
 
        nntpauth_onconnect_chkbtn = gtk_check_button_new_with_label
                (_("Authenticate on connect"));
        gtk_widget_show (nntpauth_onconnect_chkbtn);
 
-       gtk_table_attach (GTK_TABLE (serv_table), nntpauth_onconnect_chkbtn, 2, 4, 1, 2,
+       gtk_table_attach (GTK_TABLE (serv_table), nntpauth_onconnect_chkbtn, 2, 4, 6, 7,
                          GTK_FILL, 0, 0, 0);
 
        recvserv_entry = gtk_entry_new ();
@@ -1358,6 +1368,12 @@ static void prefs_account_receive_create(void)
        GtkWidget *imap_frame;
        GtkWidget *imapdir_label;
        GtkWidget *imapdir_entry;
+       GtkWidget *local_frame;
+       GtkWidget *local_vbox;
+       GtkWidget *local_hbox;
+       GtkWidget *local_inbox_label;
+       GtkWidget *local_inbox_entry;
+       GtkWidget *local_inbox_btn;
 
        GtkWidget *optmenu;
        GtkWidget *optmenu_menu;
@@ -1375,12 +1391,39 @@ static void prefs_account_receive_create(void)
        gtk_container_add (GTK_CONTAINER (notebook), vbox1);
        gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
 
+       PACK_FRAME (vbox1, local_frame, _("Local"));
+
+       local_vbox = gtk_vbox_new (FALSE, 0);
+       gtk_widget_show (local_vbox);
+       gtk_container_add (GTK_CONTAINER (local_frame), local_vbox);
+       gtk_container_set_border_width (GTK_CONTAINER (local_vbox), VBOX_BORDER);
+
+       local_hbox = gtk_hbox_new (FALSE, 8);
+       gtk_widget_show (local_hbox);
+       gtk_box_pack_start (GTK_BOX (local_vbox), local_hbox, FALSE, FALSE, 0);
+
+       local_inbox_label = gtk_label_new (_("Default inbox"));
+       gtk_widget_show (local_inbox_label);
+       gtk_box_pack_start (GTK_BOX (local_hbox), local_inbox_label, FALSE, FALSE, 0);
+
+       local_inbox_entry = gtk_entry_new ();
+       gtk_widget_show (local_inbox_entry);
+       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 = gtk_button_new_with_label (_(" Select... "));
+       gtk_widget_show (local_inbox_btn);
+       gtk_box_pack_start (GTK_BOX (local_hbox), local_inbox_btn, FALSE, FALSE, 0);
+       g_signal_connect (G_OBJECT (local_inbox_btn), "clicked",
+                         G_CALLBACK (prefs_account_select_folder_cb),
+                         local_inbox_entry);
+
        PACK_FRAME (vbox1, frame1, _("POP3"));
 
        vbox2 = gtk_vbox_new (FALSE, 0);
        gtk_widget_show (vbox2);
        gtk_container_add (GTK_CONTAINER (frame1), vbox2);
-       gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8);
+       gtk_container_set_border_width (GTK_CONTAINER (vbox2), VBOX_BORDER);
 
        PACK_CHECK_BUTTON (vbox2, use_apop_chkbtn,
                           _("Use secure authentication (APOP)"));
@@ -1515,7 +1558,7 @@ static void prefs_account_receive_create(void)
        vbox2 = gtk_vbox_new (FALSE, 0);
        gtk_widget_show (vbox2);
        gtk_container_add (GTK_CONTAINER (imap_frame), vbox2);
-       gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8);
+       gtk_container_set_border_width (GTK_CONTAINER (vbox2), VBOX_BORDER);
 
        hbox1 = gtk_hbox_new (FALSE, 8);
        gtk_widget_show (hbox1);
@@ -1574,6 +1617,11 @@ static void prefs_account_receive_create(void)
        receive.imapdir_label           = imapdir_label;
        receive.imapdir_entry           = imapdir_entry;
 
+       receive.local_frame             = local_frame;
+       receive.local_inbox_label       = local_inbox_label;
+       receive.local_inbox_entry       = local_inbox_entry;
+       receive.local_inbox_btn         = local_inbox_btn;
+
        receive.recvatgetall_chkbtn      = recvatgetall_chkbtn;
 
        receive.frame_maxarticle        = frame2;
@@ -1859,13 +1907,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);
 
-#if GTK_CHECK_VERSION(2, 6, 0)
-       signature_browse_button = gtk_button_new_with_mnemonic(_("_Browse"));
-       gtk_button_set_image((GtkButton*)signature_browse_button,
-               gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_BUTTON));
-#else
-       signature_browse_button = gtk_button_new_from_stock(GTK_STOCK_OPEN);
-#endif
+       signature_browse_button = gtkut_get_browse_file_btn(_("_Browse"));
        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",
@@ -1963,7 +2005,7 @@ static void prefs_account_privacy_create(void)
 
        default_privacy_system = gtk_option_menu_new();
        gtk_widget_show (default_privacy_system);
-       gtk_box_pack_start (GTK_BOX(hbox1), default_privacy_system, TRUE, TRUE, 0);
+       gtk_box_pack_start (GTK_BOX(hbox1), default_privacy_system, FALSE, TRUE, 0);
 
        PACK_CHECK_BUTTON (vbox2, default_encrypt_chkbtn,
                           _("Encrypt message by default"));
@@ -2464,7 +2506,7 @@ static gint prefs_account_apply(void)
        if (protocol == A_IMAP4 || protocol == A_NNTP) 
                old_id = g_strdup_printf("#%s/%s",
                                protocol == A_IMAP4 ? "imap":"nntp",
-                               tmp_ac_prefs.account_name);
+                               tmp_ac_prefs.account_name ? tmp_ac_prefs.account_name : "(null)");
        
        prefs_set_data_from_dialog(param);
        
@@ -2804,6 +2846,7 @@ static void prefs_account_protocol_activated(GtkMenuItem *menuitem)
                        (GTK_TOGGLE_BUTTON(basic.nntpauth_chkbtn), NULL);
                gtk_widget_hide(receive.pop3_frame);
                gtk_widget_hide(receive.imap_frame);
+               gtk_widget_hide(receive.local_frame);
                gtk_widget_show(receive.frame_maxarticle);
                gtk_widget_set_sensitive(receive.filter_on_recv_chkbtn, TRUE);
                gtk_widget_set_sensitive(receive.recvatgetall_chkbtn, TRUE);
@@ -2882,6 +2925,7 @@ static void prefs_account_protocol_activated(GtkMenuItem *menuitem)
                gtk_widget_set_sensitive(basic.pass_entry, TRUE);
                gtk_widget_hide(receive.pop3_frame);
                gtk_widget_hide(receive.imap_frame);
+               gtk_widget_show(receive.local_frame);
                gtk_widget_hide(receive.frame_maxarticle);
                gtk_widget_set_sensitive(receive.filter_on_recv_chkbtn, TRUE);
                gtk_widget_set_sensitive(receive.recvatgetall_chkbtn, TRUE);
@@ -2966,6 +3010,7 @@ static void prefs_account_protocol_activated(GtkMenuItem *menuitem)
                gtk_widget_set_sensitive(basic.pass_entry, TRUE);
                gtk_widget_hide(receive.pop3_frame);
                gtk_widget_show(receive.imap_frame);
+               gtk_widget_hide(receive.local_frame);
                gtk_widget_hide(receive.frame_maxarticle);
                gtk_widget_set_sensitive(receive.filter_on_recv_chkbtn, TRUE);
                gtk_widget_set_sensitive(receive.recvatgetall_chkbtn, TRUE);
@@ -3051,6 +3096,7 @@ static void prefs_account_protocol_activated(GtkMenuItem *menuitem)
                gtk_widget_set_sensitive(receive.pop3_frame, FALSE);
                gtk_widget_hide(receive.pop3_frame);
                gtk_widget_hide(receive.imap_frame);
+               gtk_widget_hide(receive.local_frame);
                gtk_widget_hide(receive.frame_maxarticle);
                gtk_widget_set_sensitive(receive.filter_on_recv_chkbtn, FALSE);
                gtk_widget_set_sensitive(receive.recvatgetall_chkbtn, FALSE);
@@ -3132,6 +3178,7 @@ static void prefs_account_protocol_activated(GtkMenuItem *menuitem)
                gtk_widget_set_sensitive(receive.pop3_frame, TRUE);
                gtk_widget_show(receive.pop3_frame);
                gtk_widget_hide(receive.imap_frame);
+               gtk_widget_hide(receive.local_frame);
                gtk_widget_hide(receive.frame_maxarticle);
                gtk_widget_set_sensitive(receive.filter_on_recv_chkbtn, TRUE);
                gtk_widget_set_sensitive(receive.recvatgetall_chkbtn, TRUE);