From 6ec1766c5cf0f396ced2f60da5097e23fb77e964 Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Thu, 29 Jun 2023 16:22:16 +0300 Subject: [PATCH] Android: use all nameFilters at once for native file dialog Since the native file dialog doesn't allow changing the name filters after it's been opened, another way to ensure that we comply with the provided nameFilters list is to provide them all at once. [ChangeLog][Android][FileDialog] use all nameFilters at once since Android file picker can't change nameFilters after being opened. Change-Id: I389feecae190af41b87c7f2070494bd57eec4b69 Reviewed-by: Oliver Eftevaag (cherry picked from commit 0f4181919663e85ddc142456b357dcde3d0a4a7f) Reviewed-by: Qt Cherry-pick Bot --- .../android/qandroidplatformfiledialoghelper.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/plugins/platforms/android/qandroidplatformfiledialoghelper.cpp b/src/plugins/platforms/android/qandroidplatformfiledialoghelper.cpp index 3723e33371b..2d0eeecdbe3 100644 --- a/src/plugins/platforms/android/qandroidplatformfiledialoghelper.cpp +++ b/src/plugins/platforms/android/qandroidplatformfiledialoghelper.cpp @@ -146,12 +146,15 @@ void QAndroidPlatformFileDialogHelper::setMimeTypes() { QStringList mimeTypes = options()->mimeTypeFilters(); const QStringList nameFilters = options()->nameFilters(); - const QString nameFilter = nameFilters.isEmpty() ? QString() : nameFilters.first(); - if (!nameFilter.isEmpty()) { + if (!nameFilters.isEmpty()) { QMimeDatabase db; - for (const QString &filter : nameFilterExtensions(nameFilter)) - mimeTypes.append(db.mimeTypeForFile(filter, QMimeDatabase::MatchExtension).name()); + for (auto filter : nameFilters) { + if (!filter.isEmpty()) { + for (const QString &filter : nameFilterExtensions(filter)) + mimeTypes.append(db.mimeTypeForFile(filter, QMimeDatabase::MatchExtension).name()); + } + } } const QString initialType = mimeTypes.size() == 1 ? mimeTypes.at(0) : "*/*"_L1;