diff options
author | Christian Strømme <christian.stromme@qt.io> | 2020-08-05 20:48:08 +0200 |
---|---|---|
committer | Christian Strømme <christian.stromme@qt.io> | 2022-10-21 08:46:35 +0000 |
commit | c1479bb9a7380d725e4d5998d44ad398a6044889 (patch) | |
tree | adf619617e30ea0d3dde2bf21d3e44c78d89183e /src/plugins/platforms/android | |
parent | 46386243569471fc0bfbb8356fc23ee8c611771b (diff) |
Android: Fix clipboard issue with urls
Both hasUrls() and hasText() can return true when containing urls, as
hasText() checks hasUrls() as well.
Fixes: QTBUG-85773
Change-Id: I91a34f151e7de17ab5b9a2f24bc0b6e6c097d7f9
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit 5f9591bde3f3a67c566f3aa3571b57c82bd59cc5)
Diffstat (limited to 'src/plugins/platforms/android')
-rw-r--r-- | src/plugins/platforms/android/androidjniclipboard.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/plugins/platforms/android/androidjniclipboard.cpp b/src/plugins/platforms/android/androidjniclipboard.cpp index d38485ab4a..535c9b50ba 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() |