fix: file dialog filters not working correctly (#46722)

fix: fix file dialog filters not working correctly

If someone sets an `All filter` with `*` at the start of the filters all upcoming filters will be shifted and thus labels won't fit to the extensions they actually filter.

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Kolja Lampe <razzeee@gmail.com>
This commit is contained in:
trop[bot] 2025-04-22 11:32:15 -05:00 committed by GitHub
parent b821cf1adc
commit 8f40f8126e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -44,14 +44,14 @@ ui::SelectFileDialog::FileTypeInfo GetFilterInfo(const Filters& filters) {
ui::SelectFileDialog::FileTypeInfo file_type_info;
for (const auto& [name, extension_group] : filters) {
file_type_info.extension_description_overrides.push_back(
base::UTF8ToUTF16(name));
const bool has_all_files_wildcard = std::ranges::any_of(
extension_group, [](const auto& ext) { return ext == "*"; });
if (has_all_files_wildcard) {
file_type_info.include_all_files = true;
} else {
file_type_info.extension_description_overrides.push_back(
base::UTF8ToUTF16(name));
file_type_info.extensions.emplace_back(extension_group);
}
}