Added a way to save the current playqueue in a playlist

This commit is contained in:
emeric
2022-07-02 15:39:50 +02:00
parent 27cad7ba0e
commit 1c7ef90108
12 changed files with 314 additions and 62 deletions
+1 -1
View File
@@ -43,7 +43,7 @@ createQuery(Session& session, const Track::FindParameters& params)
{
session.checkSharedLocked();
auto query {session.getDboSession().query<TrackId>("SELECT DISTINCT t.id from track t")};
auto query {session.getDboSession().query<TrackId>(params.distinct ? "SELECT DISTINCT t.id FROM track t" : "SELECT t.id FROM track t")};
for (std::string_view keyword : params.keywords)
query.where("t.name LIKE ? ESCAPE '" ESCAPE_CHAR_STR "'").bind("%" + Utils::escapeLikeKeyword(keyword) + "%");
@@ -71,6 +71,7 @@ class Track : public Object<Track, TrackId>
bool nonRelease {}; // only tracks that do not belong to a release
ReleaseId release; // matching this release
TrackListId trackList; // matching this trackList
bool distinct {true};
FindParameters& setClusters(const std::vector<ClusterId>& _clusters) { clusters = _clusters; return *this; }
FindParameters& setKeywords(const std::vector<std::string_view>& _keywords) { keywords = _keywords; return *this; }
@@ -82,6 +83,7 @@ class Track : public Object<Track, TrackId>
FindParameters& setNonRelease(bool _nonRelease) { nonRelease = _nonRelease; return *this; }
FindParameters& setRelease(ReleaseId _release) { release = _release; return *this; }
FindParameters& setTrackList(TrackListId _trackList) { trackList = _trackList; return *this; }
FindParameters& setDistinct(bool _distinct) { distinct = _distinct; return *this; }
};
struct PathResult