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) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
495e4c6ad2
commit
d9acc25af3
@ -35,18 +35,6 @@ namespace QtAndroidClipboard
|
|||||||
void setClipboardMimeData(QMimeData *data)
|
void setClipboardMimeData(QMimeData *data)
|
||||||
{
|
{
|
||||||
clearClipboardData();
|
clearClipboardData();
|
||||||
if (data->hasText()) {
|
|
||||||
QJniObject::callStaticMethod<void>(applicationClass(),
|
|
||||||
"setClipboardText", "(Ljava/lang/String;)V",
|
|
||||||
QJniObject::fromString(data->text()).object());
|
|
||||||
}
|
|
||||||
if (data->hasHtml()) {
|
|
||||||
QJniObject::callStaticMethod<void>(applicationClass(),
|
|
||||||
"setClipboardHtml",
|
|
||||||
"(Ljava/lang/String;Ljava/lang/String;)V",
|
|
||||||
QJniObject::fromString(data->text()).object(),
|
|
||||||
QJniObject::fromString(data->html()).object());
|
|
||||||
}
|
|
||||||
if (data->hasUrls()) {
|
if (data->hasUrls()) {
|
||||||
QList<QUrl> urls = data->urls();
|
QList<QUrl> urls = data->urls();
|
||||||
for (const auto &u : qAsConst(urls)) {
|
for (const auto &u : qAsConst(urls)) {
|
||||||
@ -55,6 +43,16 @@ namespace QtAndroidClipboard
|
|||||||
"(Ljava/lang/String;)V",
|
"(Ljava/lang/String;)V",
|
||||||
QJniObject::fromString(u.toEncoded()).object());
|
QJniObject::fromString(u.toEncoded()).object());
|
||||||
}
|
}
|
||||||
|
} else if (data->hasText()) { // hasText || hasUrls, so the order matter here.
|
||||||
|
QJniObject::callStaticMethod<void>(applicationClass(),
|
||||||
|
"setClipboardText", "(Ljava/lang/String;)V",
|
||||||
|
QJniObject::fromString(data->text()).object());
|
||||||
|
} else if (data->hasHtml()) {
|
||||||
|
QJniObject::callStaticMethod<void>(applicationClass(),
|
||||||
|
"setClipboardHtml",
|
||||||
|
"(Ljava/lang/String;Ljava/lang/String;)V",
|
||||||
|
QJniObject::fromString(data->text()).object(),
|
||||||
|
QJniObject::fromString(data->html()).object());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user