changeset 5885:02569519d0cc

[gaim-migrate @ 6317] The away and protocol menus now update when an account is signed on or off. The very last of the UI is gone from connection.c, except for a couple things commented out. I think everything works there again. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Sun, 15 Jun 2003 07:31:20 +0000
parents d188b000e892
children 2201a57b763f
files src/connection.c src/gtkconn.c
diffstat 2 files changed, 17 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/connection.c	Sun Jun 15 07:19:59 2003 +0000
+++ b/src/connection.c	Sun Jun 15 07:31:20 2003 +0000
@@ -31,9 +31,6 @@
 #include "server.h"
 #include "sound.h"
 
-/* XXX UI stuff! */
-#include "ui.h"
-
 static GList *connections = NULL;
 static GList *connections_connecting = NULL;
 static GaimConnectionUiOps *connection_ui_ops = NULL;
@@ -171,6 +168,8 @@
 void
 gaim_connection_set_state(GaimConnection *gc, GaimConnectionState state)
 {
+	GaimConnectionUiOps *ops;
+
 	g_return_if_fail(gc != NULL);
 
 	if (gc->state == state)
@@ -178,8 +177,12 @@
 
 	gc->state = state;
 
+	ops = gaim_get_connection_ui_ops();
+
+	if (gc->state != GAIM_CONNECTED)
+		connections_connecting = g_list_remove(connections_connecting, gc);
+
 	if (gc->state == GAIM_CONNECTED) {
-		GaimConnectionUiOps *ops = gaim_get_connection_ui_ops();
 		GaimBlistNode *gnode,*bnode;
 		GList *wins;
 		GList *add_buds=NULL;
@@ -195,9 +198,6 @@
 		gaim_blist_show();
 		gaim_blist_add_account(gc->account);
 
-		/* XXX I hate this. UI code. -- ChipX86 */
-		gaim_setup(gc);
-
 		/*
 		 * XXX This is a hack! Remove this and replace it with a better event
 		 *     notification system.
@@ -248,8 +248,9 @@
 
 		serv_set_permit_deny(gc);
 	}
-	else {
-		connections_connecting = g_list_remove(connections_connecting, gc);
+	else if (gc->state == GAIM_DISCONNECTED) {
+		if (ops != NULL && ops->disconnected != NULL)
+			ops->disconnected(gc, NULL);
 	}
 }
 
--- a/src/gtkconn.c	Sun Jun 15 07:19:59 2003 +0000
+++ b/src/gtkconn.c	Sun Jun 15 07:31:20 2003 +0000
@@ -213,6 +213,11 @@
 {
 	struct signon_meter *meter = find_signon_meter(gc);
 
+	gaim_setup(gc);
+
+	do_away_menu();
+	do_proto_menu();
+
 	if(meter)
 		kill_meter(meter, _("Done."));
 }
@@ -227,6 +232,8 @@
 	struct signon_meter *meter = find_signon_meter(gc);
 
 	update_privacy_connections();
+	do_away_menu();
+	do_proto_menu();
 
 	if(meter)
 		kill_meter(meter, _("Done."));