From a110b6737d4a5b0d71af5e1e5371db8d604ea350 Mon Sep 17 00:00:00 2001 From: emeric Date: Mon, 10 May 2021 14:57:31 +0200 Subject: [PATCH] Displaying all release artists instead of just 'Various Artists' in the release view, ref #154 --- approot/release.xml | 8 ++++++-- src/lms/ui/explore/ReleaseView.cpp | 20 ++++++++++---------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/approot/release.xml b/approot/release.xml index ba7e36b3..ce72ff94 100644 --- a/approot/release.xml +++ b/approot/release.xml @@ -14,7 +14,7 @@

${name}

- ${}

${artist class="Lms-btn Lms-artistname text-muted"}

${
} + ${}${artists}${}
${}${year}${}${} (${orig-year})${}
${clusters} ${play-btn class="Lms-explore-btn Lms-btn"}${more-btn class="Lms-explore-btn Lms-btn"} @@ -52,7 +52,11 @@
- + +

${artist class="Lms-btn Lms-artistname text-muted"}

+
+ +

${disc-title}

${tracks}
diff --git a/src/lms/ui/explore/ReleaseView.cpp b/src/lms/ui/explore/ReleaseView.cpp index 6c393eac..6ea64c21 100644 --- a/src/lms/ui/explore/ReleaseView.cpp +++ b/src/lms/ui/explore/ReleaseView.cpp @@ -114,15 +114,16 @@ Release::refreshView() if (artists.empty()) artists = release->getArtists(); - if (artists.size() > 1) + if (!artists.empty()) { - setCondition("if-has-artist", true); - bindNew("artist", Wt::WString::tr("Lms.Explore.various-artists")); - } - else if (artists.size() == 1) - { - setCondition("if-has-artist", true); - bindWidget("artist", LmsApplication::createArtistAnchor(artists.front())); + setCondition("if-has-release-artists", true); + + Wt::WContainerWidget* artistsContainer {bindNew("artists")}; + for (const auto& artist : artists) + { + Wt::WTemplate* artistTemplate {artistsContainer->addNew(Wt::WString::tr("Lms.Explore.Release.template.entry-release-artist"))}; + artistTemplate->bindWidget("artist", LmsApplication::createArtistAnchor(artist)); + } } } @@ -183,8 +184,7 @@ Release::refreshView() return it->second; } - Wt::WTemplate* disc {rootContainer->addNew(Wt::WString::tr("Lms.Explore.Release.template.disc-entry"))}; - disc->addFunction("tr", &Wt::WTemplate::Functions::tr); + Wt::WTemplate* disc {rootContainer->addNew(Wt::WString::tr("Lms.Explore.Release.template.entry-disc"))}; if (discSubtitle.empty()) disc->bindNew("disc-title", Wt::WString::tr("Lms.Explore.Release.disc").arg(discNumber));