diff --git a/src/libs/services/cover/impl/CoverService.cpp b/src/libs/services/cover/impl/CoverService.cpp index b2202249..516267ca 100644 --- a/src/libs/services/cover/impl/CoverService.cpp +++ b/src/libs/services/cover/impl/CoverService.cpp @@ -429,16 +429,22 @@ namespace Cover std::set parentPaths; { Session& session{ _db.getTLSSession() }; + + Track::FindParameters params; + params.setArtist(artistId, { TrackArtistLinkType::ReleaseArtist }); + auto transaction{ session.createReadTransaction() }; - Track::find(session, Track::FindParameters{}.setArtist(artistId), [&](const Track::pointer& track) + Track::find(session, params, [&](const Track::pointer& track) { parentPaths.insert(track->getPath().parent_path()); }); } if (parentPaths.size() == 1) + { artistImage = getFromDirectory(parentPaths.begin()->parent_path(), width, _artistFileNames, false); + } else if (parentPaths.size() > 1) { const std::filesystem::path longestCommonPath{ PathUtils::getLongestCommonPath(std::cbegin(parentPaths), std::cend(parentPaths)) }; diff --git a/src/libs/utils/test/Path.cpp b/src/libs/utils/test/Path.cpp index f36ffa4b..10662fe4 100644 --- a/src/libs/utils/test/Path.cpp +++ b/src/libs/utils/test/Path.cpp @@ -66,6 +66,7 @@ TEST(Path, getLongestCommonPathIterator) {{"/foo", "/bar"}, "/"}, {{"/foo/bar/file1.txt", "/foo/bar/file2.txt"}, "/foo/bar"}, {{"/foo", "/foo/"}, "/foo"}, + {{"/foo", "/foo"}, "/foo"}, {{"/foo/", "/foo/"}, "/foo/"}, {{"/foo/", "/foo/", "/bar"}, "/"}, {{"/foo/", "/foo/", "/foo/bar"}, "/foo"},