Browser - quick filter - improve search settings

Ideas for improvements and requests for new features in XnView MP

Moderators: helmut, XnTriq, xnview

Post Reply
User avatar
user0
XnThusiast
Posts: 2410
Joined: Sat May 09, 2015 9:37 am

Browser - quick filter - improve search settings

Post by user0 »

XnViewMP 1.9.0 64bit
Windows11 (24H2), display resolution 3840x2160, dpi scale 150%


Browser - quick filter
simple wildcards (*,?) do not work in Quick filter, which is inconvenient

to reproduce
0. prerequisites
- uncheck all checkboxes Quick filter settings
- disable Catalog in Settings
- have 1 test file in folder
1.bmp
1.bmp (462 Bytes) Viewed 948 times

issue A
1. type:
  <any_symbol>*
  b<any_symbol>*
  m<any_symbol>*
file will be found, but should not

issue B
1. type:
  *
  *.bmp
  1.b?p
file will not be found, but should

Check the same search strings in win file explorer, Everything or FastStone (only * works there)


Suggestion
browser_quick_filter_settings.png
browser_quick_filter_settings.png (7.52 KiB) Viewed 44 times
  • improve search settings
    • add "Use Regular Expressions" checkbox (disabled by default)
      OR 'Extended search' if it's not RegEx, but some kind of mixture
    • add "Case sensitive" checkbox
    • explicitly show default search option (file name)
    • highlight found letters in the names (like in Everything or win file explorer)




Example
  • VSCode (Glob Patterns)

    Code: Select all

    * to match zero or more characters in a path segment
    ? to match on one character in a path segment
    ** to match any number of path segments, including none
    {} to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)
    [] to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)
    [!...] to negate a range of characters to match (example.[!0-9] to match on example.a, example.b, but not example.0)
  • Everything
    • Search Syntax

      Code: Select all

      Operators:
      	space	AND
      	|	OR
      	!	NOT
      	< >	Grouping
      	" "	Escape operator characters.
      
      Wildcard matching:
      	*	Matches zero or more characters (except \).
      	**	Matches zero or more characters.
      	?	Matches one character (except \).
      	The whole filename is matched when using a wildcard.
      
      Character entities:
      	&sp:	Literal space ( )
      	&vert:	Literal vertical line (|)
      	&excl:	Literal exclamation mark (!)
      	&lt:	Literal less than (<)
      	&gt:	Literal greater than (>)
      	&quot:	Literal double quote (")
      	&#<n>:	Literal unicode character <n> in decimal.
      	&#x<n>:	Literal unicode character <n> in hexadecimal.
      
      Macros:
      	audio:	Search for audio files.
      	zip:	Search for compressed files.
      	doc:	Search for document files.
      	exe:	Search for executable files.
      	image:	Search for image files.
      	video:	Search for video files.
      
      Modifiers:
      	binary:	Match as a byte stream, \\ = \ \xff = hex byte.
      	case:	Match case.
      	diacritics:	Match diacritical marks.
      	endwith:	Match the end of the filename or property.
      	file:	Match files only.
      	folder:	Match folders only.
      	hex:	Convert double hex characters to bytes.
      	highlight:	Highlight the search term.
      	ignorepunc:	Ignore punctuation in the filename or property.
      	ignorews:	Ignore white space in the filename or property.
      	len:	Match the length of the filename or property in UTF-16 characters.
      	metric:	Use metric prefixes for sizes.
      	fromdisk:	Search for properties and content from disk.
      	tonumber:	Convert text to a number for comparison
      	path:	Match path and filename.
      	prefix:	Match the start of a word.
      	regex:	Enable regular expressions.
      	startwith:	Match the start of the filename or property.
      	suffix:	Match the end of a word.
      	tostring:	Convert property to the display string for comparison
      	whole:	Match the whole filename or property.
      	ww:	Match whole words only.
      	wildcards:	Enable content wildcards.
      	Disable a modifier with the no prefix.
      	Modifers can be combined and used with search functions.
      	Prefix a modifier with :: to enable it globally.
      
      wildcards: search modifier syntax:
      	*	Matches any character zero or more times.
      	?	Matches any single character.
      	#	Matches any single digit (0-9).
      	[ ]	Matches any one of the characters specified in the set.
      	[! ]	Matches any one character that is not specified in the set.
      	\	Escape the following character.
      
      Functions:
      	album:	Search for media files where the album property contains the specified text.
      	ancestor:	Search for files and folders where an ancestor matches the specified path.
      	artist:	Search for media files where the artist property contains the specified text.
      	attrib:	Search for files and folders where the attributes include all the specified flags.
      	bitdepth:	Search for media files where the bit depth property matches the specified number.
      	child:	Search for folders where the filename of a child contains the specified text.
      	childcount:	Search for folders where the number of subfolders and files matches the specified count.
      	childfilecount:	Search for folders where the number of files matches the specified count.
      	childfoldercount:	Search for folders where the number of subfolders matches the specified count.
      	comment:	Search for media files where the comment property contains the specified text.
      	content:	Search for files where the content contains the specified text.
      	count:	Limit the number of results to the specified count.
      	da:	Search for files and folders where the date accessed matches the specified date.
      	dc:	Search for files and folders where the date created matches the specified date.
      	depth:	Search for files and folders where the number of parents matches the specified count.
      	dimensions:	Search for media files where the dimensions property matches the specified width x height.
      	dm:	Search for files and folders where the date modified matches the specified date.
      	dr:	Search for files and folders where the date run matches the specified date.
      	dupe:	Search for files and folders where the values of the specified property type are duplicated.
      	empty:	Search for folders where the number of subfolders and files is zero.
      	ext:	Search for files where the extension is in the specified semicolon delimited list.
      	filelist:	Search for files and folders where the filename is in the specified semicolon delimited list.
      	filelistfilename:	Search for files and folders where the filename of the owning file list contains the specified text.
      	frn:	Search for files and folders where the File Reference Number matches the specified number.
      	genre:	Search for media files where the genre property contains the specified text.
      	height:	Search for media files where the height property matches the specified number in pixels.
      	indextype:	Search for files and folders where the index type property contains the specified text.
      	length:	Search for media files where the length property matches the specified duration.
      	name:	Search for files and folders where the name part contains the specified text.
      	orientation:	Search for media files where the aspect ratio property is landscape or portrait.
      	parent:	Search for files and folders where the parent matches the specified path.
      	pathpart:	Search for files and folders where the path part contains the specified text.
      	root:	Search for files and folders with no parent folder.
      	runcount:	Search for files and folders where the run count property matches the specified number.
      	si:	Search the system index with the specified advanced query syntax.
      	size:	Search for files and folders where the size matches the specified number of bytes.
      	stem:	Search for files and folders where the name without extension contains the specified text.
      	title:	Search for media files where the title property contains the specified text.
      	track:	Search for media files where the track property matches the specified number.
      	type:	Search for files and folders where the type matches the specified text.
      	width:	Search for media files where the width property matches the specified number in pixels.
      
      Function Syntax:
      	function:value	Equal to value within the specified granularity.
      	function:<=value	Less than or equal to value.
      	function:<value	Less than value.
      	function:=value	Exactly equal to value.
      	function:==value	Exactly equal to value.
      	function:>value	Greater than value.
      	function:>=value	Greater than or equal to value.
      	function:!=value	Not equal to value.
      	function:!value	Not equal to value with specified granularity.
      	function:start..end	Is in the range of values from start to end (inclusive).
      	function:start-end	Is in the range of values from start to end (inclusive).
      	function:<value1 value2>	Matches value1 AND value2
      	function:<value1 | value2>	Matches value1 OR value2
      	function:value1;value2	Matches value1 OR value2
      
      Size Syntax:
      	size[kb|mb|gb]
      
      Size Constants:
      	empty
      	tiny	0 KB < size <= 10 KB
      	small	10 KB < size <= 100 KB
      	medium	100 KB < size <= 1 MB
      	large	1 MB < size <= 16 MB
      	huge	16 MB < size <= 128 MB
      	gigantic	size > 128 MB
      	unknown
      
      Duration Syntax:
      	[[[DD:]HH:]MM:]SS[.sss]
      	[<n><d|day|days>][<n><h|hour|hours>][<n><m|min|mins|minute|minutes>][<n><s|sec|secs|second|seconds>]
      	P[n]Y[n]M[n]DT[n]H[n]M[n]S
      	P[n]W
      	PYYYYMMDDThhmmss
      	P[YYYY]-[MM]-[DD]T[hh]:[mm]:[ss]
      
      Duration Constants:
      	very-short	Under 1 minute
      	short	1 - 5 minutes
      	medium	5 - 30 minutes
      	long	30 - 60 minutes
      	very-long	Over 60 minutes
      	unknown
      
      Date Syntax:
      	year
      	month/year or year/month depending on locale settings
      	day/month/year, month/day/year or year/month/day depending on locale settings
      	YYYY[-MM[-DD[Thh[:mm[:ss[.sss]]]]]]
      	YYYYMMDD[Thh[mm[ss[.sss]]]]]
      	YYMMDD
      	FILETIME (>99999999)
      
      Date Constants:
      	today
      	yesterday
      	<last|current|this|coming|next><year|month|week>
      	<last|coming|next><x><years|months|weeks|days|hours|minutes|mins|seconds|secs>
      	past[x]<year[s]|month[s]|week[s]|day[s]|hour[s]|minute[s]|min[s]|second[s]|sec[s]>
      	<prev|previous>[x]<year[s]|month[s]|week[s]>
      	january|february|march|april|may|june|july|august|september|october|november|december
      	jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec
      	sunday|monday|tuesday|wednesday|thursday|friday|saturday
      	sun|mon|tue|wed|thu|fri|sat
      	mtd|ytd
      	unknown
      
      Attribute Constants:
      	A	Archive
      	C	Compressed
      	D	Directory
      	E	Encrypted
      	H	Hidden
      	I	Not content indexed
      	L	Reparse point
      	M	Recall on data access
      	N	Normal
      	O	Offline
      	P	Pinned
      	R	Read only
      	S	System
      	T	Temporary
      	U	Unpinned
      	V	Integrity stream
      	X	No scrub data
      
      Filename parts:
      	Full Path	C:\folder\file.txt
      	Name	file.txt
      	Path	C:\folder
      	Stem	file
      	Extension	txt
      
      Examples:
      	size:>50mb	Search for files and folders where the size is larger than 50 MB.
      	size:10mb..50mb	Search for files and folders where the size is between 10 MB and 50 MB.
      	size:<1mb	Search for files and folders where the size is smaller than 1 MB.
      	dm:today	Search for files and folders where the date modified is today.
      	dm:>2022	Search for files and folders where the date modified is after 2022.
      	dm:2021-07..2022-06	Search for files and folders where the date modified is between July 2021 and June 2022.
      	dm:<2020	Search for files and folders where the date modified is before 2020.
      	ext:jpg;png	Search for files where the extension matches jpg or png.
      	attrib:h	Search for files and folders where the attributes contain the hidden flag.
      	length:>1hour	Search for media files where the length is longer than 1 hour.
      	length:10mins..30mins	Search for media files where the length is between 10 minutes and 30 minutes.
      	length:<1min	Search for media files where the length is less than 1 minute.
      	content:abc	Search for files where the content contains abc.
      	content:<abc 123>	Search for files where the content contains abc AND 123.
      	regex:content:^foo	Search for files where the content starts with foo.
      
    • Regular Expression Syntax

      Code: Select all

      a|b	Matches a or b
      gr(a|e)y	Matches gray or grey
      .	Matches any single character
      [abc]	Matches a single character a, b or c
      [^abc]	Matches any single character except a, b or c
      [a-z]	Matches a single character in the range a to z
      [a-zA-Z]	Matches a single character in the range a to z or A to Z
      ^	Matches the start of the filename
      $	Matches the end of the filename
      ( )	Defines a marked subexpression
      \n	Matches what the nth marked subexpression matched, where n is a digit from 1 to 9
      \b	Match word boundaries
      *	Matches the preceding element zero or more times
      ?	Matches the preceding element zero or one times
      +	Matches the preceding element one or more times
      *?	Lazily matches the preceding element zero or more times
      +?	Lazily matches the preceding element one or more times
      {x}	Matches the preceding element x times
      {x,}	Matches the preceding element x or more times
      {x,y}	Matches the preceding element between x and y times
      \	Escape special character
      \Q...\E	Literal sequence ...
      \a	Alarm, that is, the BEL character (hex 07)
      \cx	"Control-x", where x is any ASCII character
      \e	Escape (hex 1B)
      \f	Form feed (hex 0C)
      \n	Linefeed (hex 0A)
      \r	Carriage return (hex 0D)
      \t	Tab (hex 09)
      \0dd	Character with octal code 0dd
      \ddd	Character with octal code ddd, or back reference
      \o{ddd..}	Character with octal code ddd..
      \xhh	Character with hex code hh
      \x{hhh..}	Character with hex code hhh..
      \d	Any decimal digit
      \D	Any character that is not a decimal digit
      \h	Any horizontal white space character
      \H	Any character that is not a horizontal white space character
      \s	Any white space character
      \S	Any character that is not a white space character
      \v	Any vertical white space character
      \V	Any character that is not a vertical white space character
      \w	Any "word" character
      \W	Any "non-word" character
      \p{xx}	A character with the xx property
      \P{xx}	A character without the xx property
      \X	A Unicode extended grapheme cluster
      \b	Matches at a word boundary
      \B	Matches when not at a word boundary
      \A	Matches at the start of the subject
      \Z	Matches at the end of the subject also matches before a newline at the end of the subject
      \z	Matches only at the end of the subject
      \G	Matches at the first matching position in the subject
      





Related
Post Reply