LibGUI: Add possibility to search for exact match in model

This commit is contained in:
speles 2021-02-28 20:50:52 +02:00 committed by Andreas Kling
parent dff31d5885
commit aa9c5d4418
Notes: sideshowbarker 2024-07-18 21:49:31 +09:00

View File

@ -66,6 +66,7 @@ public:
FirstMatchOnly = 1 << 0,
CaseInsensitive = 1 << 1,
MatchAtStart = 1 << 2,
MatchFull = 1 << 3,
};
virtual ~Model();
@ -112,6 +113,8 @@ protected:
static bool string_matches(const StringView& str, const StringView& needle, unsigned flags)
{
auto case_sensitivity = (flags & CaseInsensitive) ? CaseSensitivity::CaseInsensitive : CaseSensitivity::CaseSensitive;
if (flags & MatchFull)
return str.length() == needle.length() && str.starts_with(needle, case_sensitivity);
if (flags & MatchAtStart)
return str.starts_with(needle, case_sensitivity);
return str.contains(needle, case_sensitivity);