diff --git a/src/ui/audio/mobile/MobileAudio.cpp b/src/ui/audio/mobile/MobileAudio.cpp index c9e3fdbb..9399264f 100644 --- a/src/ui/audio/mobile/MobileAudio.cpp +++ b/src/ui/audio/mobile/MobileAudio.cpp @@ -80,7 +80,7 @@ Audio::Audio(Wt::WContainerWidget *parent) wApp->internalPathChanged().connect(std::bind([=] (std::string path) { - // order is important + // order is important: most specific path first static std::map indexes = { { "/audio/search/preview", WidgetIdxSearchPreview}, diff --git a/src/ui/audio/mobile/ReleaseSearch.cpp b/src/ui/audio/mobile/ReleaseSearch.cpp index f149a868..07b34f2a 100644 --- a/src/ui/audio/mobile/ReleaseSearch.cpp +++ b/src/ui/audio/mobile/ReleaseSearch.cpp @@ -104,18 +104,23 @@ ReleaseSearch::addResults(size_t nb) res->bindWidget("name", new Wt::WText(Wt::WString::fromUTF8(release->getName()), Wt::PlainText)); res->bindString("release_name", Wt::WString::fromUTF8(release->getName()), Wt::PlainText); + bool variousArtists; auto artists = Artist::getByFilter(DboSession(), - SearchFilter::ById(SearchFilter::Field::Release, release.id()), -1, 2); - if (artists.size() == 1) + SearchFilter::ById(SearchFilter::Field::Release, release.id()), 0, 1, variousArtists); + if (!artists.empty()) { - Wt::WAnchor *artistAnchor = new Wt::WAnchor(ArtistView::getLink(artists.front().id())); - Wt::WText *artist = new Wt::WText(artistAnchor); - artist->setText(Wt::WString::fromUTF8(artists.front()->getName(), Wt::PlainText)); - res->bindWidget("artist", artistAnchor); + if (variousArtists) + { + res->bindWidget("artist", new Wt::WText(Wt::WString::fromUTF8("Various Artists", Wt::PlainText))); + } + else + { + Wt::WAnchor *artistAnchor = new Wt::WAnchor(ArtistView::getLink(artists.front().id())); + Wt::WText *artist = new Wt::WText(artistAnchor); + artist->setText(Wt::WString::fromUTF8(artists.front()->getName(), Wt::PlainText)); + res->bindWidget("artist", artistAnchor); + } } - else - res->bindWidget("artist", new Wt::WText(Wt::WString::fromUTF8("Various Artists", Wt::PlainText))); - } if (moreResults) diff --git a/src/ui/audio/mobile/ReleaseView.cpp b/src/ui/audio/mobile/ReleaseView.cpp index 7557e8ac..a7342f8d 100644 --- a/src/ui/audio/mobile/ReleaseView.cpp +++ b/src/ui/audio/mobile/ReleaseView.cpp @@ -106,8 +106,10 @@ getArtistNameFromRelease(Release::pointer release) if (artists.size() > 1) return Wt::WString::fromUTF8("Various artists", Wt::PlainText); - else + else if (artists.size() == 1) return Wt::WString::fromUTF8(artists.front()->getName(), Wt::PlainText); + else + return Wt::WString(); } void