From fd6f9e92d8307c0a8752461f7bfcb404341a75da Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Wed, 8 May 2024 14:22:00 +1000 Subject: [PATCH] wasm: fix uri-list handling urls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We were only handling the case where uri-list was a file. This fixes a regression. Also - add dragging url into the clipboard manual test Pick-to: 6.7.1 Change-Id: Ifbd087ffd157463b6b903199e3ff22c2de1c4942 Reviewed-by: Piotr Wierciński Reviewed-by: Morten Johan Sørvig (cherry picked from commit d67d49f45ec84aba4047305825f36bbc02d3d26c) Reviewed-by: Qt Cherry-pick Bot --- src/plugins/platforms/wasm/qwasmdom.cpp | 11 +++++++++-- tests/manual/wasm/clipboard/mainwindow.cpp | 6 +++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/plugins/platforms/wasm/qwasmdom.cpp b/src/plugins/platforms/wasm/qwasmdom.cpp index 6b2b3d09336..96790ca71f3 100644 --- a/src/plugins/platforms/wasm/qwasmdom.cpp +++ b/src/plugins/platforms/wasm/qwasmdom.cpp @@ -104,7 +104,10 @@ void DataTransfer::toMimeDataWithFile(std::function callback) if (--m_remainingItemCount > 0) return; - mimeData->setUrls(fileUrls); + QList allUrls; + allUrls.append(mimeData->urls()); + allUrls.append(fileUrls); + mimeData->setUrls(allUrls); m_callback(mimeData); @@ -201,7 +204,11 @@ void DataTransfer::toMimeDataWithFile(std::function callback) mimeContext->mimeData->setHtml(data); else if (itemMimeType.isEmpty() || itemMimeType == "text/plain") mimeContext->mimeData->setText(data); // the type can be empty - else { + else if (itemMimeType.isEmpty() || itemMimeType == "text/uri-list") { + QList urls; + urls.append(data); + mimeContext->mimeData->setUrls(urls); + } else { // TODO improve encoding if (data.startsWith("QB64")) { data.remove(0, 4); diff --git a/tests/manual/wasm/clipboard/mainwindow.cpp b/tests/manual/wasm/clipboard/mainwindow.cpp index 81a95c42180..c67c795b053 100644 --- a/tests/manual/wasm/clipboard/mainwindow.cpp +++ b/tests/manual/wasm/clipboard/mainwindow.cpp @@ -275,7 +275,11 @@ void MainWindow::dropEvent(QDropEvent* e) } ui->textEdit_2->insertPlainText(" Drop has url data length: " + sizeStr + "\n"); - ui->textEdit_2->insertPlainText(" " + urlStr + " sha1 " + sha1.left(8) + "\n"); + if (sha1.isEmpty()) { + ui->textEdit->insertPlainText(urlStr); + } + ui->textEdit_2->insertPlainText(" " + urlStr + (!sha1.isEmpty() ? " sha1 " + sha1.left(8) : "") + "\n"); + } ui->textEdit_2->insertPlainText("\n");