diff --git a/src/database/SearchFilter.hpp b/src/database/SearchFilter.hpp index 10c27d2d..50295299 100644 --- a/src/database/SearchFilter.hpp +++ b/src/database/SearchFilter.hpp @@ -47,6 +47,7 @@ class SearchFilter SearchFilter() {} + // Helpers static SearchFilter IdMatch( const IdMatchType& _idMatch ) { return SearchFilter(_idMatch); @@ -57,6 +58,12 @@ class SearchFilter return SearchFilter(_nameLikeMatch); } + // Single ID match + static SearchFilter ById(Field field, Wt::Dbo::dbo_default_traits::IdType id) + { + return SearchFilter({{field, {id} }}); + } + // The filter is a AND of the following conditions: // ((Field1.name LIKE STR1-1 OR Field1.name LIKE STR1-2 ...) OR (Field2.name LIKE STR2-1 OR Field2.name LIKE STR2-2 ...) ... diff --git a/src/ui/audio/mobile/MobileAudio.cpp b/src/ui/audio/mobile/MobileAudio.cpp index 16e08579..5d910dd8 100644 --- a/src/ui/audio/mobile/MobileAudio.cpp +++ b/src/ui/audio/mobile/MobileAudio.cpp @@ -127,8 +127,7 @@ Audio::Audio(Wt::WContainerWidget *parent) trackSearch->hide(); releaseSearch->show(); - releaseSearch->search(SearchFilter::IdMatch({{SearchFilter::Field::Artist, {artistId}}}), - 20); + releaseSearch->search(SearchFilter::ById(SearchFilter::Field::Artist, artistId), 20); }, std::placeholders::_1)); releaseSearch->moreReleasesSelected().connect(std::bind([=] @@ -144,8 +143,7 @@ Audio::Audio(Wt::WContainerWidget *parent) releaseSearch->hide(); trackSearch->show(); - trackSearch->search(SearchFilter::IdMatch({{SearchFilter::Field::Release, {releaseId}}}), - 20); + trackSearch->search(SearchFilter::ById(SearchFilter::Field::Release, releaseId), 20); }, std::placeholders::_1)); trackSearch->moreTracksSelected().connect(std::bind([=]