void load_album_done_cb(void *data, Enlil_Load *load, Enlil_Library *library, Enlil_Album *album) { Eina_List *l; Enlil_Photo *photo; Enlil_Photo *photo_prev = NULL; Enlil_Data *enlil_data = (Enlil_Data *) data; enlil_album_monitor_start(album); Enlil_Album_Data *enlil_album_data = calloc(1, sizeof(Enlil_Album_Data)); enlil_album_data->enlil_data = enlil_data; enlil_album_user_data_set(album, enlil_album_data, enlil_album_data_free); enlil_album_collection_process(album); list_left_add(enlil_data->list_left, album); list_photo_album_add(enlil_data->list_photo, album); //photos_list_object_freeze(enlil_data->list_photo->o_list, 1); EINA_LIST_FOREACH(enlil_album_photos_get(album), l, photo) { Enlil_Photo_Data *enlil_photo_data = calloc(1, sizeof(Enlil_Photo_Data)); enlil_photo_user_data_set(photo, enlil_photo_data, enlil_photo_data_free); enlil_photo_data->enlil_data = enlil_data; if(!photo_prev) list_photo_photo_append_relative(enlil_data->list_photo, album, photo, NULL); else { Enlil_Photo_Data *photo_data_prev = enlil_photo_user_data_get(photo_prev); list_photo_photo_append_relative(enlil_data->list_photo, album, photo, photo_data_prev->list_photo_item); } photo_prev = photo; map_photo_add(enlil_data->map, photo); enlil_photo_tag_process(photo); if(enlil_photo_type_get(photo) == ENLIL_PHOTO_TYPE_PHOTO && !enlil_photo_exif_loaded_get(photo)) { enlil_photo_data->clear_exif_data = EINA_TRUE; enlil_photo_data->exif_job = enlil_exif_job_append(photo, exif_load_done, photo); } if(enlil_photo_type_get(photo) == ENLIL_PHOTO_TYPE_PHOTO && !enlil_photo_iptc_loaded_get(photo)) { enlil_photo_data->clear_iptc_data = EINA_TRUE; enlil_photo_data->iptc_job = enlil_iptc_job_append(photo, iptc_load_done, photo); } }
void list_left_data_set(List_Left *list_left, Enlil_Data *enlil_data) { Eina_List *l; Enlil_Album *album; Enlil_Library *library = enlil_data->library; list_left->enlil_data = enlil_data; enlil_data->list_left = list_left; EINA_LIST_FOREACH(enlil_library_albums_get(library), l, album) list_left_add(list_left, album); }