Improve displaying errors in servlist

This commit is contained in:
TingPing 2014-04-18 23:45:27 -04:00
parent 5f297950a2
commit c8b3eef351
1 changed files with 46 additions and 5 deletions

View File

@ -1126,11 +1126,6 @@ servlist_connect_cb (GtkWidget *button, gpointer userdata)
fe_message (_("User name cannot be left blank."), FE_MSG_ERROR);
return;
}
else if (servlist_err == 2)
{
fe_message (_("You must have a unique nickname for Second Choice."), FE_MSG_ERROR);
return;
}
if (!is_session (servlist_sess))
servlist_sess = NULL; /* open a new one */
@ -1550,6 +1545,45 @@ servlist_logintypecombo_cb (GtkComboBox *cb, gpointer *userdata)
gtk_widget_set_sensitive (edit_entry_pass, TRUE);
}
static void
servlist_username_changed_cb (GtkEntry *entry, gpointer userdata)
{
GtkWidget *connect_btn = GTK_WIDGET (userdata);
if (gtk_entry_get_text (entry)[0] == 0)
{
gtk_entry_set_icon_from_stock (entry, GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_DIALOG_ERROR);
gtk_entry_set_icon_tooltip_text (entry, GTK_ENTRY_ICON_SECONDARY,
_("User name cannot be left blank."));
gtk_widget_set_sensitive (connect_btn, FALSE);
}
else
{
gtk_entry_set_icon_from_stock (entry, GTK_ENTRY_ICON_SECONDARY, NULL);
gtk_widget_set_sensitive (connect_btn, TRUE);
}
}
static void
servlist_nick_changed_cb (GtkEntry *entry, gpointer userdata)
{
GtkWidget *connect_btn = GTK_WIDGET (userdata);
const gchar *nick1 = gtk_entry_get_text (GTK_ENTRY (entry_nick1));
const gchar *nick2 = gtk_entry_get_text (GTK_ENTRY (entry_nick2));
if (!rfc_casecmp (nick1, nick2))
{
gtk_entry_set_icon_from_stock (entry, GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_DIALOG_ERROR);
gtk_entry_set_icon_tooltip_text (entry, GTK_ENTRY_ICON_SECONDARY,
_("You must have two unique nick names."));
gtk_widget_set_sensitive (connect_btn, FALSE);
}
else
{
gtk_entry_set_icon_from_stock (entry, GTK_ENTRY_ICON_SECONDARY, NULL);
gtk_widget_set_sensitive (connect_btn, TRUE);
}
}
static GtkWidget *
servlist_create_charsetcombo (void)
@ -2158,6 +2192,13 @@ servlist_open_networks (void)
servlist_connect_cb, NULL, _("C_onnect"));
gtk_widget_set_can_default (button_connect, TRUE);
g_signal_connect (G_OBJECT (entry_guser), "changed",
servlist_username_changed_cb, button_connect);
g_signal_connect (G_OBJECT (entry_nick1), "changed",
servlist_nick_changed_cb, button_connect);
g_signal_connect (G_OBJECT (entry_nick2), "changed",
servlist_nick_changed_cb, button_connect);
gtk_label_set_mnemonic_widget (GTK_LABEL (label3), entry1);
gtk_label_set_mnemonic_widget (GTK_LABEL (label6), entry4);
/* gtk_label_set_mnemonic_widget (GTK_LABEL (label7), entry5); */