From 64abef1cd4cde8c27ed86c04596a9dc44b9a12b6 Mon Sep 17 00:00:00 2001 From: John Maguire Date: Fri, 5 Mar 2010 10:51:16 +0000 Subject: [PATCH] Make tracks with no album show up. Fixes issue #57 --- src/librarybackend.cpp | 9 ++++++--- tests/librarybackend_test.cpp | 11 +++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/librarybackend.cpp b/src/librarybackend.cpp index 68858a5d3..63f74bf01 100644 --- a/src/librarybackend.cpp +++ b/src/librarybackend.cpp @@ -519,10 +519,8 @@ LibraryBackend::AlbumList LibraryBackend::GetAlbums(const QString& artist, if (CheckErrors(q.lastError())) return ret; QString last_album; + QString last_artist; while (q.next()) { - if (q.value(0).toString() == last_album) - continue; - bool compilation = q.value(2).toBool() | q.value(3).toBool(); Album info; @@ -530,9 +528,14 @@ LibraryBackend::AlbumList LibraryBackend::GetAlbums(const QString& artist, info.album_name = q.value(0).toString(); info.art_automatic = q.value(4).toString(); info.art_manual = q.value(5).toString(); + + if (info.artist == last_artist && info.album_name == last_album) + continue; + ret << info; last_album = info.album_name; + last_artist = info.artist; } return ret; } diff --git a/tests/librarybackend_test.cpp b/tests/librarybackend_test.cpp index 988b794de..b66239d18 100644 --- a/tests/librarybackend_test.cpp +++ b/tests/librarybackend_test.cpp @@ -181,6 +181,17 @@ class SingleSong : public LibraryBackendTest { Song song_; }; +TEST_F(SingleSong, GetSongWithNoAlbum) { + song_.set_album(""); + AddDummySong(); if (HasFatalFailure()) return; + + EXPECT_EQ(1, backend_->GetAllArtists().size()); + LibraryBackend::AlbumList albums = backend_->GetAllAlbums(); + EXPECT_EQ(1, albums.size()); + EXPECT_EQ("Artist", albums[0].artist); + EXPECT_EQ("", albums[0].album_name); +} + TEST_F(SingleSong, GetAllArtists) { AddDummySong(); if (HasFatalFailure()) return;