Game List: Add initials-only search

This commit is contained in:
Eladash 2023-08-21 15:55:36 +03:00 committed by Elad Ashkenazi
parent 1843a27c2a
commit 16c8f8c9cd
1 changed files with 24 additions and 0 deletions

View File

@ -2446,6 +2446,30 @@ bool game_list_frame::SearchMatchesApp(const QString& name, const QString& seria
{
return true;
}
// Initials-only search
if (search_text.size() >= 2 && search_text.count(QRegularExpression(QStringLiteral("[a-z0-9]"))) >= 2 && !search_text.contains(QRegularExpression(QStringLiteral("[^a-z0-9 ]"))))
{
QString initials = QStringLiteral("\\b");
for (auto it = search_text.begin(); it != search_text.end(); it++)
{
if (it->isSpace())
{
continue;
}
initials += *it;
initials += QStringLiteral("\\w*\\b ");
}
initials += QChar('?');
if (title_name_replaced_trademarks_with_spaces.contains(QRegularExpression(initials)))
{
return true;
}
}
}
return title_name.contains(search_text) || serial.toLower().contains(search_text);