From da059e7bfc3f01a520844f5e43ad077e4a604804 Mon Sep 17 00:00:00 2001 From: emeric Date: Sun, 17 May 2020 11:06:48 +0200 Subject: [PATCH 1/5] Removed the play/add buttons on artist/releases view to make the UI cleaner --- approot/artist.xml | 1 - approot/explore.xml | 4 ++-- approot/mediaplayer.xml | 2 +- approot/releases.xml | 1 - src/lms/ui/explore/ArtistView.cpp | 14 -------------- src/lms/ui/explore/ArtistView.hpp | 1 - src/lms/ui/explore/Explore.cpp | 1 - 7 files changed, 3 insertions(+), 21 deletions(-) diff --git a/approot/artist.xml b/approot/artist.xml index a6f13925..0d8f717f 100644 --- a/approot/artist.xml +++ b/approot/artist.xml @@ -43,7 +43,6 @@ ${}

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

${
}

${}${year}${}${} (${orig-year})${}

- ${play-btn}${add-btn} diff --git a/approot/explore.xml b/approot/explore.xml index 2cd86c7c..535c435f 100644 --- a/approot/explore.xml +++ b/approot/explore.xml @@ -5,8 +5,8 @@ ${contents class="Lms-explore-contents"} - - + + ${add-filter class="btn-sm btn-info"} ${clusters class="Lms-explore-clusters"} diff --git a/approot/mediaplayer.xml b/approot/mediaplayer.xml index 94bcfef9..43f0ff45 100644 --- a/approot/mediaplayer.xml +++ b/approot/mediaplayer.xml @@ -35,7 +35,7 @@ diff --git a/approot/releases.xml b/approot/releases.xml index ab2b7094..24395d92 100644 --- a/approot/releases.xml +++ b/approot/releases.xml @@ -27,7 +27,6 @@ ${release-name class="Lms-releasename text-primary"} ${}

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

${
} - ${play-btn}${add-btn} diff --git a/src/lms/ui/explore/ArtistView.cpp b/src/lms/ui/explore/ArtistView.cpp index 901ec1fb..ff8aad3b 100644 --- a/src/lms/ui/explore/ArtistView.cpp +++ b/src/lms/ui/explore/ArtistView.cpp @@ -135,8 +135,6 @@ Artist::refreshView() std::unique_ptr Artist::createRelease(const Database::Artist::pointer& artist, const Release::pointer& release) { - auto releaseId = release.id(); - auto entry = std::make_unique(Wt::WString::tr("Lms.Explore.Artist.template.entry")); entry->addFunction("tr", Wt::WTemplate::Functions::tr); @@ -182,18 +180,6 @@ Artist::createRelease(const Database::Artist::pointer& artist, const Release::po } } - 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; } diff --git a/src/lms/ui/explore/ArtistView.hpp b/src/lms/ui/explore/ArtistView.hpp index 5981d49a..944c9504 100644 --- a/src/lms/ui/explore/ArtistView.hpp +++ b/src/lms/ui/explore/ArtistView.hpp @@ -43,7 +43,6 @@ class Artist : public Wt::WTemplate Artist(Filters* filters); Wt::Signal&> artistsAction; - Wt::Signal&> releasesAction; private: void refreshView(); diff --git a/src/lms/ui/explore/Explore.cpp b/src/lms/ui/explore/Explore.cpp index 5e438bf8..463ea8fd 100644 --- a/src/lms/ui/explore/Explore.cpp +++ b/src/lms/ui/explore/Explore.cpp @@ -89,7 +89,6 @@ Explore::Explore(Filters* filters) auto artist = std::make_unique(_filters); artist->artistsAction.connect(this, &Explore::handleArtistsAction); - artist->releasesAction.connect(this, &Explore::handleReleasesAction); contentsStack->addWidget(std::move(artist)); auto releases = std::make_unique(_filters); From 6df6779fd28aace14b8dac3a1ee0ed90dd7da667 Mon Sep 17 00:00:00 2001 From: emeric Date: Sun, 17 May 2020 13:43:38 +0200 Subject: [PATCH 2/5] Set only two possible cover sizes, fixed some minor bugs --- approot/artist.xml | 2 +- approot/releases.xml | 2 +- docroot/js/mediaplayer.js | 4 ++-- src/lms/ui/MediaPlayer.cpp | 5 ++--- src/lms/ui/PlayQueue.cpp | 8 ++++---- src/lms/ui/explore/ArtistView.cpp | 2 +- src/lms/ui/explore/ReleaseListHelpers.cpp | 2 +- src/lms/ui/explore/ReleaseView.cpp | 2 +- src/lms/ui/explore/ReleasesView.cpp | 2 +- src/lms/ui/explore/SearchView.cpp | 4 ++-- src/lms/ui/explore/TracksView.cpp | 4 ++-- src/lms/ui/resource/ImageResource.cpp | 8 ++++---- src/lms/ui/resource/ImageResource.hpp | 10 ++++++++-- 13 files changed, 30 insertions(+), 25 deletions(-) diff --git a/approot/artist.xml b/approot/artist.xml index 0d8f717f..49cfe635 100644 --- a/approot/artist.xml +++ b/approot/artist.xml @@ -33,7 +33,7 @@
-
+
${cover}
diff --git a/approot/releases.xml b/approot/releases.xml index 24395d92..e2e45c3a 100644 --- a/approot/releases.xml +++ b/approot/releases.xml @@ -18,7 +18,7 @@
-
+
${cover}
diff --git a/docroot/js/mediaplayer.js b/docroot/js/mediaplayer.js index b813ea4d..85ddae5c 100644 --- a/docroot/js/mediaplayer.js +++ b/docroot/js/mediaplayer.js @@ -203,10 +203,10 @@ LMS.mediaplayer = function () { _elems.audio.addEventListener("canplay", function() { if (_getAudioMode() == Mode.Transcode) { - _elems.transcodingActive.style.display = "inline-block"; + _elems.transcodingActive.style.visibility = "visible"; } else { - _elems.transcodingActive.style.display = "none"; + _elems.transcodingActive.style.visibility = "hidden"; } }); diff --git a/src/lms/ui/MediaPlayer.cpp b/src/lms/ui/MediaPlayer.cpp index f5390ddb..e0c10cc2 100644 --- a/src/lms/ui/MediaPlayer.cpp +++ b/src/lms/ui/MediaPlayer.cpp @@ -255,9 +255,8 @@ MediaPlayer::loadTrack(Database::IdType trackId, bool play, float replayGain) << " artist: \"" << (!artists.empty() ? StringUtils::jsEscape(artists.front()->getName()) : "") << "\"," << " release: \"" << (track->getRelease() ? StringUtils::jsEscape(track->getRelease()->getName()) : "") << "\"," << " artwork: [" - << " { src: \"" << LmsApp->getImageResource()->getTrackUrl(trackId, 96) << "\", sizes: \"96x96\", type: \"" << imgResourceMimeType << "\" }," - << " { src: \"" << LmsApp->getImageResource()->getTrackUrl(trackId, 256) << "\", sizes: \"256x256\", type: \"" << imgResourceMimeType << "\" }," - << " { src: \"" << LmsApp->getImageResource()->getTrackUrl(trackId, 512) << "\", sizes: \"512x512\", type: \"" << imgResourceMimeType << "\" }," + << " { src: \"" << LmsApp->getImageResource()->getTrackUrl(trackId, ImageResource::Size::Small) << "\", sizes: \"128x128\", type: \"" << imgResourceMimeType << "\" }," + << " { src: \"" << LmsApp->getImageResource()->getTrackUrl(trackId, ImageResource::Size::Large) << "\", sizes: \"512x512\", type: \"" << imgResourceMimeType << "\" }," << " ]" << "};"; oss << "LMS.mediaplayer.loadTrack(params, " << (play ? "true" : "false") << ")"; // true to autoplay diff --git a/src/lms/ui/PlayQueue.cpp b/src/lms/ui/PlayQueue.cpp index 43ac9079..b83ca7f4 100644 --- a/src/lms/ui/PlayQueue.cpp +++ b/src/lms/ui/PlayQueue.cpp @@ -391,16 +391,16 @@ PlayQueue::addSome() { Wt::WAnchor* anchor = entry->bindWidget("cover", LmsApplication::createReleaseAnchor(release, false)); auto cover = std::make_unique(); - cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), 96)); - cover->setStyleClass("Lms-cover-small"); + cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), ImageResource::Size::Small)); + cover->setStyleClass("Lms-cover"); anchor->setImage(std::move(cover)); } } else { auto cover = entry->bindNew("cover"); - cover->setImageLink(LmsApp->getImageResource()->getTrackUrl(track.id(), 96)); - cover->setStyleClass("Lms-cover-small"); + cover->setImageLink(LmsApp->getImageResource()->getTrackUrl(track.id(), ImageResource::Size::Small)); + cover->setStyleClass("Lms-cover"); } entry->bindString("duration", trackDurationToString(track->getDuration()), Wt::TextFormat::Plain); diff --git a/src/lms/ui/explore/ArtistView.cpp b/src/lms/ui/explore/ArtistView.cpp index ff8aad3b..627c970d 100644 --- a/src/lms/ui/explore/ArtistView.cpp +++ b/src/lms/ui/explore/ArtistView.cpp @@ -142,7 +142,7 @@ Artist::createRelease(const Database::Artist::pointer& artist, const Release::po Wt::WAnchor* anchor = entry->bindWidget("cover", LmsApplication::createReleaseAnchor(release, false)); auto cover = std::make_unique(); - cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), 128)); + cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), ImageResource::Size::Small)); cover->setStyleClass("Lms-cover"); anchor->setImage(std::move(cover)); } diff --git a/src/lms/ui/explore/ReleaseListHelpers.cpp b/src/lms/ui/explore/ReleaseListHelpers.cpp index bf62d015..93bc116f 100644 --- a/src/lms/ui/explore/ReleaseListHelpers.cpp +++ b/src/lms/ui/explore/ReleaseListHelpers.cpp @@ -42,7 +42,7 @@ namespace UserInterface::ReleaseListHelpers Wt::WAnchor* anchor = entry->bindWidget("cover", LmsApplication::createReleaseAnchor(release, false)); auto cover = std::make_unique(); - cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), 64)); + cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), ImageResource::Size::Small)); cover->setStyleClass("Lms-cover"); anchor->setImage(std::move(cover)); diff --git a/src/lms/ui/explore/ReleaseView.cpp b/src/lms/ui/explore/ReleaseView.cpp index d7c7ef78..b2dd8cea 100644 --- a/src/lms/ui/explore/ReleaseView.cpp +++ b/src/lms/ui/explore/ReleaseView.cpp @@ -124,7 +124,7 @@ Release::refreshView() } { - Wt::WImage* cover {bindNew("cover", Wt::WLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), 512)))}; + Wt::WImage* cover {bindNew("cover", Wt::WLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), ImageResource::Size::Large)))}; cover->setStyleClass("Lms-cover-large"); } diff --git a/src/lms/ui/explore/ReleasesView.cpp b/src/lms/ui/explore/ReleasesView.cpp index 2601ac41..7b02f774 100644 --- a/src/lms/ui/explore/ReleasesView.cpp +++ b/src/lms/ui/explore/ReleasesView.cpp @@ -116,7 +116,7 @@ Releases::createEntry(const Release::pointer& release) Wt::WAnchor* anchor = entry->bindWidget("cover", LmsApplication::createReleaseAnchor(release, false)); auto cover = std::make_unique(); - cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), 128)); + cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), ImageResource::Size::Small)); cover->setStyleClass("Lms-cover"); anchor->setImage(std::move(cover)); diff --git a/src/lms/ui/explore/SearchView.cpp b/src/lms/ui/explore/SearchView.cpp index 371df9b6..6025e362 100644 --- a/src/lms/ui/explore/SearchView.cpp +++ b/src/lms/ui/explore/SearchView.cpp @@ -71,7 +71,7 @@ namespace UserInterface { Wt::WAnchor* anchor = entry->bindWidget("cover", LmsApplication::createReleaseAnchor(release, false)); auto cover = std::make_unique(); - cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), 96)); + cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), ImageResource::Size::Small)); cover->setStyleClass("Lms-cover"); anchor->setImage(std::move(cover)); } @@ -79,7 +79,7 @@ namespace UserInterface else { auto cover = entry->bindNew("cover"); - cover->setImageLink(LmsApp->getImageResource()->getTrackUrl(trackId, 96)); + cover->setImageLink(LmsApp->getImageResource()->getTrackUrl(trackId, ImageResource::Size::Small)); cover->setStyleClass("Lms-cover"); } diff --git a/src/lms/ui/explore/TracksView.cpp b/src/lms/ui/explore/TracksView.cpp index 057df4ea..69ec0812 100644 --- a/src/lms/ui/explore/TracksView.cpp +++ b/src/lms/ui/explore/TracksView.cpp @@ -228,7 +228,7 @@ Tracks::createEntry(const Track::pointer& track) { Wt::WAnchor* anchor = entry->bindWidget("cover", LmsApplication::createReleaseAnchor(release, false)); auto cover = std::make_unique(); - cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), 96)); + cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), ImageResource::Size::Small)); cover->setStyleClass("Lms-cover"); anchor->setImage(std::move(cover)); } @@ -236,7 +236,7 @@ Tracks::createEntry(const Track::pointer& track) else { auto cover = entry->bindNew("cover"); - cover->setImageLink(LmsApp->getImageResource()->getTrackUrl(trackId, 96)); + cover->setImageLink(LmsApp->getImageResource()->getTrackUrl(trackId, ImageResource::Size::Small)); cover->setStyleClass("Lms-cover"); } diff --git a/src/lms/ui/resource/ImageResource.cpp b/src/lms/ui/resource/ImageResource.cpp index 03c059b9..37adb781 100644 --- a/src/lms/ui/resource/ImageResource.cpp +++ b/src/lms/ui/resource/ImageResource.cpp @@ -41,15 +41,15 @@ ImageResource::~ImageResource() } std::string -ImageResource::getReleaseUrl(Database::IdType releaseId, std::size_t size) const +ImageResource::getReleaseUrl(Database::IdType releaseId, Size size) const { - return url() + "&releaseid=" + std::to_string(releaseId) + "&size=" + std::to_string(size); + return url() + "&releaseid=" + std::to_string(releaseId) + "&size=" + std::to_string(static_cast(size)); } std::string -ImageResource::getTrackUrl(Database::IdType trackId, std::size_t size) const +ImageResource::getTrackUrl(Database::IdType trackId, Size size) const { - return url() + "&trackid=" + std::to_string(trackId) + "&size=" + std::to_string(size); + return url() + "&trackid=" + std::to_string(trackId) + "&size=" + std::to_string(static_cast(size)); } void diff --git a/src/lms/ui/resource/ImageResource.hpp b/src/lms/ui/resource/ImageResource.hpp index 29b5a595..00865805 100644 --- a/src/lms/ui/resource/ImageResource.hpp +++ b/src/lms/ui/resource/ImageResource.hpp @@ -36,8 +36,14 @@ class ImageResource : public Wt::WResource ~ImageResource(); - std::string getReleaseUrl(Database::IdType releaseId, size_t size) const; - std::string getTrackUrl(Database::IdType trackId, size_t size) const; + enum class Size : std::size_t + { + Small = 128, + Large = 512, + }; + + std::string getReleaseUrl(Database::IdType releaseId, Size size) const; + std::string getTrackUrl(Database::IdType trackId, Size size) const; static std::string getMimeType(); From 6989c3aa81799475b32a34a085cea47e1323e106 Mon Sep 17 00:00:00 2001 From: emeric Date: Sun, 17 May 2020 13:50:31 +0200 Subject: [PATCH 3/5] 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)); } } From 0655e75d7eb619bcbe69321ff3b4b85c6f7ad827 Mon Sep 17 00:00:00 2001 From: emeric Date: Mon, 18 May 2020 18:12:35 +0200 Subject: [PATCH 4/5] Now diplaying albums in grid mode --- approot/artist.xml | 42 ++++---- approot/explore.xml | 4 +- approot/playqueue.xml | 28 +++--- approot/release.xml | 28 +++--- approot/releases.xml | 44 ++++---- approot/search.xml | 47 +++------ approot/tracks.xml | 40 ++++---- docroot/css/lms.css | 72 ++++++++----- src/libs/database/impl/Artist.cpp | 2 +- src/lms/CMakeLists.txt | 1 + src/lms/ui/LmsApplication.cpp | 25 +++-- src/lms/ui/LmsApplication.hpp | 7 +- src/lms/ui/PlayQueue.cpp | 4 +- src/lms/ui/SettingsView.cpp | 12 +-- src/lms/ui/explore/ArtistView.cpp | 57 +---------- src/lms/ui/explore/ArtistsView.cpp | 2 +- src/lms/ui/explore/ReleaseListHelpers.cpp | 41 ++++++-- src/lms/ui/explore/ReleaseListHelpers.hpp | 4 +- src/lms/ui/explore/ReleaseView.cpp | 8 +- src/lms/ui/explore/ReleasesView.cpp | 5 +- src/lms/ui/explore/ReleasesView.hpp | 2 +- src/lms/ui/explore/SearchView.cpp | 56 +---------- src/lms/ui/explore/TrackListHelpers.cpp | 117 ++++++++++++++++++++++ src/lms/ui/explore/TrackListHelpers.hpp | 35 +++++++ src/lms/ui/explore/TracksView.cpp | 81 +-------------- src/lms/ui/explore/TracksView.hpp | 1 - 26 files changed, 387 insertions(+), 378 deletions(-) create mode 100644 src/lms/ui/explore/TrackListHelpers.cpp create mode 100644 src/lms/ui/explore/TrackListHelpers.hpp diff --git a/approot/artist.xml b/approot/artist.xml index 49cfe635..8534eb07 100644 --- a/approot/artist.xml +++ b/approot/artist.xml @@ -3,14 +3,20 @@ +
+

${name}

+ ${clusters} + ${play-btn}${add-btn} +
-
-
-

${name}

- ${clusters} - ${play-btn}${add-btn} + ${releases class="Lms-explore-artist-entries-container"} +
+
+
+
+

${tr:Lms.Explore.Artist.similar-artists}

+ ${similar-artists}
- ${releases class="Lms-explore-artist-entries-container"}
${}
@@ -20,29 +26,21 @@
${} -
-
-

${tr:Lms.Explore.Artist.similar-artists}

- ${similar-artists} -
-
-
-
-
-
+
+
+
+
${cover}
-
-

- ${name class="Lms-releasename text-primary"} -

- ${}

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

${
} -

${}${year}${}${} (${orig-year})${}

+
+
${name class="Lms-releasename text-primary"}
+ ${}
${artist class="Lms-artistname text-muted"}
${
} +
${}${year}${}${} (${orig-year})${}
diff --git a/approot/explore.xml b/approot/explore.xml index 535c435f..2cd86c7c 100644 --- a/approot/explore.xml +++ b/approot/explore.xml @@ -5,8 +5,8 @@ ${contents class="Lms-explore-contents"} - - + + ${add-filter class="btn-sm btn-info"} ${clusters class="Lms-explore-clusters"} diff --git a/approot/playqueue.xml b/approot/playqueue.xml index 97945c42..e4e8ebcd 100644 --- a/approot/playqueue.xml +++ b/approot/playqueue.xml @@ -27,24 +27,20 @@ -
-
-
- -
-

${name}

- ${} - ${}${release class="Lms-releasename text-primary"}${} - ${}${artists}${} - ${} -
+
+
+
+ ${cover}
-
+
+
${name}
+ ${} + ${}${release class="Lms-releasename text-primary"}${} + ${}${artists}${} + ${} +
+
${play-btn}${del-btn}
diff --git a/approot/release.xml b/approot/release.xml index b275aa8c..86e6d9c2 100644 --- a/approot/release.xml +++ b/approot/release.xml @@ -7,11 +7,11 @@ -
-
+
+
${cover class="Lms-explore-release-cover"}
-
+

${name}

${}

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

${
} @@ -19,10 +19,20 @@ ${clusters} ${play-btn}${add-btn}
- ${container class="Lms-explore-release-entries-container"} + ${container} +
+
+
+
+
+

${tr:Lms.Explore.Release.similar-releases}

+
+ ${similar-releases} +
+
${} -
+

${tr:Lms.Explore.Release.copyright}

${copyright class="text-muted"} @@ -30,19 +40,13 @@
${} ${} -
+

${tr:Lms.Explore.links}

${mbid-link class="text-muted"}
${} -
-
-

${tr:Lms.Explore.Release.similar-releases}

- ${similar-releases} -
-
diff --git a/approot/releases.xml b/approot/releases.xml index e2e45c3a..254d214d 100644 --- a/approot/releases.xml +++ b/approot/releases.xml @@ -8,47 +8,43 @@ ${mode class="nav nav-pills Lms-explore-mode-container"} ${play-btn}${add-btn}
- ${releases} +
+ ${releases} +
${show-more class="btn-primary Lms-show-more"}
- -
-
-
-
- ${cover} -
+ +
+
+
+ ${cover}
-
-

- ${release-name class="Lms-releasename text-primary"} -

- ${}

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

${
} +
+
${release-name class="Lms-releasename text-primary"}
+
${}${year}${}${}${artist-name class="Lms-artistname text-muted"}${}
- -
-
-
-
+ +
+
+
+
${cover}
-
-
- ${release-name class="Lms-releasename text-primary"} -
- ${}${artist-name class="Lms-artistname text-muted"}${} +
+
${release-name class="Lms-releasename text-primary"}
+ ${}
${artist-name class="Lms-artistname text-muted"}
${
} +
${}${year}${}${} (${orig-year})${}
- diff --git a/approot/search.xml b/approot/search.xml index 1ecc8380..a6f8c536 100644 --- a/approot/search.xml +++ b/approot/search.xml @@ -3,51 +3,36 @@ +
+

${tr:Lms.Explore.Search.search}

+
+ ${}
-
-

${tr:Lms.Explore.Search.search}

-
- ${}

${tr:Lms.Explore.artists}

${artists}
- ${
} - ${} +
+ ${
} + ${} +

${tr:Lms.Explore.releases}

- ${releases} +
+ ${releases} +
- ${} - ${} +
+ ${
} + ${} +

${tr:Lms.Explore.tracks}

${tracks}
- ${} -
-
-
- - -
-
-
- -
-

${name}

- ${} - ${}${release class="Lms-releasename text-primary"}${} - ${}${artists}${} - ${} -
-
+ ${}
diff --git a/approot/tracks.xml b/approot/tracks.xml index 58fa1545..fe402479 100644 --- a/approot/tracks.xml +++ b/approot/tracks.xml @@ -20,32 +20,28 @@ -
-
-
-