From: Guillaume Desmottes Date: Wed, 2 Nov 2011 09:43:19 +0000 (+0100) Subject: contact-menu: use tp-glib blocking API X-Git-Url: https://git.0d.be/?p=empathy.git;a=commitdiff_plain;h=60c5906232a73b8911eac873fa208b681e0b7999 contact-menu: use tp-glib blocking API https://bugzilla.gnome.org/show_bug.cgi?id=661805 --- diff --git a/libempathy-gtk/empathy-contact-menu.c b/libempathy-gtk/empathy-contact-menu.c index 07def607..a6f5a209 100644 --- a/libempathy-gtk/empathy-contact-menu.c +++ b/libempathy-gtk/empathy-contact-menu.c @@ -226,8 +226,8 @@ empathy_contact_block_menu_item_toggled (GtkCheckMenuItem *item, EmpathyContact *contact) { static guint block_signal = 0; - EmpathyContactManager *manager; gboolean blocked, abusive; + TpContact *tp_contact; if (block_signal > 0) return; @@ -252,10 +252,12 @@ empathy_contact_block_menu_item_toggled (GtkCheckMenuItem *item, return; } - manager = empathy_contact_manager_dup_singleton (); - empathy_contact_list_set_blocked (EMPATHY_CONTACT_LIST (manager), - contact, blocked, abusive); - g_object_unref (manager); + tp_contact = empathy_contact_get_tp_contact (contact); + + if (blocked) + tp_contact_block_async (tp_contact, abusive, NULL, NULL); + else + tp_contact_unblock_async (tp_contact, NULL, NULL); /* update the toggle with the blocked status */ block_signal++; @@ -269,8 +271,7 @@ empathy_contact_block_menu_item_new (EmpathyContact *contact) GtkWidget *item; EmpathyContactManager *manager; TpConnection *connection; - EmpathyContactListFlags flags; - gboolean blocked; + TpContact *tp_contact; g_return_val_if_fail (EMPATHY_IS_CONTACT (contact), NULL); @@ -282,19 +283,16 @@ empathy_contact_block_menu_item_new (EmpathyContact *contact) connection = empathy_contact_get_connection (contact); - flags = empathy_contact_manager_get_flags_for_connection (manager, - connection); - - if (!(flags & EMPATHY_CONTACT_LIST_CAN_BLOCK)) { + if (!tp_proxy_has_interface_by_id (connection, + TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACT_BLOCKING)) return NULL; - } item = gtk_check_menu_item_new_with_mnemonic (_("_Block Contact")); - blocked = empathy_contact_list_get_blocked ( - EMPATHY_CONTACT_LIST (manager), - contact); - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), blocked); + tp_contact = empathy_contact_get_tp_contact (contact); + + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), + tp_contact_is_blocked (tp_contact)); g_signal_connect (item, "toggled", G_CALLBACK (empathy_contact_block_menu_item_toggled),