[empathy] Also show an avatar when blocking from a conversation



commit 4d795d822f9590c2916bfa64b4cbc3d536e3ad4a
Author: Emilio Pozuelo Monfort <emilio pozuelo collabora co uk>
Date:   Mon Mar 21 17:52:10 2011 +0000

    Also show an avatar when blocking from a conversation
    
    https://bugzilla.gnome.org/show_bug.cgi?id=645069

 libempathy-gtk/empathy-contact-dialogs.c |   11 +++++++++--
 libempathy-gtk/empathy-contact-dialogs.h |    1 +
 libempathy-gtk/empathy-contact-menu.c    |    5 ++++-
 3 files changed, 14 insertions(+), 3 deletions(-)
---
diff --git a/libempathy-gtk/empathy-contact-dialogs.c b/libempathy-gtk/empathy-contact-dialogs.c
index d16062e..29552cc 100644
--- a/libempathy-gtk/empathy-contact-dialogs.c
+++ b/libempathy-gtk/empathy-contact-dialogs.c
@@ -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;
diff --git a/libempathy-gtk/empathy-contact-dialogs.h b/libempathy-gtk/empathy-contact-dialogs.h
index 7dc1db1..5dbb776 100644
--- a/libempathy-gtk/empathy-contact-dialogs.h
+++ b/libempathy-gtk/empathy-contact-dialogs.h
@@ -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
diff --git a/libempathy-gtk/empathy-contact-menu.c b/libempathy-gtk/empathy-contact-menu.c
index 441b692..15f47b2 100644
--- a/libempathy-gtk/empathy-contact-menu.c
+++ b/libempathy-gtk/empathy-contact-menu.c
@@ -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;
 	}
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]