changeset 11806:7584d802f0ac

[gaim-migrate @ 14097] 1. Improve "gaim -n" Using this now sets your current status to "Offline." This isn't shown in the gtkstatusbox yet. 2. Change gtkstatusbox to use gaim_savedstatus_activate() instead of having duplicate code. 3. Change gaim_savedstatus_activate() to only attempt to set the "message" attribute of a status when the status type supports the attribute. I think this'll get rid of some warnings CVS is getting good. Can you feel it? committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Tue, 25 Oct 2005 04:23:07 +0000
parents 615c2fd3d72e
children 1f70f265cf27
files src/gtkmain.c src/gtkstatusbox.c src/savedstatuses.c
diffstat 3 files changed, 20 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/src/gtkmain.c	Tue Oct 25 01:00:28 2005 +0000
+++ b/src/gtkmain.c	Tue Oct 25 04:23:07 2005 +0000
@@ -669,7 +669,19 @@
 		}
 	}
 
-	if (!opt_nologin)
+	if (opt_nologin)
+	{
+		/* Set all accounts to "offline" */
+		GaimSavedStatus *saved_status;
+		saved_status = gaim_savedstatus_find(_("Default"));
+		if (saved_status == NULL)
+			saved_status = gaim_savedstatus_new(_("Default"), GAIM_STATUS_OFFLINE);
+		else
+			gaim_savedstatus_set_type(saved_status, GAIM_STATUS_OFFLINE);
+		gaim_prefs_set_string("/core/status/current", _("Default"));
+		gaim_savedstatus_activate(saved_status);
+	}
+	else
 	{
 		/* Everything is good to go--sign on already */
 		gaim_accounts_restore_previous_statuses();
--- a/src/gtkstatusbox.c	Tue Oct 25 01:00:28 2005 +0000
+++ b/src/gtkstatusbox.c	Tue Oct 25 04:23:07 2005 +0000
@@ -631,7 +631,6 @@
 {
 	GtkGaimStatusBoxItemType type;
 	gchar *title;
-	GList *l;
 	GtkTreeIter iter;
 	char *message;
 	GaimSavedStatus *saved_status;
@@ -660,23 +659,7 @@
 	gaim_prefs_set_string("/core/status/current", _("Default"));
 
 	/* Set the status for each account */
-	for (l = gaim_accounts_get_all(); l != NULL; l = l->next)
-	{
-		GaimAccount *account = (GaimAccount*)l->data;
-		GaimStatusType *status_type;
-
-		if (!gaim_account_get_enabled(account, GAIM_GTK_UI))
-			continue;
-
-		status_type = gaim_account_get_status_type_with_primitive(account, type);
-
-		if (status_type == NULL)
-			continue;
-
-		gaim_account_set_status(account,
-								gaim_status_type_get_id(status_type),
-								TRUE, "message", message, NULL);
-	}
+	gaim_savedstatus_activate(saved_status);
 
 	g_free(title);
 	g_free(message);
--- a/src/savedstatuses.c	Tue Oct 25 01:00:28 2005 +0000
+++ b/src/savedstatuses.c	Tue Oct 25 04:23:07 2005 +0000
@@ -531,12 +531,17 @@
 
 	if (status_type != NULL)
 	{
-		if (saved_status->message != NULL)
+		if ((saved_status->message != NULL) &&
+			(gaim_status_type_get_attr(status_type, "message")))
+		{
 			gaim_account_set_status(account, gaim_status_type_get_id(status_type),
 									TRUE, "message", saved_status->message, NULL);
+		}
 		else
+		{
 			gaim_account_set_status(account, gaim_status_type_get_id(status_type),
 									TRUE, NULL);
+		}
 	}
 }