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 */
{
static guint block_signal = 0;
EmpathyContactManager *manager;
- gboolean blocked;
+ gboolean blocked, abusive;
if (block_signal > 0)
return;
"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 */
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
{
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
EmpathyContact *contact);
void (*set_blocked) (EmpathyContactList *list,
EmpathyContact *contact,
- gboolean blocked);
+ gboolean blocked,
+ gboolean abusive);
gboolean (*get_blocked) (EmpathyContactList *list,
EmpathyContact *contact);
};
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);
static void
contact_manager_set_blocked (EmpathyContactList *manager,
EmpathyContact *contact,
- gboolean blocked)
+ gboolean blocked,
+ gboolean abusive)
{
EmpathyContactManagerPriv *priv = GET_PRIV (manager);
EmpathyContactList *list;
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);
}
}
void
empathy_individual_manager_set_blocked (EmpathyIndividualManager *self,
FolksIndividual *individual,
- gboolean blocked)
+ gboolean blocked,
+ gboolean abusive)
{
EmpathyIndividualManagerPriv *priv;
GList *personas, *l;
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);
void empathy_individual_manager_set_blocked (EmpathyIndividualManager *self,
FolksIndividual *individual,
- gboolean blocked);
+ gboolean blocked,
+ gboolean abusive);
G_END_DECLS
#endif /* __EMPATHY_INDIVIDUAL_MANAGER_H__ */
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);