changeset 10315:deec4b58d516

[gaim-migrate @ 11515] Login Window 1998 -- 2004 committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Sat, 04 Dec 2004 18:51:56 +0000
parents 0a561b6ef7ec
children 5d19870d3a29
files src/gtkaccount.c src/gtkblist.c src/gtkconn.c src/gtkdialogs.h src/gtkmain.c
diffstat 5 files changed, 14 insertions(+), 216 deletions(-) [+]
line wrap: on
line diff
--- a/src/gtkaccount.c	Fri Dec 03 23:44:47 2004 +0000
+++ b/src/gtkaccount.c	Sat Dec 04 18:51:56 2004 +0000
@@ -2432,7 +2432,7 @@
 
 	/* See if we're the main window here. */
 	if (GAIM_GTK_BLIST(gaim_get_blist())->window == NULL &&
-		mainwindow == NULL && gaim_connections_get_all() == NULL) {
+		gaim_connections_get_all() == NULL) {
 
 		gaim_core_quit();
 	}
--- a/src/gtkblist.c	Fri Dec 03 23:44:47 2004 +0000
+++ b/src/gtkblist.c	Sat Dec 04 18:51:56 2004 +0000
@@ -4421,41 +4421,21 @@
 	/* Useful for the docklet plugin and also for the win32 tray icon*/
 	/* This is called when one of those is clicked--it will show/hide the
 	   buddy list/login window--depending on which is active */
-	if (gaim_connections_get_all()) {
-		if (gtkblist && gtkblist->window) {
-			if (GTK_WIDGET_VISIBLE(gtkblist->window)) {
-				gaim_blist_set_visible(GAIM_WINDOW_ICONIFIED(gtkblist->window) || gaim_gtk_blist_obscured);
-			} else {
-#if _WIN32
-				wgaim_systray_maximize(gtkblist->window);
-#endif
-				gaim_blist_set_visible(TRUE);
-			}
-		} else {
-			/* we're logging in or something... do nothing */
-			/* or should I make the blist? */
-			gaim_debug_warning("gtkblist",
-					   "docklet_toggle called with gaim_connections_get_all() "
-					   "but no blist!\n");
-		}
-	} else if (mainwindow) {
-		if (GTK_WIDGET_VISIBLE(mainwindow)) {
-			if (GAIM_WINDOW_ICONIFIED(mainwindow)) {
-				gtk_window_present(GTK_WINDOW(mainwindow));
-			} else {
-#if _WIN32
-				wgaim_systray_minimize(mainwindow);
-#endif
-				gtk_widget_hide(mainwindow);
-			}
+	if (gtkblist && gtkblist->window) {
+		if (GTK_WIDGET_VISIBLE(gtkblist->window)) {
+			gaim_blist_set_visible(GAIM_WINDOW_ICONIFIED(gtkblist->window) || gaim_gtk_blist_obscured);
 		} else {
 #if _WIN32
-			wgaim_systray_maximize(mainwindow);
+			wgaim_systray_maximize(gtkblist->window);
 #endif
-			show_login();
+			gaim_blist_set_visible(TRUE);
 		}
 	} else {
-		show_login();
+		/* we're logging in or something... do nothing */
+		/* or should I make the blist? */
+		gaim_debug_warning("gtkblist",
+				   "docklet_toggle called with gaim_connections_get_all() "
+				   "but no blist!\n");
 	}
 }
 
@@ -4468,12 +4448,7 @@
 {
 	docklet_count--;
 	if (!docklet_count) {
-		if (gaim_connections_get_all())
 			gaim_blist_set_visible(TRUE);
-		else if (mainwindow)
-			gtk_window_present(GTK_WINDOW(mainwindow));
-		else
-			show_login();
 	}
 }
 
--- a/src/gtkconn.c	Fri Dec 03 23:44:47 2004 +0000
+++ b/src/gtkconn.c	Sat Dec 04 18:51:56 2004 +0000
@@ -82,10 +82,6 @@
 
 		if (gaim_connections_get_all() == NULL) {
 			gaim_gtkdialogs_destroy_all();
-
-			gaim_blist_destroy();
-
-			show_login();
 		}
 	}
 }
@@ -195,9 +191,6 @@
 		GtkWidget *vbox;
 		GtkWidget *cancel_button;
 
-		if(mainwindow)
-			gtk_widget_hide(mainwindow);
-
 		meter_win = g_new0(struct meter_window, 1);
 		meter_win->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 		gtk_window_set_resizable(GTK_WINDOW(meter_win->window), FALSE);
@@ -270,10 +263,6 @@
 		return;
 
 	gaim_gtkdialogs_destroy_all();
-
-	gaim_blist_destroy();
-
-	show_login();
 }
 
 static void gaim_gtk_connection_notice(GaimConnection *gc,
--- a/src/gtkdialogs.h	Fri Dec 03 23:44:47 2004 +0000
+++ b/src/gtkdialogs.h	Sat Dec 04 18:51:56 2004 +0000
@@ -82,7 +82,6 @@
 };
 
 /* Globals in gtkmain.c */
-extern GtkWidget *mainwindow;
 extern int docklet_count;
 
 /* Globals in gtkthemes.c */
@@ -90,7 +89,6 @@
 extern GSList *smiley_themes;
 
 /* Functions in gtkmain.c */
-extern void show_login();
 extern void gaim_setup(GaimConnection *);
 
 /* Functions in session.c */
--- a/src/gtkmain.c	Fri Dec 03 23:44:47 2004 +0000
+++ b/src/gtkmain.c	Sat Dec 04 18:51:56 2004 +0000
@@ -78,8 +78,6 @@
 static SnDisplay *sn_display = NULL;
 #endif
 
-GtkWidget *mainwindow = NULL;
-
 int opt_away = 0;
 int docklet_count = 0;
 char *opt_away_arg = NULL;
@@ -126,42 +124,6 @@
 	}
 }
 
-static gboolean domiddleclick(GtkWidget *w, GdkEventButton *event, gpointer null)
-{
-	if (event->button != 2)
-		return FALSE;
-
-	gaim_accounts_auto_login(GAIM_GTK_UI);
-
-	return TRUE;
-}
-
-static void dologin(GtkWidget *widget, GtkWidget *w)
-{
-	GaimAccount *account;
-	GtkWidget *item;
-	const char *password = gtk_entry_get_text(GTK_ENTRY(pass));
-
-	item = gtk_menu_get_active(GTK_MENU(gtk_option_menu_get_menu(GTK_OPTION_MENU(name))));
-	account = g_object_get_data(G_OBJECT(item), "account");
-
-	if (!account) {
-		gaim_notify_error(NULL, NULL, _("Please create an account."), NULL);
-		return;
-	}
-
-	gaim_account_set_password(account, (*password != '\0') ? password : NULL);
-
-	gaim_account_connect(account);
-}
-
-/* <name> is a comma-separated list of names, or NULL
-   if NULL and there is at least one user defined in .gaimrc, try to login.
-   if not NULL, parse <name> into separate strings, look up each one in 
-   .gaimrc and, if it's there, try to login.
-   returns:  0 if successful
-            -1 if no user was found that had a saved password
-*/
 static int dologin_named(char *name)
 {
 	GaimAccount *account;
@@ -187,133 +149,6 @@
 	return retval;
 }
 
-
-static void combo_changed(GtkWidget *menu, GaimAccount *account, gpointer data)
-{
-	if (account && gaim_account_get_remember_password(account)) {
-		gtk_entry_set_text(GTK_ENTRY(pass), account->password);
-	} else {
-		gtk_entry_set_text(GTK_ENTRY(pass), "");
-	}
-}
-
-
-static void login_window_closed(GtkWidget *w, GdkEvent *ev, gpointer d)
-{
-	if(docklet_count) {
-#ifdef _WIN32
-		wgaim_systray_minimize(mainwindow);
-#endif
-		gtk_widget_hide(mainwindow);
-	} else
-		gaim_core_quit();
-}
-
-void show_login()
-{
-	GtkWidget *image;
-	GtkWidget *vbox;
-	GtkWidget *button;
-	GtkWidget *hbox;
-	GtkWidget *label;
-	GtkWidget *vbox2;
-
-	/* Do we already have a main window opened? If so, bring it back, baby... ribs... yeah */
-	if (mainwindow) {
-		gtk_window_present(GTK_WINDOW(mainwindow));
-		return;
-	}
-
-	mainwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-
-	gtk_window_set_role(GTK_WINDOW(mainwindow), "login");
-	gtk_window_set_resizable(GTK_WINDOW(mainwindow), FALSE);
-	gtk_window_set_title(GTK_WINDOW(mainwindow), _("Login"));
-	gtk_container_set_border_width(GTK_CONTAINER(mainwindow), 5);
-	g_signal_connect(G_OBJECT(mainwindow), "delete_event",
-					 G_CALLBACK(login_window_closed), mainwindow);
-
-	vbox = gtk_vbox_new(FALSE, 0);
-	gtk_container_add(GTK_CONTAINER(mainwindow), vbox);
-
-	image = gtk_image_new_from_stock(GAIM_STOCK_LOGO, gtk_icon_size_from_name(GAIM_ICON_SIZE_LOGO));
-	gtk_box_pack_start(GTK_BOX(vbox), image, FALSE, FALSE, 0);
-
-	vbox2 = gtk_vbox_new(FALSE, 0);
-	gtk_container_set_border_width(GTK_CONTAINER(vbox2), 5);
-
-	/* why isn't there a gtk_label_new_with_markup? */
-	label = gtk_label_new(NULL);
-	gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("<b>_Account:</b>"));
-	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0);
-
-	name = gaim_gtk_account_option_menu_new(NULL, TRUE, G_CALLBACK(combo_changed), NULL, NULL);
-	gtk_label_set_mnemonic_widget(GTK_LABEL(label), name);
-
-	gtk_box_pack_start(GTK_BOX(vbox2), name, FALSE, TRUE, 0);
-	gtk_box_pack_start(GTK_BOX(vbox), vbox2, FALSE, TRUE, 0);
-
-	vbox2 = gtk_vbox_new(FALSE, 0);
-	gtk_container_set_border_width(GTK_CONTAINER(vbox2), 5);
-
-	label = gtk_label_new(NULL);
-	gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("<b>_Password:</b>"));
-	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0);
-
-	pass = gtk_entry_new();
-	gtk_label_set_mnemonic_widget(GTK_LABEL(label), pass);
-	gtk_entry_set_visibility(GTK_ENTRY(pass), FALSE);
-	g_signal_connect(G_OBJECT(pass), "activate",
-					 G_CALLBACK(dologin), mainwindow);
-	gtk_box_pack_start(GTK_BOX(vbox2), pass, FALSE, TRUE, 0);
-	gtk_box_pack_start(GTK_BOX(vbox), vbox2, FALSE, TRUE, 0);
-
-	/* Now for the button box */
-	hbox = gtk_hbox_new(TRUE, 0);
-	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 5);
-
-	/* And now for the buttons */
-	button = gaim_pixbuf_button_from_stock(_("A_ccounts"), GAIM_STOCK_ACCOUNTS, GAIM_BUTTON_VERTICAL);
-	gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
-	g_signal_connect(G_OBJECT(button), "clicked",
-					 G_CALLBACK(gaim_gtk_accounts_window_show), mainwindow);
-	gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
-
-	button = gaim_pixbuf_button_from_stock(_("P_references"), GTK_STOCK_PREFERENCES, GAIM_BUTTON_VERTICAL);
-	gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
-	g_signal_connect(G_OBJECT(button), "clicked",
-					 G_CALLBACK(gaim_gtk_prefs_show), mainwindow);
-	gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
-
-	button = gaim_pixbuf_button_from_stock(_("_Log in"), GAIM_STOCK_SIGN_ON, GAIM_BUTTON_VERTICAL);
-	gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
-	g_signal_connect(G_OBJECT(button), "clicked",
-					 G_CALLBACK(dologin), mainwindow);
-	g_signal_connect(G_OBJECT(button), "button-press-event", G_CALLBACK(domiddleclick), NULL);
-	gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
-
-	/* Now grab the focus that we need */
-	if (gaim_accounts_get_all()) {
-		GaimAccount *account = gaim_accounts_get_all()->data;
-
-		if (gaim_account_get_remember_password(account)) {
-			combo_changed(NULL, account, NULL);
-			gtk_widget_grab_focus(button);
-		} else {
-			gtk_widget_grab_focus(pass);
-		}
-	} else {
-		gaim_gtk_accounts_window_show();
-		gtk_widget_grab_focus(button);
-	}
-
-	/* And raise the curtain! */
-	gtk_widget_show_all(mainwindow);
-
-}
-
 static void
 clean_pid(void)
 {
@@ -954,10 +789,11 @@
 	if (!opt_acct && !opt_nologin)
 		gaim_accounts_auto_login(GAIM_GTK_UI);
 
+	gaim_blist_show();
+	
 	if (opt_acct) {
 		gaim_gtk_accounts_window_show();
-	} else if ((dologin_ret == -1) && !gaim_connections_get_all())
-		show_login();
+	}
 
 #ifdef HAVE_STARTUP_NOTIFICATION
 	startup_notification_complete();