/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2011 Hiroyuki Yamamoto and the Claws Mail team
+ * Copyright (C) 1999-2013 Hiroyuki Yamamoto and the Claws Mail team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#ifdef HAVE_CONFIG_H
# include "config.h"
+#include "claws-features.h"
#endif
#include "defs.h"
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
+#if !GTK_CHECK_VERSION(3, 0, 0)
#include "gtkcmoptionmenu.h"
+#endif
#include "main.h"
#include "prefs_gtk.h"
#include "prefs_account.h"
#include "account.h"
#include "mainwindow.h"
#include "manage_window.h"
+#include "folder.h"
#include "foldersel.h"
#include "inc.h"
#include "menu.h"
#include "setup.h"
#include "quote_fmt.h"
#include "hooks.h"
+#include "privacy.h"
#include "inputdialog.h"
#include "ssl_certificate.h"
GtkWidget *frame_maxarticle;
GtkWidget *maxarticle_label;
GtkWidget *maxarticle_spinbtn;
- GtkObject *maxarticle_spinbtn_adj;
+ GtkAdjustment *maxarticle_spinbtn_adj;
} ReceivePage;
typedef struct SendPage
GtkWidget *vbox;
GtkWidget *msgid_checkbtn;
+ GtkWidget *xmailer_checkbtn;
GtkWidget *customhdr_checkbtn;
GtkWidget *msgid_with_addr_checkbtn;
GtkWidget *smtp_auth_checkbtn;
GtkWidget *nntpport_spinbtn;
GtkWidget *domain_checkbtn;
GtkWidget *domain_entry;
+#if !GTK_CHECK_VERSION(3, 0, 0)
GtkWidget *crosspost_checkbtn;
GtkWidget *crosspost_colormenu;
+#endif
#ifndef G_OS_WIN32
GtkWidget *tunnelcmd_checkbtn;
static void prefs_account_enum_set_data_from_radiobtn (PrefParam *pparam);
static void prefs_account_enum_set_radiobtn (PrefParam *pparam);
+#if !GTK_CHECK_VERSION(3, 0, 0)
static void crosspost_color_toggled(void);
static void prefs_account_crosspost_set_data_from_colormenu(PrefParam *pparam);
static void prefs_account_crosspost_set_colormenu(PrefParam *pparam);
+#endif
static void prefs_account_nntpauth_toggled(GtkToggleButton *button,
gpointer user_data);
&send_page.msgid_checkbtn,
prefs_set_data_from_toggle, prefs_set_toggle},
+ {"generate_xmailer", "TRUE", &tmp_ac_prefs.gen_xmailer, P_BOOL,
+ &send_page.xmailer_checkbtn,
+ prefs_set_data_from_toggle, prefs_set_toggle},
+
{"add_custom_header", "FALSE", &tmp_ac_prefs.add_customhdr, P_BOOL,
&send_page.customhdr_checkbtn,
prefs_set_data_from_toggle, prefs_set_toggle},
{"default_sign", "FALSE", &tmp_ac_prefs.default_sign, P_BOOL,
&privacy_page.default_sign_checkbtn,
prefs_set_data_from_toggle, prefs_set_toggle},
-
+#ifdef G_OS_UNIX
{"default_sign_reply", "TRUE", &tmp_ac_prefs.default_sign_reply, P_BOOL,
&privacy_page.default_sign_reply_checkbtn,
prefs_set_data_from_toggle, prefs_set_toggle},
-
+#else
+ /* Bug 2367: disturbing for Win32 users with no keypair */
+ {"default_sign_reply", "FALSE", &tmp_ac_prefs.default_sign_reply, P_BOOL,
+ &privacy_page.default_sign_reply_checkbtn,
+ prefs_set_data_from_toggle, prefs_set_toggle},
+#endif
{"save_clear_text", "FALSE", &tmp_ac_prefs.save_encrypted_as_clear_text, P_BOOL,
&privacy_page.save_clear_text_checkbtn,
prefs_set_data_from_toggle, prefs_set_toggle},
&advanced_page.domain_entry,
prefs_set_data_from_entry, prefs_set_entry},
+#ifdef USE_GNUTLS
+ {"gnutls_set_priority", "FALSE", &tmp_ac_prefs.set_gnutls_priority, P_BOOL,
+ NULL, NULL, NULL},
+
+ {"gnutls_priority", NULL, &tmp_ac_prefs.gnutls_priority, P_STRING,
+ NULL, NULL, NULL},
+#endif
+
#ifndef G_OS_WIN32
{"set_tunnelcmd", "FALSE", &tmp_ac_prefs.set_tunnelcmd, P_BOOL,
&advanced_page.tunnelcmd_checkbtn,
&advanced_page.tunnelcmd_entry,
prefs_set_data_from_entry, prefs_set_entry},
#endif
+#if !GTK_CHECK_VERSION(3, 0, 0)
{"mark_crosspost_read", "FALSE", &tmp_ac_prefs.mark_crosspost_read, P_BOOL,
&advanced_page.crosspost_checkbtn,
prefs_set_data_from_toggle, prefs_set_toggle},
&advanced_page.crosspost_colormenu,
prefs_account_crosspost_set_data_from_colormenu,
prefs_account_crosspost_set_colormenu},
+#endif
{"set_sent_folder", "FALSE", &tmp_ac_prefs.set_sent_folder, P_BOOL,
&advanced_page.sent_folder_checkbtn,
static void privacy_system_activated(GtkWidget *combobox)
{
const gchar *system_id;
- gboolean privacy_enabled = FALSE;
gint privacy_enabled_int;
GtkTreeIter iter;
GtkListStore *menu = GTK_LIST_STORE(gtk_combo_box_get_model(
COMBOBOX_DATA, &privacy_enabled_int,
-1);
- privacy_enabled = strcmp(system_id, "");
-
- if( privacy_enabled_int == 0 )
- privacy_enabled = FALSE;
-
gtk_widget_set_sensitive (privacy_page.save_clear_text_checkbtn,
!gtk_toggle_button_get_active(
GTK_TOGGLE_BUTTON(privacy_page.encrypt_to_self_checkbtn)));
GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
#endif
gtk_entry_set_visibility (GTK_ENTRY (pass_entry), FALSE);
-#ifdef MAEMO
- hildon_gtk_entry_set_input_mode(GTK_ENTRY(pass_entry),
- HILDON_GTK_INPUT_MODE_FULL | HILDON_GTK_INPUT_MODE_INVISIBLE);
-#endif
nntpserv_label = gtk_label_new (_("News server"));
gtk_widget_show (nntpserv_label);
GtkWidget *frame2;
GtkWidget *maxarticle_label;
GtkWidget *maxarticle_spinbtn;
- GtkObject *maxarticle_spinbtn_adj;
- CLAWS_TIP_DECL();
+ GtkAdjustment *maxarticle_spinbtn_adj;
vbox1 = gtk_vbox_new (FALSE, VSPACING);
gtk_widget_show (vbox1);
gtk_box_pack_start (GTK_BOX (hbox2), maxarticle_label, FALSE, FALSE, 0);
maxarticle_spinbtn_adj =
- gtk_adjustment_new (300, 0, 10000, 10, 100, 0);
+ GTK_ADJUSTMENT(gtk_adjustment_new (300, 0, 10000, 10, 100, 0));
maxarticle_spinbtn = gtk_spin_button_new
(GTK_ADJUSTMENT (maxarticle_spinbtn_adj), 10, 0);
gtk_widget_show (maxarticle_spinbtn);
GtkWidget *vbox2;
GtkWidget *frame;
GtkWidget *msgid_checkbtn;
+ GtkWidget *xmailer_checkbtn;
GtkWidget *hbox;
GtkWidget *customhdr_checkbtn;
GtkWidget *customhdr_edit_btn;
PACK_CHECK_BUTTON (vbox2, checkbtn_msgid_with_addr,
_("Send account mail address in Message-ID"));
+ PACK_CHECK_BUTTON (vbox2, xmailer_checkbtn,
+ _("Generate X-Mailer header"));
+
hbox = gtk_hbox_new (FALSE, 12);
gtk_widget_show (hbox);
gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), smtp_pass_entry, TRUE, TRUE, 0);
gtk_entry_set_visibility (GTK_ENTRY (smtp_pass_entry), FALSE);
-#ifdef MAEMO
- hildon_gtk_entry_set_input_mode(GTK_ENTRY(smtp_pass_entry),
- HILDON_GTK_INPUT_MODE_FULL | HILDON_GTK_INPUT_MODE_INVISIBLE);
-#endif
PACK_VSPACER(vbox4, vbox_spc, VSPACING_NARROW_2);
hbox = gtk_hbox_new (FALSE, 8);
gtk_box_pack_start (GTK_BOX (hbox), pop_auth_minutes_lbl, FALSE, FALSE, 0);
page->msgid_checkbtn = msgid_checkbtn;
+ page->xmailer_checkbtn = xmailer_checkbtn;
page->customhdr_checkbtn = customhdr_checkbtn;
page->msgid_with_addr_checkbtn = checkbtn_msgid_with_addr;
GtkWidget *hbox;
GtkWidget *hbox_spc;
GtkWidget *label;
- CLAWS_TIP_DECL();
vbox1 = gtk_vbox_new (FALSE, VSPACING);
gtk_widget_show (vbox1);
GtkWidget *checkbtn_domain;
GtkWidget *entry_domain;
gchar *tip_domain;
+#if !GTK_CHECK_VERSION(3, 0, 0)
GtkWidget *checkbtn_crosspost;
GtkWidget *colormenu_crosspost;
GtkWidget *menu;
+#endif
#ifndef G_OS_WIN32
GtkWidget *checkbtn_tunnelcmd;
GtkWidget *entry_tunnelcmd;
GtkWidget *trash_folder_checkbtn;
GtkWidget *trash_folder_entry;
GtkWidget *imap_use_trash_checkbtn;
-
- CLAWS_TIP_DECL();
GtkSizeGroup *size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
#define PACK_HBOX(hbox) \
{ \
CLAWS_SET_TIP(imap_use_trash_checkbtn,
_("Moves deleted mails to trash instead of using the \\Deleted flag without expunging."));
+#if !GTK_CHECK_VERSION(3, 0, 0)
PACK_CHECK_BUTTON (hbox1, checkbtn_crosspost,
_("Mark cross-posted messages as read and color:"));
g_signal_connect (G_OBJECT (checkbtn_crosspost), "toggled",
menu = colorlabel_create_color_menu();
gtk_cmoption_menu_set_menu (GTK_CMOPTION_MENU(colormenu_crosspost), menu);
SET_TOGGLE_SENSITIVITY(checkbtn_crosspost, colormenu_crosspost);
+#endif
PACK_HBOX (hbox1);
#undef PACK_HBOX
page->nntpport_spinbtn = spinbtn_nntpport;
page->domain_checkbtn = checkbtn_domain;
page->domain_entry = entry_domain;
+#if !GTK_CHECK_VERSION(3, 0, 0)
page->crosspost_checkbtn = checkbtn_crosspost;
page->crosspost_colormenu = colormenu_crosspost;
+#endif
#ifndef G_OS_WIN32
page->tunnelcmd_checkbtn = checkbtn_tunnelcmd;
if (protocol == A_IMAP4 || protocol == A_NNTP)
old_id = g_strdup_printf("#%s/%s",
- protocol == A_IMAP4 ? "imap":"nntp",
+ protocol == A_IMAP4 ? "imap":"news",
tmp_ac_prefs.account_name ? tmp_ac_prefs.account_name : "(null)");
prefs_set_data_from_dialog(basic_param);
if (protocol == A_IMAP4 || protocol == A_NNTP) {
new_id = g_strdup_printf("#%s/%s",
- protocol == A_IMAP4 ? "imap":"nntp",
+ protocol == A_IMAP4 ? "imap":"news",
tmp_ac_prefs.account_name);
if (old_id != NULL && new_id != NULL)
prefs_filtering_rename_path(old_id, new_id);
{
struct GetPassData pass_data;
/* do complicated stuff to be able to call GTK from the mainloop */
+#if !GLIB_CHECK_VERSION(2,32,0)
pass_data.cond = g_cond_new();
- pass_data.mutex = g_mutex_new();
+#else
+ g_cond_init(pass_data.cond);
+#endif
+ pass_data.mutex = cm_mutex_new();
pass_data.pass = (gchar **)source;
g_mutex_lock(pass_data.mutex);
g_idle_add(do_get_pass, &pass_data);
g_cond_wait(pass_data.cond, pass_data.mutex);
+#if !GLIB_CHECK_VERSION(2,32,0)
g_cond_free(pass_data.cond);
+#else
+ g_cond_clear(pass_data.cond);
+#endif
g_mutex_unlock(pass_data.mutex);
- g_mutex_free(pass_data.mutex);
+ cm_mutex_free(pass_data.mutex);
return TRUE;
}
if (!cancelled && dirty != NULL)
*dirty = TRUE;
- if (cancelled && new_account) {
- prefs_account_free(ac_prefs);
+ if (cancelled && new_account)
return NULL;
- } else
+ else {
+ if (ac_prefs->recv_server)
+ g_strstrip(ac_prefs->recv_server);
+ if (ac_prefs->smtp_server)
+ g_strstrip(ac_prefs->smtp_server);
+ if (ac_prefs->nntp_server)
+ g_strstrip(ac_prefs->nntp_server);
+
return ac_prefs;
+ }
}
+#if !GTK_CHECK_VERSION(3, 0, 0)
static void crosspost_color_toggled(void)
{
gboolean is_active;
menuitem = gtk_menu_get_active(GTK_MENU(menu));
gtk_menu_item_activate(GTK_MENU_ITEM(menuitem));
}
+#endif
static void pop_bfr_smtp_tm_set_sens(GtkWidget *widget, gpointer data)
{
GTK_TOGGLE_BUTTON(send_page.msgid_checkbtn),
TRUE);
gtk_widget_hide(send_page.msgid_checkbtn);
- } else {
+ } else
gtk_widget_show(send_page.msgid_checkbtn);
- }
+
+ gtk_widget_show(send_page.xmailer_checkbtn);
}
}
gtk_widget_hide(protocol_optmenu->no_imap_warn_label);
#endif
gtk_widget_show(send_page.msgid_checkbtn);
+ gtk_widget_show(send_page.xmailer_checkbtn);
gtk_widget_show(basic_page.nntpserv_label);
gtk_widget_show(basic_page.nntpserv_entry);
gtk_table_set_row_spacing (GTK_TABLE (basic_page.serv_table),
gtk_widget_hide(advanced_page.popport_hbox);
gtk_widget_hide(advanced_page.imapport_hbox);
gtk_widget_show(advanced_page.nntpport_hbox);
+#if !GTK_CHECK_VERSION(3, 0, 0)
gtk_widget_show(advanced_page.crosspost_checkbtn);
gtk_widget_show(advanced_page.crosspost_colormenu);
+#endif
#ifndef G_OS_WIN32
gtk_widget_hide(advanced_page.tunnelcmd_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_entry);
break;
case A_LOCAL:
gtk_widget_show(send_page.msgid_checkbtn);
+ gtk_widget_show(send_page.xmailer_checkbtn);
gtk_widget_hide(protocol_optmenu->no_imap_warn_icon);
gtk_widget_hide(protocol_optmenu->no_imap_warn_label);
gtk_widget_hide(basic_page.nntpserv_label);
gtk_widget_hide(advanced_page.popport_hbox);
gtk_widget_hide(advanced_page.imapport_hbox);
gtk_widget_hide(advanced_page.nntpport_hbox);
+#if !GTK_CHECK_VERSION(3, 0, 0)
gtk_widget_hide(advanced_page.crosspost_checkbtn);
gtk_widget_hide(advanced_page.crosspost_colormenu);
+#endif
#ifndef G_OS_WIN32
gtk_widget_hide(advanced_page.tunnelcmd_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_entry);
GTK_TOGGLE_BUTTON(send_page.msgid_checkbtn),
TRUE);
gtk_widget_hide(send_page.msgid_checkbtn);
+ gtk_widget_show(send_page.xmailer_checkbtn);
gtk_widget_hide(basic_page.nntpserv_label);
gtk_widget_hide(basic_page.nntpserv_entry);
gtk_table_set_row_spacing (GTK_TABLE (basic_page.serv_table),
gtk_widget_hide(advanced_page.popport_hbox);
gtk_widget_show(advanced_page.imapport_hbox);
gtk_widget_hide(advanced_page.nntpport_hbox);
+#if !GTK_CHECK_VERSION(3, 0, 0)
gtk_widget_hide(advanced_page.crosspost_checkbtn);
gtk_widget_hide(advanced_page.crosspost_colormenu);
+#endif
#ifndef G_OS_WIN32
gtk_widget_show(advanced_page.tunnelcmd_checkbtn);
gtk_widget_show(advanced_page.tunnelcmd_entry);
break;
case A_NONE:
gtk_widget_show(send_page.msgid_checkbtn);
+ gtk_widget_show(send_page.xmailer_checkbtn);
gtk_widget_hide(protocol_optmenu->no_imap_warn_icon);
gtk_widget_hide(protocol_optmenu->no_imap_warn_label);
gtk_widget_hide(basic_page.nntpserv_label);
gtk_widget_hide(advanced_page.popport_hbox);
gtk_widget_hide(advanced_page.imapport_hbox);
gtk_widget_hide(advanced_page.nntpport_hbox);
+#if !GTK_CHECK_VERSION(3, 0, 0)
gtk_widget_hide(advanced_page.crosspost_checkbtn);
gtk_widget_hide(advanced_page.crosspost_colormenu);
+#endif
#ifndef G_OS_WIN32
gtk_widget_hide(advanced_page.tunnelcmd_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_entry);
case A_POP3:
default:
gtk_widget_show(send_page.msgid_checkbtn);
+ gtk_widget_show(send_page.xmailer_checkbtn);
gtk_widget_hide(protocol_optmenu->no_imap_warn_icon);
gtk_widget_hide(protocol_optmenu->no_imap_warn_label);
gtk_widget_hide(basic_page.nntpserv_label);
gtk_widget_show(advanced_page.popport_hbox);
gtk_widget_hide(advanced_page.imapport_hbox);
gtk_widget_hide(advanced_page.nntpport_hbox);
+#if !GTK_CHECK_VERSION(3, 0, 0)
gtk_widget_hide(advanced_page.crosspost_checkbtn);
gtk_widget_hide(advanced_page.crosspost_colormenu);
+#endif
#ifndef G_OS_WIN32
gtk_widget_hide(advanced_page.tunnelcmd_checkbtn);
gtk_widget_hide(advanced_page.tunnelcmd_entry);
{
gboolean auth;
- if (!gtkut_widget_get_sensitive (GTK_WIDGET (button)))
+ if (!gtk_widget_get_sensitive (GTK_WIDGET (button)))
return;
auth = gtk_toggle_button_get_active (button);
gtk_widget_set_sensitive(basic_page.uid_label, auth);