From 65821814ff0ac5ae33544b620fe964571ed58cbd Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Thu, 30 Apr 2020 13:48:14 +0200 Subject: Remove QTextCodec dependency from qmacmime.mm Change-Id: I99f95d026683299c5d437b52803cb5a3a0ad0263 Reviewed-by: Thiago Macieira Reviewed-by: Alex Blasche --- src/platformsupport/clipboard/qmacmime.mm | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'src/platformsupport') 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 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; } -- cgit v1.2.3