diff --git a/src/lib/io/kurlmimedata.cpp b/src/lib/io/kurlmimedata.cpp --- a/src/lib/io/kurlmimedata.cpp +++ b/src/lib/io/kurlmimedata.cpp @@ -74,8 +74,11 @@ QByteArray ba = mimeData->data(QString::fromLatin1(firstMimeType)); if (ba.isEmpty()) { ba = mimeData->data(QString::fromLatin1(secondMimeType)); - } - if (!ba.isEmpty()) { + // If extracting uris from test/uri-list, use the much faster QMimeData method urls() + if (!ba.isEmpty()) { + uris = mimeData->urls(); + } + } else { // Code from qmimedata.cpp QList urls = ba.split('\n'); for (int i = 0; i < urls.size(); ++i) { @@ -85,6 +88,7 @@ } } } + if (metaData) { const QByteArray metaDataPayload = mimeData->data(QStringLiteral("application/x-kio-metadata")); if (!metaDataPayload.isEmpty()) {