# HG changeset patch # User Will Thompson # Date 1193844744 0 # Node ID 2b5f1b47b1ba19b9dc4134edbc5f4063a4aec948 # Parent 40a863be7168e4ad542bf5049614eef863fa9aee Don't pop up a separate error dialog when an account is disconnected by NAME_IN_USE. diff -r 40a863be7168 -r 2b5f1b47b1ba pidgin/gtkconn.c --- a/pidgin/gtkconn.c Wed Oct 31 15:23:07 2007 +0000 +++ b/pidgin/gtkconn.c Wed Oct 31 15:32:24 2007 +0000 @@ -136,6 +136,43 @@ } static void +notify_account_disabled(PurpleAccount *account, + PurpleConnectionError reason, + const char *text) +{ + const char *username = purple_account_get_username(account); + const char *alias = purple_account_get_alias(account); + const char *protocol = purple_account_get_protocol_name(account); + char *p, *s, *n; + + if (alias) + n = g_strdup_printf("%s (%s) (%s)", username, alias, protocol); + else + n = g_strdup_printf("%s (%s)", username, protocol); + + p = g_strdup_printf(_("%s disconnected"), n); + + if(reason == PURPLE_CONNECTION_ERROR_NO_SSL_SUPPORT) + s = g_strdup_printf( + _("%s\n\n" + "%s will not attempt to reconnect the account until you " + "re-enable the account. See %s for information on how to " + "compile %s with SSL support."), text, PIDGIN_NAME, + "http://developer.pidgin.im/wiki/FAQssl", PIDGIN_NAME); + else + s = g_strdup_printf( + _("%s\n\n" + "%s will not attempt to reconnect the account until you " + "correct the error and re-enable the account."), text, + PIDGIN_NAME); + + purple_notify_error(NULL, NULL, p, s); + g_free(p); + g_free(s); + g_free(n); +} + +static void pidgin_connection_report_disconnect_reason (PurpleConnection *gc, PurpleConnectionError reason, const char *text) @@ -159,52 +196,11 @@ } info->timeout = g_timeout_add(info->delay, do_signon, account); } else { - char *p, *s, *n=NULL ; if (info != NULL) g_hash_table_remove(auto_reconns, account); - if (purple_account_get_alias(account)) - { - n = g_strdup_printf("%s (%s) (%s)", - purple_account_get_username(account), - purple_account_get_alias(account), - purple_account_get_protocol_name(account)); - } - else - { - n = g_strdup_printf("%s (%s)", - purple_account_get_username(account), - purple_account_get_protocol_name(account)); - } - - p = g_strdup_printf(_("%s disconnected"), n); - switch (reason) - { - case PURPLE_CONNECTION_ERROR_NO_SSL_SUPPORT: - s = g_strdup_printf( - _("%s\n\n" - "%s will not attempt to reconnect the account until you " - "re-enable the account. See %s for information on how to " - "compile %s with SSL support."), text, PIDGIN_NAME, - "http://developer.pidgin.im/wiki/FAQssl", PIDGIN_NAME); - break; - case PURPLE_CONNECTION_ERROR_NAME_IN_USE: - s = g_strdup_printf( - _("%s\n\n" - "%s will not attempt to reconnect the account until you " - "re-enable it."), text, PIDGIN_NAME); - break; - default: - s = g_strdup_printf( - _("%s\n\n" - "%s will not attempt to reconnect the account until you " - "correct the error and re-enable the account."), text, - PIDGIN_NAME); - } - purple_notify_error(NULL, NULL, p, s); - g_free(p); - g_free(s); - g_free(n); + if (reason != PURPLE_CONNECTION_ERROR_NAME_IN_USE) + notify_account_disabled(account, reason, text); /* * TODO: Do we really want to disable the account when it's