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)
|
||||
{
|
||||
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()) {
|
||||
QList<QUrl> urls = data->urls();
|
||||
for (const auto &u : qAsConst(urls)) {
|
||||
@ -55,6 +43,16 @@ namespace QtAndroidClipboard
|
||||
"(Ljava/lang/String;)V",
|
||||
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