gpointer user_data);
static void prefs_account_showpwd_checkbtn_toggled(GtkToggleButton *button,
gpointer user_data);
+static void prefs_account_entry_changed_newline_check_cb(GtkWidget *entry,
+ gpointer user_data);
static void prefs_account_filter_on_recv_toggled(GtkToggleButton *button,
gpointer user_data);
{"password", NULL, &tmp_ac_prefs.passwd, P_PASSWORD,
NULL, NULL, NULL},
+ {"config_version", "-1", &tmp_ac_prefs.config_version, P_INT,
+ NULL, NULL, NULL},
+
{NULL, NULL, NULL, P_OTHER, NULL, NULL, NULL}
};
COMBOBOX_SENS, TRUE,
COMBOBOX_PRIVACY_PLUGIN_ID, id,
-1);
+ g_free(id);
}
+ g_slist_free(system_ids);
+
}
#define TABLE_YPAD 2
no_imap_warn_icon = gtk_image_new_from_stock
(GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_SMALL_TOOLBAR);
- no_imap_warn_label = gtk_label_new(g_strconcat("<span weight=\"bold\">",
+ buf = g_strconcat("<span weight=\"bold\">",
_("Warning: this version of Claws Mail\n"
- "has been built without IMAP and News support."), "</span>", NULL));
+ "has been built without IMAP and News support."), "</span>", NULL);
+ no_imap_warn_label = gtk_label_new(buf);
+ g_free(buf);
gtk_label_set_use_markup(GTK_LABEL(no_imap_warn_label), TRUE);
gtk_box_pack_start(GTK_BOX (optmenubox), no_imap_warn_icon, FALSE, FALSE, 0);
uid_entry = gtk_entry_new ();
gtk_widget_show (uid_entry);
gtk_widget_set_size_request (uid_entry, DEFAULT_ENTRY_WIDTH, -1);
+ g_signal_connect(G_OBJECT(uid_entry), "changed",
+ G_CALLBACK(prefs_account_entry_changed_newline_check_cb),
+ GINT_TO_POINTER(ac_prefs->protocol));
+
pass_entry = gtk_entry_new ();
gtk_widget_show (pass_entry);
gtk_widget_set_size_request (pass_entry, DEFAULT_ENTRY_WIDTH, -1);
+ g_signal_connect(G_OBJECT(pass_entry), "changed",
+ G_CALLBACK(prefs_account_entry_changed_newline_check_cb),
+ GINT_TO_POINTER(ac_prefs->protocol));
+
#ifndef GENERIC_UMPC
gtk_table_attach (GTK_TABLE (serv_table), uid_entry, 1, 2, 7, 8,
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
gtk_widget_show (smtp_uid_entry);
gtk_widget_set_size_request (smtp_uid_entry, DEFAULT_ENTRY_WIDTH, -1);
gtk_box_pack_start (GTK_BOX (hbox), smtp_uid_entry, TRUE, TRUE, 0);
+ g_signal_connect(G_OBJECT(smtp_uid_entry), "changed",
+ G_CALLBACK(prefs_account_entry_changed_newline_check_cb),
+ GINT_TO_POINTER(ac_prefs->protocol));
#ifdef GENERIC_UMPC
PACK_VSPACER(vbox4, vbox_spc, VSPACING_NARROW_2);
gtk_widget_set_size_request (smtp_pass_entry, DEFAULT_ENTRY_WIDTH, -1);
gtk_box_pack_start (GTK_BOX (hbox), smtp_pass_entry, TRUE, TRUE, 0);
gtk_entry_set_visibility (GTK_ENTRY (smtp_pass_entry), FALSE);
+ g_signal_connect(G_OBJECT(smtp_pass_entry), "changed",
+ G_CALLBACK(prefs_account_entry_changed_newline_check_cb),
+ GINT_TO_POINTER(ac_prefs->protocol));
showpwd_checkbtn = gtk_check_button_new_with_label (_("Show password"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(showpwd_checkbtn), FALSE);
alertpanel_error(_("Mail address is not entered."));
return -1;
}
+
if (((protocol == A_POP3) ||
(protocol == A_LOCAL && !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(basic_page.mailcmd_checkbtn))) ||
(protocol == A_NONE)) &&
protocol == A_IMAP4 ? "imap":"news",
tmp_ac_prefs.account_name ? tmp_ac_prefs.account_name : "(null)");
+ if (strchr(gtk_entry_get_text(GTK_ENTRY(basic_page.uid_entry)), '\n') != NULL) {
+ alertpanel_error(_("User ID cannot contain a newline character."));
+ return -1;
+ }
+
+ if (strchr(gtk_entry_get_text(GTK_ENTRY(basic_page.pass_entry)), '\n') != NULL) {
+ alertpanel_error(_("Password cannot contain a newline character."));
+ return -1;
+ }
+
prefs_set_data_from_dialog(basic_param);
/* Passwords are stored outside of PrefParams. */
static gint prefs_receive_apply(void)
{
+ if (strchr(gtk_entry_get_text(GTK_ENTRY(send_page.smtp_uid_entry)), '\n') != NULL) {
+ alertpanel_error(_("SMTP user ID cannot contain a newline character."));
+ return -1;
+ }
+
+ if (strchr(gtk_entry_get_text(GTK_ENTRY(send_page.smtp_pass_entry)), '\n') != NULL) {
+ alertpanel_error(_("SMTP password cannot contain a newline character."));
+ return -1;
+ }
+
prefs_set_data_from_dialog(receive_param);
return 0;
}
gtk_entry_set_visibility(GTK_ENTRY(entry), active);
}
+static void prefs_account_entry_changed_newline_check_cb(GtkWidget *entry,
+ gpointer user_data)
+{
+#if !GTK_CHECK_VERSION(3, 0, 0)
+ static GdkColor red;
+ static gboolean colors_initialised = FALSE;
+#else
+ static GdkColor red = { (guint32)0, (guint16)0xff, (guint16)0x70, (guint16)0x70 };
+#endif
+
+#if !GTK_CHECK_VERSION(3, 0, 0)
+ if (strchr(gtk_entry_get_text(GTK_ENTRY(entry)), '\n') != NULL) {
+ /* Entry contains a newline, light it up. */
+ debug_print("found newline in string, painting entry red\n");
+ if (!colors_initialised) {
+ if (!gdk_color_parse("#ff7070", &red)) {
+ g_warning("color parse failed: red");
+ return;
+ }
+ colors_initialised = gdk_colormap_alloc_color(
+ gdk_colormap_get_system(), &red, FALSE, TRUE);
+ }
+
+ if (colors_initialised) {
+ gtk_widget_modify_base(entry, GTK_STATE_NORMAL, &red);
+ }
+ } else {
+ gtk_widget_modify_base(entry, GTK_STATE_NORMAL, NULL);
+ }
+#endif
+}
+
static void prefs_account_filter_on_recv_toggled(GtkToggleButton *button,
gpointer user_data)
{
tmbuf = g_date_time_format(now, "%Y%m%d%H%M%S");
buf = g_strdup_printf("%s.%08x%s",
tmbuf, (guint)rand(), addr);
+ g_date_time_unref(now);
g_free(tmbuf);
g_free(addr);