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 73a458cb9..737a449d2 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 7f3091a9b..9f36cf552 100644
--- a/libempathy-gtk/empathy-contact-menu.c
+++ b/libempathy-gtk/empathy-contact-menu.c
@@ -234,7 +234,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;
@@ -252,13 +252,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 cea55a200..172b1facd 100644
--- a/libempathy-gtk/empathy-individual-view.c
+++ b/libempathy-gtk/empathy-individual-view.c
@@ -2448,11 +2448,14 @@ individual_view_remove_activate_cb (GtkMenuItem *menuitem,
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 71d15bb34..d56570c92 100644
--- a/libempathy/empathy-individual-manager.c
+++ b/libempathy/empathy-individual-manager.c
@@ -532,7 +532,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;
@@ -558,7 +559,7 @@ empathy_individual_manager_set_blocked (EmpathyIndividualManager *self,
manager = empathy_contact_manager_dup_singleton ();
empathy_contact_list_set_blocked (
EMPATHY_CONTACT_LIST (manager),
- contact, blocked);
+ contact, blocked, abusive);
g_object_unref (manager);
g_object_unref (contact);
diff --git a/libempathy/empathy-individual-manager.h b/libempathy/empathy-individual-manager.h
index 75411b49c..1fec67d91 100644
--- a/libempathy/empathy-individual-manager.h
+++ b/libempathy/empathy-individual-manager.h
@@ -87,7 +87,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);