[empathy] Implement error signal
- From: Guillaume Desmottes <gdesmott src gnome org>
- To: svn-commits-list gnome org
- Subject: [empathy] Implement error signal
- Date: Fri, 22 May 2009 11:45:40 -0400 (EDT)
commit 740f230888350114708d51067e624b31880cfdb2
Author: Gabriel Millaire <millaire gabriel gmail com>
Date: Mon May 11 22:15:14 2009 -0400
Implement error signal
---
libempathy/empathy-tp-roomlist.c | 21 +++++++++++++++++----
1 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/libempathy/empathy-tp-roomlist.c b/libempathy/empathy-tp-roomlist.c
index 417a287..104b8a3 100644
--- a/libempathy/empathy-tp-roomlist.c
+++ b/libempathy/empathy-tp-roomlist.c
@@ -48,6 +48,7 @@ typedef struct {
enum {
NEW_ROOM,
DESTROY,
+ ERROR,
LAST_SIGNAL
};
@@ -239,22 +240,24 @@ tp_roomlist_invalidated_cb (TpChannel *channel,
static void
call_list_rooms_cb (TpChannel *proxy,
const GError *error,
- gpointer user_data,
+ gpointer list,
GObject *weak_object)
{
if (error != NULL) {
DEBUG ("Error listing rooms: %s", error->message);
+ g_signal_emit_by_name (list, "error::start", error);
}
}
static void
stop_listing_cb (TpChannel *proxy,
const GError *error,
- gpointer user_data,
+ gpointer list,
GObject *weak_object)
{
if (error != NULL) {
DEBUG ("Error on stop listing: %s", error->message);
+ g_signal_emit_by_name (list, "error::stop", error);
}
}
@@ -452,6 +455,16 @@ empathy_tp_roomlist_class_init (EmpathyTpRoomlistClass *klass)
G_TYPE_NONE,
0);
+ signals[ERROR] =
+ g_signal_new ("error",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL, NULL,
+ g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE,
+ 1, G_TYPE_POINTER);
+
g_type_class_add_private (object_class, sizeof (EmpathyTpRoomlistPriv));
}
@@ -506,7 +519,7 @@ empathy_tp_roomlist_start (EmpathyTpRoomlist *list)
g_return_if_fail (EMPATHY_IS_TP_ROOMLIST (list));
if (priv->channel != NULL) {
tp_cli_channel_type_room_list_call_list_rooms (priv->channel, -1,
- call_list_rooms_cb, NULL, NULL, NULL);
+ call_list_rooms_cb, list, NULL, NULL);
} else {
priv->start_requested = TRUE;
}
@@ -521,6 +534,6 @@ empathy_tp_roomlist_stop (EmpathyTpRoomlist *list)
g_return_if_fail (TP_IS_CHANNEL (priv->channel));
tp_cli_channel_type_room_list_call_stop_listing (priv->channel, -1,
- stop_listing_cb, NULL, NULL, NULL);
+ stop_listing_cb, list, NULL, NULL);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]