# HG changeset patch # User Nathan Walp # Date 1160536413 0 # Node ID 05c34aabdcc315d61d3624b84f565a81da804c6c # Parent c1a308cc63f76c4629cd21bc9733816c295507c4 [gaim-migrate @ 17458] I think we should let people know why we're not connecting... If someone can think of better (shorter) wording, feel free to change it committer: Tailor Script diff -r c1a308cc63f7 -r 05c34aabdcc3 gtk/gtkconn.c --- a/gtk/gtkconn.c Tue Oct 10 17:58:40 2006 +0000 +++ b/gtk/gtkconn.c Wed Oct 11 03:13:33 2006 +0000 @@ -194,9 +194,14 @@ } } -static void gaim_gtk_connection_network_connected () +static void gaim_gtk_connection_network_connected () { GList *list = gaim_accounts_get_all_active(); + GaimGtkBuddyList *gtkblist = gaim_gtk_blist_get_default_gtk_blist(); + + if(gtkblist) + gtk_gaim_status_box_set_network_available(GTK_GAIM_STATUS_BOX(gtkblist->statusbox), TRUE); + while (list) { GaimAccount *account = (GaimAccount*)list->data; GaimAutoRecon *info = g_hash_table_lookup(hash, account); @@ -204,12 +209,17 @@ free_auto_recon(info); do_signon(account); list = list->next; - } + } } -static void gaim_gtk_connection_network_disconnected () +static void gaim_gtk_connection_network_disconnected () { GList *l = gaim_accounts_get_all_active(); + GaimGtkBuddyList *gtkblist = gaim_gtk_blist_get_default_gtk_blist(); + + if(gtkblist) + gtk_gaim_status_box_set_network_available(GTK_GAIM_STATUS_BOX(gtkblist->statusbox), FALSE); + while (l) { GaimAccount *a = (GaimAccount*)l->data; gaim_account_disconnect(a); diff -r c1a308cc63f7 -r 05c34aabdcc3 gtk/gtkstatusbox.c --- a/gtk/gtkstatusbox.c Tue Oct 10 17:58:40 2006 +0000 +++ b/gtk/gtkstatusbox.c Wed Oct 11 03:13:33 2006 +0000 @@ -43,6 +43,7 @@ #include "account.h" #include "internal.h" +#include "network.h" #include "savedstatuses.h" #include "status.h" #include "debug.h" @@ -553,6 +554,8 @@ secondary = g_strdup(_("Typing")); else if (status_box->connecting) secondary = g_strdup(_("Connecting")); + else if (!status_box->network_available) + secondary = g_strdup(_("Waiting for network connection")); else if (gaim_savedstatus_is_transient(saved_status)) secondary = NULL; else @@ -1265,6 +1268,7 @@ GtkTextBuffer *buffer; status_box->imhtml_visible = FALSE; + status_box->network_available = gaim_network_is_available(); status_box->connecting = FALSE; status_box->typing = 0; status_box->toggle_button = gtk_toggle_button_new(); @@ -1609,6 +1613,15 @@ } void +gtk_gaim_status_box_set_network_available(GtkGaimStatusBox *status_box, gboolean available) +{ + if (!status_box) + return; + status_box->network_available = available; + gtk_gaim_status_box_refresh(status_box); +} + +void gtk_gaim_status_box_set_connecting(GtkGaimStatusBox *status_box, gboolean connecting) { if (!status_box) diff -r c1a308cc63f7 -r 05c34aabdcc3 gtk/gtkstatusbox.h --- a/gtk/gtkstatusbox.h Tue Oct 10 17:58:40 2006 +0000 +++ b/gtk/gtkstatusbox.h Wed Oct 11 03:13:33 2006 +0000 @@ -110,6 +110,7 @@ int typing_index; GdkPixbuf *typing_pixbufs[4]; + gboolean network_available; gboolean connecting; guint typing; @@ -156,6 +157,9 @@ gtk_gaim_status_box_add_separator(GtkGaimStatusBox *status_box); void +gtk_gaim_status_box_set_network_available(GtkGaimStatusBox *status_box, gboolean available); + +void gtk_gaim_status_box_set_connecting(GtkGaimStatusBox *status_box, gboolean connecting); void diff -r c1a308cc63f7 -r 05c34aabdcc3 libgaim/account.c --- a/libgaim/account.c Tue Oct 10 17:58:40 2006 +0000 +++ b/libgaim/account.c Wed Oct 11 03:13:33 2006 +0000 @@ -2246,7 +2246,7 @@ /* If we're not connected to the Internet right now, we bail on this */ if (!gaim_network_is_available()) { - fprintf(stderr, "Network not connected; skipping reconnect\n"); + gaim_debug_info("account", "Network not connected; skipping reconnect\n"); return; }