diff options
author | Lars Knoll <lars.knoll@qt.io> | 2022-05-31 11:58:50 +0200 |
---|---|---|
committer | Fabian Kosmale <fabian.kosmale@qt.io> | 2022-06-21 01:04:12 +0200 |
commit | 9c1f3b6d4d5a5fe59396062c6f68cc1201665c62 (patch) | |
tree | 0a59a4dd0293f5c323433ffd314b34057e3d5152 /src/corelib/kernel/qmimedata.cpp | |
parent | d531c4b65dc47312256f9de2786a852f6ac4c1f5 (diff) |
Add QStringDecoder::decoderForHtml()
Now that QStringConverter can handle non UTF encodings through ICU,
add a way to get a decoder for arbitrary HTML code.
Opposed to QStringConverter::encodingForHtml(), this method will
try to create a valid string decoder also for non unicode codecs.
Pick-to: 6.4
Change-Id: I343584da1b114396c744f482d9b433c9cedcc511
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/kernel/qmimedata.cpp')
-rw-r--r-- | src/corelib/kernel/qmimedata.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/corelib/kernel/qmimedata.cpp b/src/corelib/kernel/qmimedata.cpp index 661a30b167..02a86bff37 100644 --- a/src/corelib/kernel/qmimedata.cpp +++ b/src/corelib/kernel/qmimedata.cpp @@ -127,10 +127,9 @@ QVariant QMimeDataPrivate::retrieveTypedData(const QString &format, QMetaType ty if (ba.isNull()) return QVariant(); if (format == "text/html"_L1) { - auto encoding = QStringConverter::encodingForHtml(ba); - if (encoding) { - QStringDecoder toUtf16(*encoding); - return QString(toUtf16(ba)); + QStringDecoder decoder = QStringDecoder::decoderForHtml(ba); + if (decoder.isValid()) { + return QString(decoder(ba)); } // fall back to utf8 } |