[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