static void contact_dispose (GObject *object) { EmpathyContactPriv *priv = GET_PRIV (object); if (priv->tp_contact) { g_signal_handlers_disconnect_by_func (priv->tp_contact, tp_contact_notify_cb, object); g_object_unref (priv->tp_contact); } priv->tp_contact = NULL; if (priv->account) g_object_unref (priv->account); priv->account = NULL; if (priv->avatar != NULL) { empathy_avatar_unref (priv->avatar); priv->avatar = NULL; } if (priv->location != NULL) { g_hash_table_unref (priv->location); priv->location = NULL; } G_OBJECT_CLASS (empathy_contact_parent_class)->dispose (object); }
static void avatar_chooser_set_image (EmpathyAvatarChooser *chooser, EmpathyAvatar *avatar, GdkPixbuf *pixbuf, gboolean set_locally) { EmpathyAvatarChooserPriv *priv = GET_PRIV (chooser); GdkPixbuf *pixbuf_view; GtkWidget *image; g_assert (avatar != NULL); g_assert (pixbuf != NULL); if (set_locally) { EmpathyAvatar *conv; conv = avatar_chooser_maybe_convert_and_scale (chooser, pixbuf, avatar); empathy_avatar_unref (avatar); if (conv == NULL) { /* An error occured; don't change the avatar. */ return; } avatar = conv; } if (priv->avatar != NULL) { empathy_avatar_unref (priv->avatar); } priv->avatar = avatar; pixbuf_view = empathy_pixbuf_scale_down_if_necessary (pixbuf, AVATAR_SIZE_VIEW); image = gtk_image_new_from_pixbuf (pixbuf_view); gtk_button_set_image (GTK_BUTTON (chooser), image); g_signal_emit (chooser, signals[CHANGED], 0); g_object_unref (pixbuf_view); g_object_unref (pixbuf); }
static void avatar_chooser_clear_image (EmpathyAvatarChooser *chooser) { EmpathyAvatarChooserPriv *priv = GET_PRIV (chooser); GtkWidget *image; if (priv->avatar != NULL) { empathy_avatar_unref (priv->avatar); priv->avatar = NULL; } image = gtk_image_new_from_icon_name ("stock_person", GTK_ICON_SIZE_DIALOG); gtk_button_set_image (GTK_BUTTON (chooser), image); g_signal_emit (chooser, signals[CHANGED], 0); }
static void avatar_chooser_finalize (GObject *object) { EmpathyAvatarChooserPriv *priv; priv = GET_PRIV (object); avatar_chooser_set_connection (EMPATHY_AVATAR_CHOOSER (object), NULL); g_assert (priv->connection == NULL); g_assert (priv->factory == NULL); if (priv->avatar != NULL) { empathy_avatar_unref (priv->avatar); } G_OBJECT_CLASS (empathy_avatar_chooser_parent_class)->finalize (object); }