Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const Tasklist Tasklist::filter(bool filterByID = false, int IDMin = 0, int IDMax = 0,
- bool filterByDateOfCreation = false, QString dateOfCreationMin = "", QString dateOfCreationMax = "",
- bool filterByPriority = false, int priorityMin = 0, int priorityMax = 0,
- bool filterByDone = false, bool done = false)
- {
- QVector<Task> filtered_list(tasks.size());
- auto condition_checker = [](Task t){
- return ( ( filterByID ? isBetveen( t.getID(), IDMin, IDMax ) : true ) &&
- ( filterByDateOfCreation ? isBetveen( t.getDateOfCreation(), dateOfCreationMin, dateOfCreationMax ) : true ) &&
- ( filterByPriority ? isBetveen( t.getPriority(), priorityMin, priorityMax ) : true ) &&
- ( filterByDone ? ( t.getDone() == done ) : true )
- );
- };
- auto it = std::copy_if( tasks.begin(), tasks.end(), filtered_list.begin(), condition_checker );
- filtered_list.resize( std::distance(filtered_list.begin(), it) ); // shrink container to new size
- return Tasklist( filtered_list );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement