[empathy/gnome-2-34] Also show an avatar when blocking from a conversation



commit 8688c876cd65d1bb058c1ed2ab18256089cf5f07
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 12aa562..75581b0 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, "");
@@ -490,6 +490,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;
@@ -518,6 +519,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 33e2cf0..7e6d049 100644
--- a/libempathy-gtk/empathy-contact-dialogs.h
+++ b/libempathy-gtk/empathy-contact-dialogs.h
@@ -40,6 +40,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 9518cf4..aaf0ddf 100644
--- a/libempathy-gtk/empathy-contact-menu.c
+++ b/libempathy-gtk/empathy-contact-menu.c
@@ -243,6 +243,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 */
@@ -250,8 +251,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]