]> git.0d.be Git - empathy.git/commitdiff
Also show an avatar when blocking from a conversation
authorEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Mon, 21 Mar 2011 17:52:10 +0000 (17:52 +0000)
committerEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Mon, 21 Mar 2011 21:04:13 +0000 (21:04 +0000)
https://bugzilla.gnome.org/show_bug.cgi?id=645069

libempathy-gtk/empathy-contact-dialogs.c
libempathy-gtk/empathy-contact-dialogs.h
libempathy-gtk/empathy-contact-menu.c

index d16062eff2e57bc7950420e8332ddbdb921833ae..29552cccc186de0f155a8065400e8c41eaaae5fe 100644 (file)
@@ -88,8 +88,8 @@ subscription_dialog_response_cb (GtkDialog *dialog,
                gboolean abusive;
 
                /* confirm the blocking */
-               if (empathy_block_contact_dialog_show (GTK_WINDOW (dialog),
-                                                      contact, &abusive)) {
+               if (empathy_block_contact_dialog_show (GTK_WINDOW (dialog), contact,
+                                                      NULL, &abusive)) {
                        empathy_contact_list_remove (
                                        EMPATHY_CONTACT_LIST (manager),
                                        contact, "");
@@ -514,6 +514,7 @@ empathy_new_contact_dialog_show_with_contact (GtkWindow *parent,
 gboolean
 empathy_block_contact_dialog_show (GtkWindow      *parent,
                                   EmpathyContact *contact,
+                                  GdkPixbuf      *avatar,
                                   gboolean       *abusive)
 {
        EmpathyContactManager *manager;
@@ -542,6 +543,12 @@ empathy_block_contact_dialog_show (GtkWindow      *parent,
                        _("_Block"), GTK_RESPONSE_REJECT,
                        NULL);
 
+       if (avatar != NULL) {
+               GtkWidget *image = gtk_image_new_from_pixbuf (avatar);
+               gtk_message_dialog_set_image (GTK_MESSAGE_DIALOG (dialog), image);
+               gtk_widget_show (image);
+       }
+
        /* ask the user if they want to also report the contact as abusive */
        if (flags & EMPATHY_CONTACT_LIST_CAN_REPORT_ABUSIVE) {
                GtkWidget *vbox;
index 7dc1db10fe2dea18b35e865023edce983a77c1dc..5dbb776507b70d6cb3e5aa20b3d6babb4b149f43 100644 (file)
@@ -41,6 +41,7 @@ void empathy_new_contact_dialog_show_with_contact (GtkWindow     *parent,
                                                    EmpathyContact *contact);
 gboolean empathy_block_contact_dialog_show (GtkWindow      *parent,
                                            EmpathyContact *contact,
+                                           GdkPixbuf      *avatar,
                                            gboolean       *abusive);
 
 G_END_DECLS
index 441b69212d12596196bbb73f943d2da372e2a0dc..15f47b20659654d0f08afb498047010103def66e 100644 (file)
@@ -244,6 +244,7 @@ empathy_contact_block_menu_item_toggled (GtkCheckMenuItem *item,
        if (blocked) {
                /* confirm the user really wishes to block the contact */
                GtkWidget *parent;
+               GdkPixbuf *avatar;
 
                /* gtk_menu_get_attach_widget () doesn't behave properly here
                 * for some reason */
@@ -251,8 +252,10 @@ empathy_contact_block_menu_item_toggled (GtkCheckMenuItem *item,
                        G_OBJECT (gtk_widget_get_parent (GTK_WIDGET (item))),
                        "window");
 
+               avatar = empathy_pixbuf_avatar_from_contact_scaled (contact, 48, 48);
+
                if (!empathy_block_contact_dialog_show (GTK_WINDOW (parent),
-                                       contact, &abusive))
+                                       contact, avatar, &abusive))
                        return;
        }