user-accounts: Don't warn if there are no faces pixmaps

https://bugzilla.gnome.org/show_bug.cgi?id=645347
This commit is contained in:
Bastien Nocera 2011-03-21 00:15:52 +00:00
parent a665a52609
commit a97d65fdcc

View file

@ -372,29 +372,37 @@ setup_photo_popup (UmPhotoDialog *um)
{ {
GtkWidget *menu, *menuitem, *image; GtkWidget *menu, *menuitem, *image;
guint x, y; guint x, y;
const gchar * const * dirs;
guint i;
GDir *dir; GDir *dir;
const char *face; const char *face;
GError *error;
gboolean none_item_shown; gboolean none_item_shown;
gboolean added_faces;
menu = gtk_menu_new (); menu = gtk_menu_new ();
x = 0; x = 0;
y = 0; y = 0;
none_item_shown = FALSE; none_item_shown = added_faces = FALSE;
error = NULL; dirs = g_get_system_data_dirs ();
dir = g_dir_open (DATADIR "/pixmaps/faces", 0, &error); for (i = 0; dirs[i] != NULL; i++) {
char *path;
path = g_build_filename (dirs[i], "pixmaps", "faces", NULL);
g_message ("trying to open %s", path);
dir = g_dir_open (path, 0, NULL);
if (dir == NULL) { if (dir == NULL) {
g_warning ("Failed to load faces: %s", error->message); g_free (path);
g_error_free (error); continue;
goto skip_faces;
} }
while ((face = g_dir_read_name (dir)) != NULL) { while ((face = g_dir_read_name (dir)) != NULL) {
char *filename; char *filename;
filename = g_build_filename (DATADIR "/pixmaps/faces", face, NULL); added_faces = TRUE;
filename = g_build_filename (path, face, NULL);
menuitem = menu_item_for_filename (um, filename); menuitem = menu_item_for_filename (um, filename);
g_free (filename); g_free (filename);
if (menuitem == NULL) if (menuitem == NULL)
@ -411,6 +419,14 @@ setup_photo_popup (UmPhotoDialog *um)
} }
} }
g_dir_close (dir); g_dir_close (dir);
g_free (path);
if (added_faces)
break;
}
if (!added_faces)
goto skip_faces;
image = gtk_image_new_from_icon_name ("avatar-default", GTK_ICON_SIZE_DIALOG); image = gtk_image_new_from_icon_name ("avatar-default", GTK_ICON_SIZE_DIALOG);
menuitem = gtk_menu_item_new (); menuitem = gtk_menu_item_new ();