diff options
author | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2023-10-11 16:01:26 +0300 |
---|---|---|
committer | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2023-10-11 16:01:26 +0300 |
commit | 03294b37d76750b6100618ba4c172a688e826d46 (patch) | |
tree | 2e085e207907bba2dc83f44ccf3b2dfd0e2379eb /src/plugins/platforms/android | |
parent | da6e958319e95fe564d3b30c931492dd666bfaff (diff) | |
parent | 1bf394a4c98c529844c896f8666412e5fcac8a7a (diff) |
Merge remote-tracking branch 'origin/tqtc/lts-5.15.12' into tqtc/lts-5.15-opensource
Change-Id: Ie633210bf47c0a8738f0278a2d2b6362334ca564
Diffstat (limited to 'src/plugins/platforms/android')
-rw-r--r-- | src/plugins/platforms/android/androidjniclipboard.cpp | 20 | ||||
-rw-r--r-- | src/plugins/platforms/android/qandroidplatformservices.cpp | 11 |
2 files changed, 15 insertions, 16 deletions
diff --git a/src/plugins/platforms/android/androidjniclipboard.cpp b/src/plugins/platforms/android/androidjniclipboard.cpp index c20ac456b1..763ecc0f62 100644 --- a/src/plugins/platforms/android/androidjniclipboard.cpp +++ b/src/plugins/platforms/android/androidjniclipboard.cpp @@ -70,26 +70,24 @@ namespace QtAndroidClipboard void setClipboardMimeData(QMimeData *data) { clearClipboardData(); - if (data->hasText()) { + if (data->hasUrls()) { + QList<QUrl> urls = data->urls(); + for (const auto &u : qAsConst(urls)) { + QJNIObjectPrivate::callStaticMethod<void>(applicationClass(), "setClipboardUri", + "(Ljava/lang/String;)V", + QJNIObjectPrivate::fromString(u.toEncoded()).object()); + } + } else if (data->hasText()) { // hasText || hasUrls, so the order matter here. QJNIObjectPrivate::callStaticMethod<void>(applicationClass(), "setClipboardText", "(Ljava/lang/String;)V", QJNIObjectPrivate::fromString(data->text()).object()); - } - if (data->hasHtml()) { + } else if (data->hasHtml()) { QJNIObjectPrivate::callStaticMethod<void>(applicationClass(), "setClipboardHtml", "(Ljava/lang/String;Ljava/lang/String;)V", QJNIObjectPrivate::fromString(data->text()).object(), QJNIObjectPrivate::fromString(data->html()).object()); } - if (data->hasUrls()) { - QList<QUrl> urls = data->urls(); - for (const auto &u : qAsConst(urls)) { - QJNIObjectPrivate::callStaticMethod<void>(applicationClass(), "setClipboardUri", - "(Ljava/lang/String;)V", - QJNIObjectPrivate::fromString(u.toEncoded()).object()); - } - } } QMimeData *getClipboardMimeData() diff --git a/src/plugins/platforms/android/qandroidplatformservices.cpp b/src/plugins/platforms/android/qandroidplatformservices.cpp index c095613ce7..e317627770 100644 --- a/src/plugins/platforms/android/qandroidplatformservices.cpp +++ b/src/plugins/platforms/android/qandroidplatformservices.cpp @@ -59,12 +59,13 @@ bool QAndroidPlatformServices::openUrl(const QUrl &theUrl) // if the file is local, we need to pass the MIME type, otherwise Android // does not start an Intent to view this file QLatin1String fileScheme("file"); - if ((url.scheme().isEmpty() || url.scheme() == fileScheme) && QFile::exists(url.path())) { - // a real URL including the scheme is needed, else the Intent can not be started + + // a real URL including the scheme is needed, else the Intent can not be started + if (url.scheme().isEmpty()) url.setScheme(fileScheme); - QMimeDatabase mimeDb; - mime = mimeDb.mimeTypeForUrl(url).name(); - } + + if (url.scheme() == fileScheme) + mime = QMimeDatabase().mimeTypeForUrl(url).name(); QJNIObjectPrivate urlString = QJNIObjectPrivate::fromString(url.toString()); QJNIObjectPrivate mimeString = QJNIObjectPrivate::fromString(mime); |