X-Git-Url: https://git.0d.be/?p=empathy.git;a=blobdiff_plain;f=libempathy-gtk%2Fempathy-contact-dialogs.c;fp=libempathy-gtk%2Fempathy-contact-dialogs.c;h=8408ed6ca69109364027f195580730d9af711841;hp=11b608bef051beeed665e896d91b7137bcf5b376;hb=95283d6bffb0b907ec1741c6c685e7fe67d701a0;hpb=9cf8d924a615ead7f3e74644d0b9d39532645649 diff --git a/libempathy-gtk/empathy-contact-dialogs.c b/libempathy-gtk/empathy-contact-dialogs.c index 11b608be..8408ed6c 100644 --- a/libempathy-gtk/empathy-contact-dialogs.c +++ b/libempathy-gtk/empathy-contact-dialogs.c @@ -502,9 +502,16 @@ empathy_block_contact_dialog_show (GtkWindow *parent, EmpathyContact *contact, gboolean *abusive) { + EmpathyContactManager *manager; + EmpathyContactListFlags flags; GtkWidget *dialog; + GtkWidget *abusive_check = NULL; int res; + manager = empathy_contact_manager_dup_singleton (); + flags = empathy_contact_manager_get_flags_for_connection (manager, + empathy_contact_get_connection (contact)); + dialog = gtk_message_dialog_new (parent, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, @@ -520,13 +527,33 @@ empathy_block_contact_dialog_show (GtkWindow *parent, _("_Block"), GTK_RESPONSE_REJECT, NULL); - /* FIXME: support reporting abusive contacts */ + /* ask the user if they want to also report the contact as abusive */ + if (flags & EMPATHY_CONTACT_LIST_CAN_REPORT_ABUSIVE) { + GtkWidget *vbox; + + vbox = gtk_message_dialog_get_message_area ( + GTK_MESSAGE_DIALOG (dialog)); + abusive_check = gtk_check_button_new_with_mnemonic ( + _("_Report this contact as abusive")); + + gtk_box_pack_start (GTK_BOX (vbox), abusive_check, + FALSE, TRUE, 0); + gtk_widget_show (abusive_check); + } res = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); - if (abusive != NULL) - *abusive = FALSE; + if (abusive != NULL) { + if (abusive_check != NULL) { + *abusive = gtk_toggle_button_get_active ( + GTK_TOGGLE_BUTTON (abusive_check)); + } else { + *abusive = FALSE; + } + } + + g_object_unref (manager); return res == GTK_RESPONSE_REJECT; }