[Galago-commits] r2587 - in trunk/libgalago: . libgalago

galago-commits at freedesktop.org galago-commits at freedesktop.org
Fri Feb 17 02:59:26 PST 2006


Author: chipx86
Date: 2006-02-17 02:59:18 -0800 (Fri, 17 Feb 2006)
New Revision: 2587

Modified:
   trunk/libgalago/ChangeLog
   trunk/libgalago/libgalago/Makefile.am
   trunk/libgalago/libgalago/galago-account.c
   trunk/libgalago/libgalago/galago-object.c
   trunk/libgalago/libgalago/galago-person.c
   trunk/libgalago/libgalago/galago-presence.c
   trunk/libgalago/libgalago/galago-service.c
   trunk/libgalago/libgalago/galago-status.c
   trunk/libgalago/libgalago/galago-status.h
Log:
- Added property notification to all objects.
- Added a GALAGO_STATUS_ATTR_MESSAGE define.


Modified: trunk/libgalago/ChangeLog
===================================================================
--- trunk/libgalago/ChangeLog	2006-02-14 19:05:22 UTC (rev 2586)
+++ trunk/libgalago/ChangeLog	2006-02-17 10:59:18 UTC (rev 2587)
@@ -1,3 +1,16 @@
+Fri Feb 17 00:38:15 PST 2006  Christian Hammond <chipx86 at chipx86.com>
+
+	* libgalago/galago-account.c:
+	* libgalago/galago-object.c:
+	* libgalago/galago-person.c:
+	* libgalago/galago-presence.c:
+	* libgalago/galago-service.c:
+	* libgalago/galago-status.c:
+	* libgalago/galago-status.h:
+	* libgalago/Makefile.am:
+	  - Added property notification to all objects.
+	  - Added a GALAGO_STATUS_ATTR_MESSAGE define.
+
 Tue Feb 14 11:05:05 PST 2006  Christian Hammond <chipx86 at chipx86.com>
 
 	* libgalago/galago-core.c:

Modified: trunk/libgalago/libgalago/Makefile.am
===================================================================
--- trunk/libgalago/libgalago/Makefile.am	2006-02-14 19:05:22 UTC (rev 2586)
+++ trunk/libgalago/libgalago/Makefile.am	2006-02-17 10:59:18 UTC (rev 2587)
@@ -19,7 +19,8 @@
 	galago-person.h \
 	galago-presence.h \
 	galago-service.h \
-	galago-status.h
+	galago-status.h \
+	galago-value.h
 
 galagoinc_HEADERS = \
 	$(galago_headers) \
@@ -49,8 +50,7 @@
 	galago-private.h \
 	galago-service.c \
 	galago-status.c \
-	galago-value.c \
-	galago-value.h
+	galago-value.c
 
 libgalago_la_LIBADD = \
 	$(PACKAGE_LIBS)

Modified: trunk/libgalago/libgalago/galago-account.c
===================================================================
--- trunk/libgalago/libgalago/galago-account.c	2006-02-14 19:05:22 UTC (rev 2586)
+++ trunk/libgalago/libgalago/galago-account.c	2006-02-17 10:59:18 UTC (rev 2587)
@@ -397,21 +397,23 @@
 	switch (prop_id)
 	{
 		case PROP_SERVICE:
-			account->priv->service =
-				(GalagoService *)g_value_get_object(value);
+			account->priv->service = GALAGO_SERVICE(g_value_get_object(value));
+			g_object_notify(G_OBJECT(account), "service");
 			break;
 
 		case PROP_PERSON:
-			account->priv->person = (GalagoPerson *)g_value_get_object(value);
+			account->priv->person = GALAGO_PERSON(g_value_get_object(value));
+			g_object_notify(G_OBJECT(account), "person");
 			break;
 
 		case PROP_AVATAR:
 			galago_account_set_avatar(account,
-				(GalagoImage *)g_value_get_object(value));
+				GALAGO_IMAGE(g_value_get_object(value)));
 			break;
 
 		case PROP_USERNAME:
 			account->priv->username = g_value_dup_string(value);
+			g_object_notify(G_OBJECT(account), "username");
 			break;
 
 		case PROP_DISPLAYNAME:
@@ -583,6 +585,9 @@
 								 NULL);
 	}
 
+	g_object_notify(G_OBJECT(account), "connected");
+
+	/* XXX Is this redundant? */
 	g_signal_emit(account, signals[CONNECTION_STATE_CHANGED], 0);
 }
 
@@ -676,6 +681,9 @@
 								 NULL);
 	}
 
+	g_object_notify(G_OBJECT(account), "display-name");
+
+	/* XXX Is this redundant? */
 	g_signal_emit(account, signals[DISPLAY_NAME_CHANGED], 0);
 }
 
@@ -849,6 +857,7 @@
 				"GetPresence",
 				galago_value_new_object(GALAGO_TYPE_PRESENCE, NULL),
 				NULL);
+		g_object_notify(G_OBJECT(account), "presence");
 	}
 
 	return account->priv->presence;
@@ -879,6 +888,8 @@
 		_galago_dbus_account_set_avatar(account, avatar);
 
 	g_signal_emit(account, signals[AVATAR_SET], 0, avatar);
+
+	g_object_notify(G_OBJECT(account), "avatar");
 }
 
 GalagoImage *
@@ -896,6 +907,7 @@
 				"GetAvatar",
 				galago_value_new_object(GALAGO_TYPE_IMAGE, NULL),
 				NULL);
+		g_object_notify(G_OBJECT(account), "avatar");
 	}
 
 	return account->priv->avatar;
@@ -904,6 +916,8 @@
 void
 _galago_account_set_presence(GalagoAccount *account, GalagoPresence *presence)
 {
+	gboolean emit_deleted = FALSE;
+
 	g_return_if_fail(account != NULL);
 	g_return_if_fail(GALAGO_IS_ACCOUNT(account));
 
@@ -919,12 +933,15 @@
 			g_object_unref(old_presence);
 		}
 
-		account->priv->presence = NULL;
+		emit_deleted = (presence == NULL);
 	}
 
 	account->priv->presence = presence;
 
-	g_signal_emit(account, signals[PRESENCE_DELETED], 0);
+	g_object_notify(G_OBJECT(account), "presence");
+
+	if (emit_deleted)
+		g_signal_emit(account, signals[PRESENCE_DELETED], 0);
 }
 
 void

Modified: trunk/libgalago/libgalago/galago-object.c
===================================================================
--- trunk/libgalago/libgalago/galago-object.c	2006-02-14 19:05:22 UTC (rev 2586)
+++ trunk/libgalago/libgalago/galago-object.c	2006-02-17 10:59:18 UTC (rev 2587)
@@ -195,6 +195,7 @@
 	{
 		case PROP_ORIGIN:
 			object->priv->origin = g_value_get_enum(value);
+			g_object_notify(gobject, "origin");
 			break;
 
 		default:

Modified: trunk/libgalago/libgalago/galago-person.c
===================================================================
--- trunk/libgalago/libgalago/galago-person.c	2006-02-14 19:05:22 UTC (rev 2586)
+++ trunk/libgalago/libgalago/galago-person.c	2006-02-17 10:59:18 UTC (rev 2587)
@@ -147,7 +147,7 @@
 							G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
 
 	g_object_class_install_property(gobject_class, PROP_SESSION_ID,
-		g_param_spec_string("session_id", "Session ID",
+		g_param_spec_string("session-id", "Session ID",
 							"The person's session ID",
 							NULL,
 							G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
@@ -305,11 +305,11 @@
 	switch (prop_id)
 	{
 		case PROP_ID:
-			person->priv->id = g_value_dup_string(value);
+			_galago_person_set_id(person, g_value_get_string(value));
 			break;
 
 		case PROP_SESSION_ID:
-			person->priv->session_id = g_value_dup_string(value);
+			_galago_person_set_session_id(person, g_value_get_string(value));
 			break;
 
 		case PROP_PHOTO:
@@ -440,6 +440,8 @@
 		g_free(person->priv->id);
 
 	person->priv->id = (id == NULL ? NULL : g_strdup(id));
+
+	g_object_notify(G_OBJECT(person), "id");
 }
 
 void
@@ -453,6 +455,8 @@
 
 	person->priv->session_id =
 		(session_id == NULL ? NULL : g_strdup(session_id));
+
+	g_object_notify(G_OBJECT(person), "session-id");
 }
 
 const char *
@@ -527,6 +531,9 @@
 	if (GALAGO_OBJECT_IS_LOCAL(person))
 		_galago_dbus_person_set_photo(person, photo);
 
+	g_object_notify(G_OBJECT(person), "photo");
+
+	/* XXX Is this redundant? */
 	g_signal_emit(person, signals[PHOTO_SET], 0, photo);
 }
 
@@ -545,6 +552,7 @@
 				"GetPhoto",
 				galago_value_new_object(GALAGO_TYPE_IMAGE, NULL),
 				NULL);
+		g_object_notify(G_OBJECT(person), "photo");
 	}
 
 	return person->priv->photo;
@@ -580,19 +588,12 @@
 	if (query && GALAGO_OBJECT_IS_REMOTE(person) && !galago_is_daemon() &&
 		galago_is_connected())
 	{
-		GList *temp;
-
 		galago_context_push(galago_object_get_context(GALAGO_OBJECT(person)));
-		/* galago_signal_context_freeze(signal_context); */
-
-		temp = galago_dbus_send_message_with_reply(GALAGO_OBJECT(person),
+		g_list_free(galago_dbus_send_message_with_reply(GALAGO_OBJECT(person),
 			"GetAccounts",
 			galago_value_new_list(GALAGO_VALUE_TYPE_OBJECT, NULL,
 								  (void *)GALAGO_TYPE_ACCOUNT),
-			NULL);
-		g_list_free(temp);
-
-		/* galago_signal_context_thaw(signal_context); */
+			NULL));
 		galago_context_pop();
 	}
 
@@ -709,7 +710,8 @@
 
 GalagoAccount *
 galago_person_get_account(const GalagoPerson *person,
-						  const GalagoService *service, const char *username,
+						  const GalagoService *service,
+						  const char *username,
 						  gboolean query)
 {
 	GalagoAccount *account;

Modified: trunk/libgalago/libgalago/galago-presence.c
===================================================================
--- trunk/libgalago/libgalago/galago-presence.c	2006-02-14 19:05:22 UTC (rev 2586)
+++ trunk/libgalago/libgalago/galago-presence.c	2006-02-17 10:59:18 UTC (rev 2587)
@@ -283,7 +283,8 @@
 	{
 		case PROP_ACCOUNT:
 			presence->priv->account =
-				(GalagoAccount *)g_value_get_object(value);
+				GALAGO_ACCOUNT(g_value_get_object(value));
+			g_object_notify(G_OBJECT(presence), "account");
 			break;
 
 		default:

Modified: trunk/libgalago/libgalago/galago-service.c
===================================================================
--- trunk/libgalago/libgalago/galago-service.c	2006-02-14 19:05:22 UTC (rev 2586)
+++ trunk/libgalago/libgalago/galago-service.c	2006-02-17 10:59:18 UTC (rev 2587)
@@ -271,14 +271,17 @@
 	{
 		case PROP_FLAGS:
 			service->priv->flags = g_value_get_flags(value);
+			g_object_notify(G_OBJECT(service), "flags");
 			break;
 
 		case PROP_ID:
 			service->priv->id = g_value_dup_string(value);
+			g_object_notify(G_OBJECT(service), "id");
 			break;
 
 		case PROP_NAME:
 			service->priv->name = g_value_dup_string(value);
+			g_object_notify(G_OBJECT(service), "name");
 			break;
 
 		default:

Modified: trunk/libgalago/libgalago/galago-status.c
===================================================================
--- trunk/libgalago/libgalago/galago-status.c	2006-02-14 19:05:22 UTC (rev 2586)
+++ trunk/libgalago/libgalago/galago-status.c	2006-02-17 10:59:18 UTC (rev 2587)
@@ -394,23 +394,27 @@
 		case PROP_TYPE:
 			status->priv->primitive =
 				(GalagoStatusType)g_value_get_enum(value);
+			g_object_notify(object, "primitive");
 			break;
 
 		case PROP_PRESENCE:
 			galago_status_set_presence(status,
-				(GalagoPresence *)g_value_get_object(value));
+				GALAGO_PRESENCE(g_value_get_object(value)));
 			break;
 
 		case PROP_ID:
 			status->priv->id = g_value_dup_string(value);
+			g_object_notify(object, "id");
 			break;
 
 		case PROP_NAME:
 			status->priv->name = g_value_dup_string(value);
+			g_object_notify(object, "name");
 			break;
 
 		case PROP_EXCLUSIVE:
 			status->priv->exclusive = g_value_get_boolean(value);
+			g_object_notify(object, "exclusive");
 			break;
 
 		default:
@@ -570,8 +574,13 @@
 {
 	g_return_if_fail(status != NULL);
 	g_return_if_fail(GALAGO_IS_STATUS(status));
+	g_return_if_fail(presence == NULL || GALAGO_IS_PRESENCE(presence));
 
+	if (status->priv->presence == presence)
+		return;
+
 	status->priv->presence = presence;
+	g_object_notify(G_OBJECT(status), "presence");
 }
 
 GalagoPresence *

Modified: trunk/libgalago/libgalago/galago-status.h
===================================================================
--- trunk/libgalago/libgalago/galago-status.h	2006-02-14 19:05:22 UTC (rev 2586)
+++ trunk/libgalago/libgalago/galago-status.h	2006-02-17 10:59:18 UTC (rev 2587)
@@ -68,6 +68,18 @@
 /*@}*/
 
 /**************************************************************************/
+/** @name Common Status Attributes                                        */
+/**************************************************************************/
+/*@{*/
+
+/**
+ * A message attribute, typically used for custom away and available messages.
+ */
+#define GALAGO_STATUS_ATTR_MESSAGE "message"
+
+/*@}*/
+
+/**************************************************************************/
 /** @name Status API                                                      */
 /**************************************************************************/
 /*@{*/



More information about the galago-commits mailing list