*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifdef HAVE_CONFIG_H
#include <glib/gi18n.h>
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
+#include <gtk/filesel.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
static PrefsAccount tmp_ac_prefs;
static GtkWidget *notebook;
+static GtkWidget *sigfile_radiobtn;
+static GtkWidget *sigcmd_radiobtn;
+static GtkWidget *entry_sigpath;
+static GtkWidget *signature_browse_button;
static GSList *prefs_pages = NULL;
GtkWidget *imap_frame;
GtkWidget *imap_auth_type_optmenu;
+ GtkWidget *imapdir_label;
+ GtkWidget *imapdir_entry;
GtkWidget *frame_maxarticle;
GtkWidget *label_maxarticle;
GtkWidget *tunnelcmd_chkbtn;
GtkWidget *tunnelcmd_entry;
- GtkWidget *imapdir_label;
- GtkWidget *imapdir_entry;
GtkWidget *sent_folder_chkbtn;
GtkWidget *sent_folder_entry;
{"use_nonblocking_ssl", "1", &tmp_ac_prefs.use_nonblocking_ssl, P_BOOL,
&ssl.use_nonblocking_ssl_chkbtn,
prefs_set_data_from_toggle, prefs_set_toggle},
+#else
+ /* SSL */
+ {"ssl_pop", "0", &tmp_ac_prefs.ssl_pop, P_ENUM,
+ NULL, NULL, NULL},
+ {"ssl_imap", "0", &tmp_ac_prefs.ssl_imap, P_ENUM,
+ NULL, NULL, NULL},
+ {"ssl_nntp", "0", &tmp_ac_prefs.ssl_nntp, P_ENUM,
+ NULL, NULL, NULL},
+ {"ssl_smtp", "0", &tmp_ac_prefs.ssl_smtp, P_ENUM,
+ NULL, NULL, NULL},
+
+ {"use_nonblocking_ssl", "1", &tmp_ac_prefs.use_nonblocking_ssl, P_BOOL,
+ NULL, NULL, NULL},
#endif /* USE_OPENSSL */
/* Advanced */
prefs_account_crosspost_set_colormenu},
{"imap_directory", NULL, &tmp_ac_prefs.imap_dir, P_STRING,
- &advanced.imapdir_entry, prefs_set_data_from_entry, prefs_set_entry},
+ &receive.imapdir_entry, prefs_set_data_from_entry, prefs_set_entry},
{"set_sent_folder", "FALSE", &tmp_ac_prefs.set_sent_folder, P_BOOL,
&advanced.sent_folder_chkbtn,
static void prefs_account_select_folder_cb (GtkWidget *widget,
gpointer data);
+static void prefs_account_sigfile_radiobtn_cb (GtkWidget *widget,
+ gpointer data);
+
+static void prefs_account_sigcmd_radiobtn_cb (GtkWidget *widget,
+ gpointer data);
+
+static void prefs_account_signature_browse_cb (GtkWidget *widget,
+ gpointer data);
+
static void pop_bfr_smtp_tm_set_sens (GtkWidget *widget,
gpointer data);
GtkWidget *inbox_entry;
GtkWidget *inbox_btn;
GtkWidget *imap_frame;
+ GtkWidget *imapdir_label;
+ GtkWidget *imapdir_entry;
+
GtkWidget *optmenu;
GtkWidget *optmenu_menu;
GtkWidget *menuitem;
gtk_option_menu_set_menu (GTK_OPTION_MENU (optmenu), optmenu_menu);
+ hbox1 = gtk_hbox_new (FALSE, 8);
+ gtk_widget_show (hbox1);
+ gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 4);
+
+ imapdir_label = gtk_label_new (_("IMAP server directory (usually empty)"));
+ gtk_widget_show (imapdir_label);
+ gtk_box_pack_start (GTK_BOX (hbox1), imapdir_label, FALSE, FALSE, 0);
+
+ imapdir_entry = gtk_entry_new();
+ gtk_widget_show (imapdir_entry);
+ gtk_box_pack_start (GTK_BOX (hbox1), imapdir_entry, FALSE, FALSE, 0);
+
PACK_CHECK_BUTTON (vbox1, filter_on_recv_chkbtn,
_("Filter messages on receiving"));
receive.imap_frame = imap_frame;
receive.imap_auth_type_optmenu = optmenu;
+ receive.imapdir_label = imapdir_label;
+ receive.imapdir_entry = imapdir_entry;
+
receive.recvatgetall_chkbtn = recvatgetall_chkbtn;
receive.frame_maxarticle = frame2;
GtkWidget *frame_sig;
GtkWidget *vbox_sig;
GtkWidget *label_sigpath;
- GtkWidget *entry_sigpath;
GtkWidget *checkbtn_autosig;
GtkWidget *label_sigsep;
GtkWidget *entry_sigsep;
- GtkWidget *sigfile_radiobtn;
- GtkWidget *sigcmd_radiobtn;
GtkWidget *frame;
GtkWidget *table;
GtkWidget *autocc_chkbtn;
g_object_set_data (G_OBJECT (sigfile_radiobtn),
MENU_VAL_ID,
GINT_TO_POINTER (SIG_FILE));
+ g_signal_connect(G_OBJECT(sigfile_radiobtn), "clicked",
+ G_CALLBACK(prefs_account_sigfile_radiobtn_cb), NULL);
sigcmd_radiobtn = gtk_radio_button_new_with_label_from_widget
(GTK_RADIO_BUTTON(sigfile_radiobtn), _("Command output"));
g_object_set_data (G_OBJECT (sigcmd_radiobtn),
MENU_VAL_ID,
GINT_TO_POINTER (SIG_COMMAND));
+ g_signal_connect(G_OBJECT(sigcmd_radiobtn), "clicked",
+ G_CALLBACK(prefs_account_sigcmd_radiobtn_cb), NULL);
hbox2 = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox2);
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
+ 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",
+ G_CALLBACK(prefs_account_signature_browse_cb), NULL);
+
PACK_FRAME (vbox1, frame, _("Automatically set the following addresses"));
table = gtk_table_new (3, 2, FALSE);
GtkWidget *menu;
GtkWidget *checkbtn_tunnelcmd;
GtkWidget *entry_tunnelcmd;
- GtkWidget *imapdir_label;
- GtkWidget *imapdir_entry;
GtkWidget *folder_frame;
GtkWidget *vbox3;
GtkWidget *table;
SET_TOGGLE_SENSITIVITY(checkbtn_crosspost, colormenu_crosspost);
PACK_HBOX (hbox1);
- imapdir_label = gtk_label_new (_("IMAP server directory"));
- gtk_widget_show (imapdir_label);
- gtk_box_pack_start (GTK_BOX (hbox1), imapdir_label, FALSE, FALSE, 0);
-
- imapdir_entry = gtk_entry_new();
- gtk_widget_show (imapdir_entry);
- gtk_box_pack_start (GTK_BOX (hbox1), imapdir_entry, TRUE, TRUE, 0);
-
#undef PACK_HBOX
#undef PACK_PORT_ENTRY
advanced.tunnelcmd_chkbtn = checkbtn_tunnelcmd;
advanced.tunnelcmd_entry = entry_tunnelcmd;
- advanced.imapdir_label = imapdir_label;
- advanced.imapdir_entry = imapdir_entry;
advanced.sent_folder_chkbtn = sent_folder_chkbtn;
advanced.sent_folder_entry = sent_folder_entry;
}
}
+static void prefs_account_sigfile_radiobtn_cb(GtkWidget *widget, gpointer data)
+{
+ gtk_widget_set_sensitive(GTK_WIDGET(signature_browse_button), TRUE);
+}
+
+static void prefs_account_sigcmd_radiobtn_cb(GtkWidget *widget, gpointer data)
+{
+ gtk_widget_set_sensitive(GTK_WIDGET(signature_browse_button), FALSE);
+}
+
+static void prefs_account_signature_browse_cb(GtkWidget *widget, gpointer data)
+{
+ gchar *filename;
+ gchar *utf8_filename;
+
+ filename = filesel_select_file_open(_("Select signature file"), NULL);
+ if (!filename) return;
+
+ utf8_filename = g_filename_to_utf8(filename, -1, NULL, NULL, NULL);
+ if (!utf8_filename) {
+ g_warning("prefs_account_signature_browse_cb(): failed to convert character set.");
+ utf8_filename = g_strdup(filename);
+ }
+ gtk_entry_set_text(GTK_ENTRY(entry_sigpath), utf8_filename);
+ g_free(utf8_filename);
+}
+
static void prefs_account_edit_custom_header(void)
{
prefs_custom_header_open(&tmp_ac_prefs);
gtk_widget_show(advanced.crosspost_colormenu);
gtk_widget_hide(advanced.tunnelcmd_chkbtn);
gtk_widget_hide(advanced.tunnelcmd_entry);
- gtk_widget_hide(advanced.imapdir_label);
- gtk_widget_hide(advanced.imapdir_entry);
+ gtk_widget_hide(receive.imapdir_label);
+ gtk_widget_hide(receive.imapdir_entry);
break;
case A_LOCAL:
gtk_widget_hide(basic.nntpserv_label);
gtk_widget_hide(advanced.crosspost_colormenu);
gtk_widget_hide(advanced.tunnelcmd_chkbtn);
gtk_widget_hide(advanced.tunnelcmd_entry);
- gtk_widget_hide(advanced.imapdir_label);
- gtk_widget_hide(advanced.imapdir_entry);
+ gtk_widget_hide(receive.imapdir_label);
+ gtk_widget_hide(receive.imapdir_entry);
break;
case A_IMAP4:
gtk_widget_hide(basic.nntpserv_label);
gtk_widget_hide(advanced.crosspost_colormenu);
gtk_widget_show(advanced.tunnelcmd_chkbtn);
gtk_widget_show(advanced.tunnelcmd_entry);
- gtk_widget_show(advanced.imapdir_label);
- gtk_widget_show(advanced.imapdir_entry);
+ gtk_widget_show(receive.imapdir_label);
+ gtk_widget_show(receive.imapdir_entry);
break;
case A_NONE:
gtk_widget_hide(basic.nntpserv_label);
gtk_widget_hide(advanced.crosspost_colormenu);
gtk_widget_hide(advanced.tunnelcmd_chkbtn);
gtk_widget_hide(advanced.tunnelcmd_entry);
- gtk_widget_hide(advanced.imapdir_label);
- gtk_widget_hide(advanced.imapdir_entry);
+ gtk_widget_hide(receive.imapdir_label);
+ gtk_widget_hide(receive.imapdir_entry);
break;
case A_POP3:
default:
gtk_widget_hide(advanced.crosspost_colormenu);
gtk_widget_hide(advanced.tunnelcmd_chkbtn);
gtk_widget_hide(advanced.tunnelcmd_entry);
- gtk_widget_hide(advanced.imapdir_label);
- gtk_widget_hide(advanced.imapdir_entry);
+ gtk_widget_hide(receive.imapdir_label);
+ gtk_widget_hide(receive.imapdir_entry);
break;
}