diff options
Diffstat (limited to 'libempathy-gtk')
-rw-r--r-- | libempathy-gtk/empathy-avatar-chooser.c | 8 | ||||
-rw-r--r-- | libempathy-gtk/empathy-avatar-chooser.h | 5 | ||||
-rw-r--r-- | libempathy-gtk/empathy-contact-widget.c | 28 |
3 files changed, 26 insertions, 15 deletions
diff --git a/libempathy-gtk/empathy-avatar-chooser.c b/libempathy-gtk/empathy-avatar-chooser.c index bc5f07e9b..0b3487af7 100644 --- a/libempathy-gtk/empathy-avatar-chooser.c +++ b/libempathy-gtk/empathy-avatar-chooser.c @@ -545,8 +545,9 @@ empathy_avatar_chooser_set (EmpathyAvatarChooser *chooser, void empathy_avatar_chooser_get_image_data (EmpathyAvatarChooser *chooser, - gchar **data, - gsize *data_size) + const gchar **data, + gsize *data_size, + const gchar **mime_type) { EmpathyAvatarChooserPriv *priv; @@ -560,5 +561,8 @@ empathy_avatar_chooser_get_image_data (EmpathyAvatarChooser *chooser, if (*data_size) { *data_size = priv->image_data_size; } + if (mime_type) { + *mime_type = "png"; + } } diff --git a/libempathy-gtk/empathy-avatar-chooser.h b/libempathy-gtk/empathy-avatar-chooser.h index b0c08df11..55b804f07 100644 --- a/libempathy-gtk/empathy-avatar-chooser.h +++ b/libempathy-gtk/empathy-avatar-chooser.h @@ -53,7 +53,8 @@ GtkWidget *empathy_avatar_chooser_new (void); void empathy_avatar_chooser_set (EmpathyAvatarChooser *chooser, EmpathyAvatar *avatar); void empathy_avatar_chooser_get_image_data (EmpathyAvatarChooser *chooser, - gchar **data, - gsize *data_size); + const gchar **data, + gsize *data_size, + const gchar **mime_type); #endif /* __EMPATHY_AVATAR_CHOOSER_H__ */ diff --git a/libempathy-gtk/empathy-contact-widget.c b/libempathy-gtk/empathy-contact-widget.c index 2fa1b3d9f..51d17bfb7 100644 --- a/libempathy-gtk/empathy-contact-widget.c +++ b/libempathy-gtk/empathy-contact-widget.c @@ -495,14 +495,20 @@ static void contact_widget_avatar_changed_cb (EmpathyAvatarChooser *chooser, EmpathyContactWidget *information) { - McAccount *account; - gchar *data; - gsize size; + if (information->contact && + empathy_contact_is_user (information->contact)) { + McAccount *account; + const gchar *data; + gsize size; + const gchar *mime_type; - account = empathy_contact_get_account (information->contact); - empathy_avatar_chooser_get_image_data (EMPATHY_AVATAR_CHOOSER (information->widget_avatar), - &data, &size); - mc_account_set_avatar_from_data (account, data, size, "png"); + account = empathy_contact_get_account (information->contact); + empathy_avatar_chooser_get_image_data (EMPATHY_AVATAR_CHOOSER (information->widget_avatar), + &data, &size, &mime_type); + empathy_contact_factory_set_avatar (information->factory, + account, + data, size, mime_type); + } } static void @@ -527,12 +533,12 @@ contact_widget_entry_alias_focus_event_cb (GtkEditable *editable, EmpathyContactWidget *information) { if (information->contact) { - const gchar *name; + const gchar *alias; - name = gtk_entry_get_text (GTK_ENTRY (editable)); - empathy_contact_factory_set_name (information->factory, + alias = gtk_entry_get_text (GTK_ENTRY (editable)); + empathy_contact_factory_set_alias (information->factory, information->contact, - name); + alias); } return FALSE; |