summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2020-04-30 13:48:14 +0200
committerLars Knoll <lars.knoll@qt.io>2020-05-14 07:51:00 +0200
commit65821814ff0ac5ae33544b620fe964571ed58cbd (patch)
tree8b2c8069e2bcf1cb271d2ef7b32669740deeeb67
parent8a84eb6c4afceeefe862f4f165e7587fa6c31c60 (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.mm17
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;
}