From 0ed1556870b5639a4fc34d72881141c3d3197e4c Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Sat, 4 Apr 2020 17:48:20 +0900 Subject: [PATCH] filters: "not" query --- lib/model/filters/query.dart | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/model/filters/query.dart b/lib/model/filters/query.dart index fd336b271..f9e5832cc 100644 --- a/lib/model/filters/query.dart +++ b/lib/model/filters/query.dart @@ -6,12 +6,18 @@ import 'package:outline_material_icons/outline_material_icons.dart'; class QueryFilter extends CollectionFilter { static const type = 'query'; - final String query, upQuery; + final String query; + bool Function(ImageEntry) _filter; - QueryFilter(this.query) : upQuery = query.toUpperCase(); + QueryFilter(this.query) { + var upQuery = query.toUpperCase(); + final not = upQuery.startsWith('-'); + if (not) upQuery = upQuery.substring(1); + _filter = not ? (entry) => !entry.search(upQuery) : (entry) => entry.search(upQuery); + } @override - bool filter(ImageEntry entry) => entry.search(upQuery); + bool filter(ImageEntry entry) => _filter(entry); @override bool get isUnique => false;