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>bb10
parent
8a84eb6c4a
commit
65821814ff
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue