diff --git a/include/library.h b/include/library.h index 4a859086d..c09a77551 100644 --- a/include/library.h +++ b/include/library.h @@ -292,7 +292,11 @@ class Library friend class OPDSDumper; friend class libXMLDumper; + +private: // functions + BookIdCollection getBooksByTitleOrDescription(const Filter& filter); }; + } #endif diff --git a/src/library.cpp b/src/library.cpp index 920d93eda..7d428f570 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -232,7 +232,7 @@ Library::BookIdCollection Library::filter(const std::string& search) } -Library::BookIdCollection Library::filter(const Filter& filter) +Library::BookIdCollection Library::getBooksByTitleOrDescription(const Filter& filter) { BookIdCollection bookIds; for(auto& pair:m_books) { @@ -240,9 +240,13 @@ Library::BookIdCollection Library::filter(const Filter& filter) bookIds.push_back(pair.first); } } + return bookIds; +} +Library::BookIdCollection Library::filter(const Filter& filter) +{ BookIdCollection result; - for(auto id : bookIds) { + for(auto id : getBooksByTitleOrDescription(filter)) { if(filter.acceptByNonQueryCriteria(m_books[id])) { result.push_back(id); }