diff options
author | Lars Knoll <lars.knoll@qt.io> | 2020-04-30 13:48:14 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2020-05-14 07:51:00 +0200 |
commit | 65821814ff0ac5ae33544b620fe964571ed58cbd (patch) | |
tree | 8b2c8069e2bcf1cb271d2ef7b32669740deeeb67 | |
parent | 8a84eb6c4afceeefe862f4f165e7587fa6c31c60 (diff) |
Remove QTextCodec dependency from qmacmime.mm
Change-Id: I99f95d026683299c5d437b52803cb5a3a0ad0263
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
-rw-r--r-- | src/platformsupport/clipboard/qmacmime.mm | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/platformsupport/clipboard/qmacmime.mm b/src/platformsupport/clipboard/qmacmime.mm index c97d961260..2679c92f20 100644 --- a/src/platformsupport/clipboard/qmacmime.mm +++ b/src/platformsupport/clipboard/qmacmime.mm @@ -418,10 +418,9 @@ QVariant QMacPasteboardMimeUnicodeText::convertToMime(const QString &mimetype, Q QVariant ret; if (flavor == QLatin1String("public.utf8-plain-text")) { ret = QString::fromUtf8(firstData); -#if QT_CONFIG(textcodec) } else if (flavor == QLatin1String("public.utf16-plain-text")) { - ret = QTextCodec::codecForName("UTF-16")->toUnicode(firstData); -#endif + QString str = QStringDecoder(QStringDecoder::Utf16)(firstData); + ret = str; } else { qWarning("QMime::convertToMime: unhandled mimetype: %s", qPrintable(mimetype)); } @@ -434,25 +433,23 @@ QList<QByteArray> QMacPasteboardMimeUnicodeText::convertFromMime(const QString & QString string = data.toString(); if (flavor == QLatin1String("public.utf8-plain-text")) ret.append(string.toUtf8()); -#if QT_CONFIG(textcodec) else if (flavor == QLatin1String("public.utf16-plain-text")) { - QTextCodec::ConverterState state; + QStringEncoder::Flags f; #if defined(Q_OS_MACOS) // Some applications such as Microsoft Excel, don't deal well with // a BOM present, so we follow the traditional approach of Qt on // macOS to not generate public.utf16-plain-text with a BOM. - state.flags = QTextCodec::IgnoreHeader; + f = QStringEncoder::Flag::Default; #else // Whereas iOS applications will fail to paste if we do _not_ // include a BOM in the public.utf16-plain-text content, most // likely due to converting the data using NSUTF16StringEncoding // which assumes big-endian byte order if there is no BOM. - state.flags = QTextCodec::DefaultConversion; + f = QStringEncoder::Flag::WriteBom; #endif - ret.append(QTextCodec::codecForName("UTF-16")->fromUnicode( - string.constData(), string.length(), &state)); + QStringEncoder encoder(QStringEncoder::Utf16, f); + ret.append(encoder(string)); } -#endif return ret; } |