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");
}
}