From 6989c3aa81799475b32a34a085cea47e1323e106 Mon Sep 17 00:00:00 2001 From: emeric Date: Sun, 17 May 2020 13:50:31 +0200 Subject: [PATCH] Made the release search results size the same as in release lists --- src/lms/ui/explore/ReleaseListHelpers.cpp | 17 +++++++- src/lms/ui/explore/ReleaseListHelpers.hpp | 2 +- src/lms/ui/explore/ReleasesView.cpp | 51 +---------------------- src/lms/ui/explore/ReleasesView.hpp | 1 - src/lms/ui/explore/SearchView.cpp | 2 +- 5 files changed, 19 insertions(+), 54 deletions(-) diff --git a/src/lms/ui/explore/ReleaseListHelpers.cpp b/src/lms/ui/explore/ReleaseListHelpers.cpp index 93bc116f..dc3c138f 100644 --- a/src/lms/ui/explore/ReleaseListHelpers.cpp +++ b/src/lms/ui/explore/ReleaseListHelpers.cpp @@ -33,10 +33,11 @@ using namespace Database; namespace UserInterface::ReleaseListHelpers { + static std::unique_ptr - createEntrySmall(const Database::Release::pointer& release) + createEntryInternal(const Database::Release::pointer& release, const std::string& templateKey) { - auto entry {std::make_unique(Wt::WString::tr("Lms.Explore.Releases.template.entry-small"))}; + auto entry {std::make_unique(Wt::WString::tr(templateKey))}; entry->bindWidget("release-name", LmsApplication::createReleaseAnchor(release)); @@ -64,5 +65,17 @@ namespace UserInterface::ReleaseListHelpers return entry; } + std::unique_ptr + createEntry(const Release::pointer& release) + { + return createEntryInternal(release, "Lms.Explore.Releases.template.entry"); + } + + std::unique_ptr + createEntrySmall(const Release::pointer& release) + { + return createEntryInternal(release, "Lms.Explore.Releases.template.entry-small"); + } + } // namespace UserInterface diff --git a/src/lms/ui/explore/ReleaseListHelpers.hpp b/src/lms/ui/explore/ReleaseListHelpers.hpp index 81cb266f..e85f6bc2 100644 --- a/src/lms/ui/explore/ReleaseListHelpers.hpp +++ b/src/lms/ui/explore/ReleaseListHelpers.hpp @@ -32,6 +32,6 @@ namespace UserInterface::ReleaseListHelpers { std::unique_ptr createEntrySmall(const Wt::Dbo::ptr& release); - + std::unique_ptr createEntry(const Wt::Dbo::ptr& release); } // namespace UserInterface diff --git a/src/lms/ui/explore/ReleasesView.cpp b/src/lms/ui/explore/ReleasesView.cpp index 7b02f774..a67c4eff 100644 --- a/src/lms/ui/explore/ReleasesView.cpp +++ b/src/lms/ui/explore/ReleasesView.cpp @@ -29,12 +29,11 @@ #include "database/Release.hpp" #include "database/User.hpp" #include "database/TrackList.hpp" - #include "utils/Logger.hpp" #include "utils/String.hpp" #include "resource/ImageResource.hpp" - +#include "ReleaseListHelpers.hpp" #include "Filters.hpp" #include "LmsApplication.hpp" @@ -106,52 +105,6 @@ Releases::refreshView(Mode mode) refreshView(); } -std::unique_ptr -Releases::createEntry(const Release::pointer& release) -{ - const IdType releaseId {release.id()}; - - auto entry = std::make_unique(Wt::WString::tr("Lms.Explore.Releases.template.entry")); - entry->addFunction("tr", Wt::WTemplate::Functions::tr); - - Wt::WAnchor* anchor = entry->bindWidget("cover", LmsApplication::createReleaseAnchor(release, false)); - auto cover = std::make_unique(); - cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), ImageResource::Size::Small)); - cover->setStyleClass("Lms-cover"); - anchor->setImage(std::move(cover)); - - entry->bindWidget("release-name", LmsApplication::createReleaseAnchor(release)); - - auto artists = release->getReleaseArtists(); - if (artists.empty()) - artists = release->getArtists(); - - if (artists.size() > 1) - { - entry->setCondition("if-has-artist", true); - entry->bindNew("artist-name", Wt::WString::tr("Lms.Explore.various-artists")); - } - else if (artists.size() == 1) - { - entry->setCondition("if-has-artist", true); - entry->bindWidget("artist-name", LmsApplication::createArtistAnchor(artists.front())); - } - - Wt::WText* playBtn = entry->bindNew("play-btn", Wt::WString::tr("Lms.Explore.template.play-btn"), Wt::TextFormat::XHTML); - playBtn->clicked().connect([=] - { - releasesAction.emit(PlayQueueAction::Play, {releaseId}); - }); - - Wt::WText* addBtn = entry->bindNew("add-btn", Wt::WString::tr("Lms.Explore.template.add-btn"), Wt::TextFormat::XHTML); - addBtn->clicked().connect([=] - { - releasesAction.emit(PlayQueueAction::AddLast, {releaseId}); - }); - - return entry; -} - void Releases::addSome() { @@ -161,7 +114,7 @@ Releases::addSome() for (const Release::pointer& release : getReleases(Range {static_cast(_container->count()), batchSize}, moreResults)) { - _container->addWidget(createEntry(release)); + _container->addWidget(ReleaseListHelpers::createEntry(release)); } _showMore->setHidden(!moreResults); diff --git a/src/lms/ui/explore/ReleasesView.hpp b/src/lms/ui/explore/ReleasesView.hpp index 05f25cbd..294bcb63 100644 --- a/src/lms/ui/explore/ReleasesView.hpp +++ b/src/lms/ui/explore/ReleasesView.hpp @@ -61,7 +61,6 @@ class Releases : public Wt::WTemplate std::vector> getReleases(std::optional range, bool& moreResults); std::vector> getRandomReleases(std::optional range, bool& moreResults); std::vector getAllReleases(); - std::unique_ptr createEntry(const Wt::Dbo::ptr& release); static constexpr Mode defaultMode {Mode::Random}; static constexpr std::size_t batchSize {20}; diff --git a/src/lms/ui/explore/SearchView.cpp b/src/lms/ui/explore/SearchView.cpp index 6025e362..f5c2c01d 100644 --- a/src/lms/ui/explore/SearchView.cpp +++ b/src/lms/ui/explore/SearchView.cpp @@ -155,7 +155,7 @@ namespace UserInterface auto* container {bindNew("releases")}; for (const Database::Release::pointer& release : releases) - container->addWidget(ReleaseListHelpers::createEntrySmall(release)); + container->addWidget(ReleaseListHelpers::createEntry(release)); } }