aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libempathy-gtk/empathy-contact-dialogs.c6
-rw-r--r--libempathy-gtk/empathy-contact-menu.c6
-rw-r--r--libempathy-gtk/empathy-individual-view.c7
-rw-r--r--libempathy/empathy-contact-list.c5
-rw-r--r--libempathy/empathy-contact-list.h6
-rw-r--r--libempathy/empathy-contact-manager.c6
-rw-r--r--libempathy/empathy-individual-manager.c5
-rw-r--r--libempathy/empathy-individual-manager.h3
-rw-r--r--libempathy/empathy-tp-contact-list.c3
9 files changed, 30 insertions, 17 deletions
diff --git a/libempathy-gtk/empathy-contact-dialogs.c b/libempathy-gtk/empathy-contact-dialogs.c
index 0b388851e..b9bf7e050 100644
--- a/libempathy-gtk/empathy-contact-dialogs.c
+++ b/libempathy-gtk/empathy-contact-dialogs.c
@@ -85,15 +85,17 @@ subscription_dialog_response_cb (GtkDialog *dialog,
contact, "");
}
else if (response == GTK_RESPONSE_REJECT) {
+ gboolean abusive;
+
/* confirm the blocking */
if (empathy_block_contact_dialog_show (GTK_WINDOW (dialog),
- contact, NULL)) {
+ contact, &abusive)) {
empathy_contact_list_remove (
EMPATHY_CONTACT_LIST (manager),
contact, "");
empathy_contact_list_set_blocked (
EMPATHY_CONTACT_LIST (manager),
- contact, TRUE);
+ contact, TRUE, abusive);
} else {
/* if they don't confirm, return back to the
* first dialog */
diff --git a/libempathy-gtk/empathy-contact-menu.c b/libempathy-gtk/empathy-contact-menu.c
index 9984de42d..64056eebf 100644
--- a/libempathy-gtk/empathy-contact-menu.c
+++ b/libempathy-gtk/empathy-contact-menu.c
@@ -232,7 +232,7 @@ empathy_contact_block_menu_item_toggled (GtkCheckMenuItem *item,
{
static guint block_signal = 0;
EmpathyContactManager *manager;
- gboolean blocked;
+ gboolean blocked, abusive;
if (block_signal > 0)
return;
@@ -250,13 +250,13 @@ empathy_contact_block_menu_item_toggled (GtkCheckMenuItem *item,
"window");
if (!empathy_block_contact_dialog_show (GTK_WINDOW (parent),
- contact, NULL))
+ contact, &abusive))
return;
}
manager = empathy_contact_manager_dup_singleton ();
empathy_contact_list_set_blocked (EMPATHY_CONTACT_LIST (manager),
- contact, blocked);
+ contact, blocked, abusive);
g_object_unref (manager);
/* update the toggle with the blocked status */
diff --git a/libempathy-gtk/empathy-individual-view.c b/libempathy-gtk/empathy-individual-view.c
index 55d25f801..d952b8269 100644
--- a/libempathy-gtk/empathy-individual-view.c
+++ b/libempathy-gtk/empathy-individual-view.c
@@ -2352,11 +2352,14 @@ individual_view_remove_activate_cb (GtkMenuItem *menuitem,
text, can_block);
if (res == GTK_RESPONSE_YES || res == GTK_RESPONSE_REJECT)
{
+ gboolean abusive;
+
if (res == GTK_RESPONSE_REJECT &&
- empathy_block_individual_dialog_show (parent, individual, NULL))
+ empathy_block_individual_dialog_show (parent, individual,
+ &abusive))
{
empathy_individual_manager_set_blocked (manager, individual,
- TRUE);
+ TRUE, abusive);
}
else
{
diff --git a/libempathy/empathy-contact-list.c b/libempathy/empathy-contact-list.c
index d8af8938f..d28866735 100644
--- a/libempathy/empathy-contact-list.c
+++ b/libempathy/empathy-contact-list.c
@@ -282,12 +282,13 @@ empathy_contact_list_remove_from_favourites (EmpathyContactList *list,
void
empathy_contact_list_set_blocked (EmpathyContactList *list,
EmpathyContact *contact,
- gboolean blocked)
+ gboolean blocked,
+ gboolean abusive)
{
EmpathyContactListIface *iface = EMPATHY_CONTACT_LIST_GET_IFACE (list);
if (iface->set_blocked != NULL)
- iface->set_blocked (list, contact, blocked);
+ iface->set_blocked (list, contact, blocked, abusive);
}
gboolean
diff --git a/libempathy/empathy-contact-list.h b/libempathy/empathy-contact-list.h
index 8be93baf9..cf523bf2a 100644
--- a/libempathy/empathy-contact-list.h
+++ b/libempathy/empathy-contact-list.h
@@ -81,7 +81,8 @@ struct _EmpathyContactListIface {
EmpathyContact *contact);
void (*set_blocked) (EmpathyContactList *list,
EmpathyContact *contact,
- gboolean blocked);
+ gboolean blocked,
+ gboolean abusive);
gboolean (*get_blocked) (EmpathyContactList *list,
EmpathyContact *contact);
};
@@ -125,7 +126,8 @@ void empathy_contact_list_remove_from_favourites
void empathy_contact_list_set_blocked (EmpathyContactList *list,
EmpathyContact *contact,
- gboolean blocked);
+ gboolean blocked,
+ gboolean abusive);
gboolean empathy_contact_list_get_blocked (EmpathyContactList *list,
EmpathyContact *contact);
diff --git a/libempathy/empathy-contact-manager.c b/libempathy/empathy-contact-manager.c
index 2242159b5..b00f82477 100644
--- a/libempathy/empathy-contact-manager.c
+++ b/libempathy/empathy-contact-manager.c
@@ -867,7 +867,8 @@ contact_manager_remove_group (EmpathyContactList *manager,
static void
contact_manager_set_blocked (EmpathyContactList *manager,
EmpathyContact *contact,
- gboolean blocked)
+ gboolean blocked,
+ gboolean abusive)
{
EmpathyContactManagerPriv *priv = GET_PRIV (manager);
EmpathyContactList *list;
@@ -879,7 +880,8 @@ contact_manager_set_blocked (EmpathyContactList *manager,
list = g_hash_table_lookup (priv->lists, connection);
if (list != NULL) {
- empathy_contact_list_set_blocked (list, contact, blocked);
+ empathy_contact_list_set_blocked (list, contact,
+ blocked, abusive);
}
}
diff --git a/libempathy/empathy-individual-manager.c b/libempathy/empathy-individual-manager.c
index 4adf8e1cb..0a99b7c23 100644
--- a/libempathy/empathy-individual-manager.c
+++ b/libempathy/empathy-individual-manager.c
@@ -503,7 +503,8 @@ empathy_individual_manager_supports_blocking (EmpathyIndividualManager *self,
void
empathy_individual_manager_set_blocked (EmpathyIndividualManager *self,
FolksIndividual *individual,
- gboolean blocked)
+ gboolean blocked,
+ gboolean abusive)
{
EmpathyIndividualManagerPriv *priv;
GList *personas, *l;
@@ -527,7 +528,7 @@ empathy_individual_manager_set_blocked (EmpathyIndividualManager *self,
empathy_contact_set_persona (contact, FOLKS_PERSONA (persona));
empathy_contact_list_set_blocked (
EMPATHY_CONTACT_LIST (priv->contact_manager),
- contact, blocked);
+ contact, blocked, abusive);
g_object_unref (contact);
}
diff --git a/libempathy/empathy-individual-manager.h b/libempathy/empathy-individual-manager.h
index cace94794..e0d8cf4de 100644
--- a/libempathy/empathy-individual-manager.h
+++ b/libempathy/empathy-individual-manager.h
@@ -102,7 +102,8 @@ gboolean empathy_individual_manager_supports_blocking (
void empathy_individual_manager_set_blocked (EmpathyIndividualManager *self,
FolksIndividual *individual,
- gboolean blocked);
+ gboolean blocked,
+ gboolean abusive);
G_END_DECLS
#endif /* __EMPATHY_INDIVIDUAL_MANAGER_H__ */
diff --git a/libempathy/empathy-tp-contact-list.c b/libempathy/empathy-tp-contact-list.c
index ec4f17245..9b3383d9f 100644
--- a/libempathy/empathy-tp-contact-list.c
+++ b/libempathy/empathy-tp-contact-list.c
@@ -1313,7 +1313,8 @@ tp_contact_list_get_flags (EmpathyContactList *list)
static void
tp_contact_list_set_blocked (EmpathyContactList *list,
EmpathyContact *contact,
- gboolean blocked)
+ gboolean blocked,
+ gboolean abusive)
{
EmpathyTpContactListPriv *priv = GET_PRIV (list);
TpHandle handle = empathy_contact_get_handle (contact);