Warning, /graphics/krita/3rdparty/ext_qt/0016-Android-Fix-native-fileDialog-not-waiting-for-user-s.patch is written in an unsupported language. File is not indexed.
0001 From 412becd601fea5f8bdd8ff52f921ad823b3396cc Mon Sep 17 00:00:00 2001 0002 From: Assam Boudjelthia <assam.boudjelthia@qt.io> 0003 Date: Fri, 31 Jan 2020 17:04:54 +0200 0004 Subject: [PATCH 16/46] Android: Fix native fileDialog not waiting for user 0005 selection 0006 0007 Add an event loop to wait for user file selection in native fileDialog 0008 0009 Task-number: QTBUG-77214 0010 Change-Id: I3d97d6c3f46cf2a8ed0ee6f98e555e8d62e12cc3 0011 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> 0012 Reviewed-by: Andy Shaw <andy.shaw@qt.io> 0013 --- 0014 .../platforms/android/qandroidplatformfiledialoghelper.cpp | 3 +++ 0015 .../platforms/android/qandroidplatformfiledialoghelper.h | 2 ++ 0016 2 files changed, 5 insertions(+) 0017 0018 diff --git a/src/plugins/platforms/android/qandroidplatformfiledialoghelper.cpp b/src/plugins/platforms/android/qandroidplatformfiledialoghelper.cpp 0019 index 7585b7eb95..fb979ab6cc 100644 0020 --- a/src/plugins/platforms/android/qandroidplatformfiledialoghelper.cpp 0021 +++ b/src/plugins/platforms/android/qandroidplatformfiledialoghelper.cpp 0022 @@ -100,10 +100,13 @@ bool QAndroidPlatformFileDialogHelper::show(Qt::WindowFlags windowFlags, Qt::Win 0023 0024 void QAndroidPlatformFileDialogHelper::exec() 0025 { 0026 + m_eventLoop.exec(QEventLoop::DialogExec); 0027 } 0028 0029 void QAndroidPlatformFileDialogHelper::hide() 0030 { 0031 + if (m_eventLoop.isRunning()) 0032 + m_eventLoop.exit(); 0033 QtAndroidPrivate::unregisterActivityResultListener(this); 0034 } 0035 0036 diff --git a/src/plugins/platforms/android/qandroidplatformfiledialoghelper.h b/src/plugins/platforms/android/qandroidplatformfiledialoghelper.h 0037 index e445aa2fef..5cd26af7c9 100644 0038 --- a/src/plugins/platforms/android/qandroidplatformfiledialoghelper.h 0039 +++ b/src/plugins/platforms/android/qandroidplatformfiledialoghelper.h 0040 @@ -41,6 +41,7 @@ 0041 #define QANDROIDPLATFORMFILEDIALOGHELPER_H 0042 0043 #include <jni.h> 0044 +#include <QEventLoop> 0045 #include <qpa/qplatformdialoghelper.h> 0046 #include <QtCore/private/qjnihelpers_p.h> 0047 0048 @@ -72,6 +73,7 @@ public: 0049 bool handleActivityResult(jint requestCode, jint resultCode, jobject data) override; 0050 0051 private: 0052 + QEventLoop m_eventLoop; 0053 QUrl m_selectedFile; 0054 }; 0055 0056 -- 0057 2.33.0 0058