diff --git a/approot/explore.xml b/approot/explore.xml
index 21d93199..d3dc2f81 100644
--- a/approot/explore.xml
+++ b/approot/explore.xml
@@ -63,6 +63,7 @@
${recently-played class="dropdown-item"}
${most-played class="dropdown-item"}
${recently-added class="dropdown-item"}
+ ${recently-modified class="dropdown-item"}
${all class="dropdown-item"}
diff --git a/src/lms/ui/explore/ArtistCollector.cpp b/src/lms/ui/explore/ArtistCollector.cpp
index dd2ff253..6b7a165f 100644
--- a/src/lms/ui/explore/ArtistCollector.cpp
+++ b/src/lms/ui/explore/ArtistCollector.cpp
@@ -109,6 +109,23 @@ namespace lms::ui
break;
}
+ case Mode::RecentlyModified:
+ {
+ Artist::FindParameters params;
+ params.setClusters(filters.getClusters());
+ params.setKeywords(getSearchKeywords());
+ params.setMediaLibrary(filters.getMediaLibrary());
+ params.setLinkType(_linkType);
+ params.setSortMethod(ArtistSortMethod::LastWrittenDesc);
+ params.setRange(range);
+
+ {
+ auto transaction{ LmsApp->getDbSession().createReadTransaction() };
+ artists = Artist::findIds(LmsApp->getDbSession(), params);
+ }
+ break;
+ }
+
case Mode::All:
{
Artist::FindParameters params;
diff --git a/src/lms/ui/explore/DatabaseCollectorBase.hpp b/src/lms/ui/explore/DatabaseCollectorBase.hpp
index 956abbe8..5bc756ae 100644
--- a/src/lms/ui/explore/DatabaseCollectorBase.hpp
+++ b/src/lms/ui/explore/DatabaseCollectorBase.hpp
@@ -43,6 +43,7 @@ namespace lms::ui
Starred,
RecentlyPlayed,
RecentlyAdded,
+ RecentlyModified,
MostPlayed,
All
};
diff --git a/src/lms/ui/explore/ReleaseCollector.cpp b/src/lms/ui/explore/ReleaseCollector.cpp
index 8ff416c5..df5e52fe 100644
--- a/src/lms/ui/explore/ReleaseCollector.cpp
+++ b/src/lms/ui/explore/ReleaseCollector.cpp
@@ -102,6 +102,22 @@ namespace lms::ui
break;
}
+ case Mode::RecentlyModified:
+ {
+ Release::FindParameters params;
+ params.setClusters(getFilters().getClusters());
+ params.setMediaLibrary(getFilters().getMediaLibrary());
+ params.setKeywords(getSearchKeywords());
+ params.setSortMethod(ReleaseSortMethod::LastWrittenDesc);
+ params.setRange(range);
+
+ {
+ auto transaction{ LmsApp->getDbSession().createReadTransaction() };
+ releases = Release::findIds(LmsApp->getDbSession(), params);
+ }
+ break;
+ }
+
case Mode::All:
{
Release::FindParameters params;
diff --git a/src/lms/ui/explore/SortModeSelector.hpp b/src/lms/ui/explore/SortModeSelector.hpp
index a160f20c..2c79e77f 100644
--- a/src/lms/ui/explore/SortModeSelector.hpp
+++ b/src/lms/ui/explore/SortModeSelector.hpp
@@ -36,6 +36,7 @@ namespace lms::ui
bindItem("recently-played", Wt::WString::tr("Lms.Explore.recently-played"), DatabaseCollectorBase::Mode::RecentlyPlayed);
bindItem("most-played", Wt::WString::tr("Lms.Explore.most-played"), DatabaseCollectorBase::Mode::MostPlayed);
bindItem("recently-added", Wt::WString::tr("Lms.Explore.recently-added"), DatabaseCollectorBase::Mode::RecentlyAdded);
+ bindItem("recently-modified", Wt::WString::tr("Lms.Explore.recently-modified"), DatabaseCollectorBase::Mode::RecentlyModified);
bindItem("all", Wt::WString::tr("Lms.Explore.all"), DatabaseCollectorBase::Mode::All);
}
};
diff --git a/src/lms/ui/explore/TrackCollector.cpp b/src/lms/ui/explore/TrackCollector.cpp
index 66b321bd..7e5500c9 100644
--- a/src/lms/ui/explore/TrackCollector.cpp
+++ b/src/lms/ui/explore/TrackCollector.cpp
@@ -103,6 +103,22 @@ namespace lms::ui
break;
}
+ case Mode::RecentlyModified:
+ {
+ Track::FindParameters params;
+ params.setClusters(getFilters().getClusters());
+ params.setMediaLibrary(getFilters().getMediaLibrary());
+ params.setKeywords(getSearchKeywords());
+ params.setSortMethod(TrackSortMethod::LastWrittenDesc);
+ params.setRange(range);
+
+ {
+ auto transaction{ LmsApp->getDbSession().createReadTransaction() };
+ tracks = Track::findIds(LmsApp->getDbSession(), params);
+ }
+ break;
+ }
+
case Mode::All:
{
Track::FindParameters params;