Skip to content

Commit f712d54

Browse files
committed
libempathy-gtk: save camera picture to file and fixup whitespace
1 parent 0fbd698 commit f712d54

File tree

1 file changed

+29
-24
lines changed

1 file changed

+29
-24
lines changed

libempathy-gtk/empathy-avatar-chooser.c

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -892,40 +892,45 @@ avatar_chooser_update_preview_cb (GtkFileChooser *file_chooser,
892892
static gboolean
893893
destroy_chooser (GtkWidget *chooser)
894894
{
895-
gtk_widget_destroy (chooser);
896-
return FALSE;
895+
gtk_widget_destroy (chooser);
896+
return FALSE;
897897
}
898898

899899
static void
900-
webcam_response_cb (GtkDialog *dialog,
901-
int response,
902-
EmpathyAvatarChooser *chooser)
900+
webcam_response_cb (GtkDialog *dialog,
901+
int response,
902+
EmpathyAvatarChooser *chooser)
903903
{
904-
if (response == GTK_RESPONSE_ACCEPT) {
905-
GdkPixbuf *pb;
906-
907-
g_object_get (G_OBJECT (dialog), "pixbuf", &pb, NULL);
908-
/*TODO: use picture data as avatar*/
909-
g_object_unref (pb);
910-
}
911-
if (response != GTK_RESPONSE_DELETE_EVENT &&
912-
response != GTK_RESPONSE_NONE)
913-
g_idle_add ((GSourceFunc) destroy_chooser, dialog);
904+
if (response == GTK_RESPONSE_ACCEPT) {
905+
GdkPixbuf *pb;
906+
/* TODO: decide on a propper place to this image */
907+
const char *filename = "/tmp/empathy-avatar.jpg";
908+
909+
g_object_get (G_OBJECT (dialog), "pixbuf", &pb, NULL);
910+
911+
912+
gdk_pixbuf_save (pb, filename, "jpeg", NULL, NULL);
913+
avatar_chooser_set_image_from_file (chooser, filename);
914+
g_object_unref (pb);
915+
}
916+
if (response != GTK_RESPONSE_DELETE_EVENT &&
917+
response != GTK_RESPONSE_NONE)
918+
g_idle_add ((GSourceFunc) destroy_chooser, dialog);
914919
}
915920

916921
static void
917922
choose_avatar_from_webcam (GtkWidget *widget,
918923
EmpathyAvatarChooser *chooser)
919924
{
920-
GtkWidget *window;
921-
922-
window = cheese_avatar_chooser_new ();
923-
gtk_window_set_transient_for (GTK_WINDOW (window),
924-
GTK_WINDOW (gtk_widget_get_toplevel (widget)));
925-
gtk_window_set_modal (GTK_WINDOW (window), TRUE);
926-
g_signal_connect (G_OBJECT (window), "response",
927-
G_CALLBACK (webcam_response_cb), chooser);
928-
gtk_widget_show (window);
925+
GtkWidget *window;
926+
927+
window = cheese_avatar_chooser_new ();
928+
gtk_window_set_transient_for (GTK_WINDOW (window),
929+
GTK_WINDOW (gtk_widget_get_toplevel (widget)));
930+
gtk_window_set_modal (GTK_WINDOW (window), TRUE);
931+
g_signal_connect (G_OBJECT (window), "response",
932+
G_CALLBACK (webcam_response_cb), chooser);
933+
gtk_widget_show (window);
929934
}
930935
#endif /* HAVE_CHEESE */
931936

0 commit comments

Comments
 (0)