@@ -347,7 +347,7 @@ class _SettingFilterElement extends StatelessWidget {
347347class Filter <T > {
348348 Filter ({required this .queryFilter, required this .settingFilters});
349349
350- final QueryFilter queryFilter;
350+ final QueryFilter < T > queryFilter;
351351
352352 final SettingFilters <T > settingFilters;
353353
@@ -453,8 +453,8 @@ class SettingFilter<T, V> {
453453
454454class QueryFilter <T > {
455455 const QueryFilter ._({
456- QueryFilterArgs <T > filterArguments = const {} ,
457- this .substringExpressions = const < Pattern > [] ,
456+ required QueryFilterArgs <T > filterArguments,
457+ required this .substringExpressions,
458458 this .isEmpty = false ,
459459 }) : _filterArguments = filterArguments;
460460
@@ -486,23 +486,19 @@ class QueryFilter<T> {
486486 final querySeparatorIndex = part.indexOf (':' );
487487 if (querySeparatorIndex != - 1 ) {
488488 final value = part.substring (querySeparatorIndex + 1 ).trim ();
489- if (value.isNotEmpty) {
490- for (final arg in args.values) {
491- if (arg.matchesKey (part)) {
492- arg.isNegative = part.startsWith (
493- QueryFilterArgument .negativePrefix,
494- );
495- final valueStrings = value.split (
496- QueryFilterArgument .valueSeparator,
497- );
498- arg.values =
499- useRegExp
500- ? valueStrings
501- .map ((v) => RegExp (v, caseSensitive: false ))
502- .toList ()
503- : valueStrings;
504- }
505- }
489+ if (value.isEmpty) {
490+ continue ;
491+ }
492+ final valueStrings = value.split (QueryFilterArgument .valueSeparator);
493+ for (final arg in args.values.where ((arg) => arg.matchesKey (part))) {
494+ arg
495+ ..isNegative = part.startsWith (QueryFilterArgument .negativePrefix)
496+ ..values =
497+ useRegExp
498+ ? valueStrings
499+ .map ((v) => RegExp (v, caseSensitive: false ))
500+ .toList ()
501+ : valueStrings;
506502 }
507503 } else {
508504 substringExpressions.add (
@@ -511,13 +507,9 @@ class QueryFilter<T> {
511507 }
512508 }
513509
514- bool validArgumentFilter = false ;
515- for (final arg in args.values) {
516- if (arg.values.isNotEmpty) {
517- validArgumentFilter = true ;
518- break ;
519- }
520- }
510+ final bool validArgumentFilter = args.values.any (
511+ (a) => a.values.isNotEmpty,
512+ );
521513 if (! validArgumentFilter && substringExpressions.isEmpty) {
522514 return QueryFilter .empty (args: args);
523515 }
0 commit comments