diff --git a/docroot/css/lms.css b/docroot/css/lms.css index 641d288f..fa67a9ec 100644 --- a/docroot/css/lms.css +++ b/docroot/css/lms.css @@ -146,6 +146,7 @@ a:hover { .Lms-explore-release-entry-name { margin-top: 4px; margin-bottom: 4px; + font-weight: inherit; } .Lms-explore-release-entry:hover { @@ -156,6 +157,10 @@ a:hover { text-align: center; } +.Lms-explore-release-entry-playing { + font-weight: bold; +} + .Lms-explore-artists-entry { min-height: 48px; } diff --git a/src/ui/LmsApplication.cpp b/src/ui/LmsApplication.cpp index d116fca9..354ceeb4 100644 --- a/src/ui/LmsApplication.cpp +++ b/src/ui/LmsApplication.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 Emeric Poupon + * Copyright (C) 2018 Emeric Poupon * * This file is part of LMS. * @@ -448,11 +448,13 @@ LmsApplication::createHome() playqueue->loadTrack.connect([=] (Database::IdType trackId, bool play) { + _events.lastLoadedTrackId = trackId; _events.trackLoaded(trackId, play); }); playqueue->trackUnload.connect([=] { + _events.lastLoadedTrackId.reset(); _events.trackUnloaded(); }); diff --git a/src/ui/LmsApplication.hpp b/src/ui/LmsApplication.hpp index 156eaffd..00b5a07d 100644 --- a/src/ui/LmsApplication.hpp +++ b/src/ui/LmsApplication.hpp @@ -47,6 +47,7 @@ struct Events // A track is being loaded Wt::Signal trackLoaded; + boost::optional lastLoadedTrackId; // Unload current track Wt::Signal<> trackUnloaded; diff --git a/src/ui/explore/ReleaseView.cpp b/src/ui/explore/ReleaseView.cpp index e6ed8185..f6b4015f 100644 --- a/src/ui/explore/ReleaseView.cpp +++ b/src/ui/explore/ReleaseView.cpp @@ -62,7 +62,6 @@ Release::refresh() return; clear(); - auto releaseId = readAs(wApp->internalPathNextPart("/release/")); if (!releaseId) return; @@ -192,6 +191,14 @@ Release::refresh() { trackAdd.emit(trackId); })); + + LmsApp->getEvents().trackLoaded.connect(entry, [=] (Database::IdType loadedTrackId, bool /*play*/) + { + entry->toggleStyleClass("Lms-explore-release-entry-playing", loadedTrackId == trackId); + }); + + if (LmsApp->getEvents().lastLoadedTrackId && *LmsApp->getEvents().lastLoadedTrackId == trackId) + entry->addStyleClass("Lms-explore-release-entry-playing"); } }