empathy r773 - in trunk: libempathy libempathy-gtk
- From: xclaesse svn gnome org
- To: svn-commits-list gnome org
- Subject: empathy r773 - in trunk: libempathy libempathy-gtk
- Date: Tue, 11 Mar 2008 12:23:08 +0000 (GMT)
Author: xclaesse
Date: Tue Mar 11 12:23:08 2008
New Revision: 773
URL: http://svn.gnome.org/viewvc/empathy?rev=773&view=rev
Log:
Implement _set_property
Modified:
trunk/libempathy-gtk/empathy-group-chat.c
trunk/libempathy/empathy-tp-chat.c
trunk/libempathy/empathy-tp-chat.h
Modified: trunk/libempathy-gtk/empathy-group-chat.c
==============================================================================
--- trunk/libempathy-gtk/empathy-group-chat.c (original)
+++ trunk/libempathy-gtk/empathy-group-chat.c Tue Mar 11 12:23:08 2008
@@ -391,7 +391,7 @@
g_value_init (&value, G_TYPE_STRING);
g_value_set_string (&value, topic);
empathy_tp_chat_set_property (EMPATHY_TP_CHAT (priv->tp_chat),
- &value);
+ "subject", &value);
g_value_unset (&value);
}
}
Modified: trunk/libempathy/empathy-tp-chat.c
==============================================================================
--- trunk/libempathy/empathy-tp-chat.c (original)
+++ trunk/libempathy/empathy-tp-chat.c Tue Mar 11 12:23:08 2008
@@ -25,6 +25,7 @@
#include <telepathy-glib/channel.h>
#include <telepathy-glib/dbus.h>
+#include <telepathy-glib/util.h>
#include "empathy-tp-chat.h"
#include "empathy-contact-factory.h"
@@ -395,6 +396,10 @@
EmpathyTpChatPriv *priv = GET_PRIV (chat);
guint i, j;
+ if (!priv->had_properties_list || !properties) {
+ return;
+ }
+
for (i = 0; i < properties->len; i++) {
GValueArray *prop_struct;
TpChatProperty *property;
@@ -492,9 +497,44 @@
void
empathy_tp_chat_set_property (EmpathyTpChat *chat,
+ const gchar *name,
const GValue *value)
{
- /* FIXME: not implemented */
+ EmpathyTpChatPriv *priv = GET_PRIV (chat);
+ TpChatProperty *property;
+ guint i;
+
+ for (i = 0; i < priv->properties->len; i++) {
+ property = g_ptr_array_index (priv->properties, i);
+ if (!tp_strdiff (property->name, name)) {
+ GPtrArray *properties;
+ GValueArray *prop;
+ GValue id = {0, };
+ GValue dest_value = {0, };
+
+ g_value_init (&id, G_TYPE_UINT);
+ g_value_init (&dest_value, G_TYPE_VALUE);
+ g_value_set_uint (&id, property->id);
+ g_value_set_boxed (&dest_value, value);
+
+ prop = g_value_array_new (2);
+ g_value_array_append (prop, &id);
+ g_value_array_append (prop, &dest_value);
+
+ properties = g_ptr_array_sized_new (1);
+ g_ptr_array_add (properties, prop);
+
+ empathy_debug (DEBUG_DOMAIN, "Set property %s", name);
+ tp_cli_properties_interface_call_set_properties (priv->channel, -1,
+ properties,
+ (tp_cli_properties_interface_callback_for_set_properties)
+ tp_chat_async_cb,
+ "Seting property", NULL,
+ G_OBJECT (chat));
+
+ break;
+ }
+ }
}
static gboolean
Modified: trunk/libempathy/empathy-tp-chat.h
==============================================================================
--- trunk/libempathy/empathy-tp-chat.h (original)
+++ trunk/libempathy/empathy-tp-chat.h Tue Mar 11 12:23:08 2008
@@ -69,6 +69,7 @@
TpChannelChatState state);
const gchar * empathy_tp_chat_get_id (EmpathyTpChat *chat);
void empathy_tp_chat_set_property (EmpathyTpChat *chat,
+ const gchar *name,
const GValue *value);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]