void CGUIDialogMusicInfo::SetDiscography() { m_albumSongs->Clear(); CMusicDatabase database; database.Open(); std::vector<int> albumsByArtist; database.GetAlbumsByArtist(m_artist.idArtist, albumsByArtist); for (unsigned int i=0;i<m_artist.discography.size();++i) { CFileItemPtr item(new CFileItem(m_artist.discography[i].first)); item->SetLabel2(m_artist.discography[i].second); int idAlbum = -1; for (std::vector<int>::const_iterator album = albumsByArtist.begin(); album != albumsByArtist.end(); ++album) { if (StringUtils::EqualsNoCase(database.GetAlbumById(*album), item->GetLabel())) { idAlbum = *album; item->GetMusicInfoTag()->SetDatabaseId(idAlbum, "album"); break; } } if (idAlbum != -1) // we need this slight stupidity to get correct case for the album name item->SetArt("thumb", database.GetArtForItem(idAlbum, MediaTypeAlbum, "thumb")); else item->SetArt("thumb", "DefaultAlbumCover.png"); m_albumSongs->Add(item); } }