From f8359084b948fd8f6027d23a869f1a0d50cc30c1 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 2 Apr 2024 16:24:52 -0700 Subject: [PATCH] QString{En,De}coder: add constructors with QString parameters Because QStringConverter::availableCodecs() returns QString. Added as Q_WEAK_OVERLOAD so this doesn't create ambiguous overloads when passing QByteArrays. Fixes: QTBUG-123919 Change-Id: If1bf59ecbe014b569ba1fffd17c29a253ac22abe Reviewed-by: Sune Vuorela Reviewed-by: Fabian Kosmale Reviewed-by: Thiago Macieira --- src/corelib/text/qstringconverter.cpp | 20 ++++++++++++++++++++ src/corelib/text/qstringconverter.h | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/src/corelib/text/qstringconverter.cpp b/src/corelib/text/qstringconverter.cpp index 565e3e598bf..67c75d708e1 100644 --- a/src/corelib/text/qstringconverter.cpp +++ b/src/corelib/text/qstringconverter.cpp @@ -2509,6 +2509,16 @@ const char *QStringConverter::nameForEncoding(QStringConverter::Encoding e) \sa isValid() */ +/*! + \fn constexpr QStringEncoder::QStringEncoder(const QString &name, Flags flags = Flag::Default) + \since 6.8 + + Creates an encoder object using \a name and \a flags. + If \a name is not the name of a known encoding an invalid converter will get created. + + \sa isValid() +*/ + /*! \fn QStringEncoder::DecodedData QStringEncoder::encode(const QString &in) \fn QStringEncoder::DecodedData QStringEncoder::encode(QStringView in) @@ -2600,6 +2610,16 @@ const char *QStringConverter::nameForEncoding(QStringConverter::Encoding e) \sa isValid() */ +/*! + \fn constexpr QStringDecoder::QStringDecoder(const QString &name, Flags flags = Flag::Default) + \since 6.8 + + Creates an decoder object using \a name and \a flags. + If \a name is not the name of a known encoding an invalid converter will get created. + + \sa isValid() +*/ + /*! \fn QStringDecoder::EncodedData QStringDecoder::operator()(const QByteArray &ba) \fn QStringDecoder::EncodedData QStringDecoder::decode(const QByteArray &ba) diff --git a/src/corelib/text/qstringconverter.h b/src/corelib/text/qstringconverter.h index 055019836a2..40791f8e26c 100644 --- a/src/corelib/text/qstringconverter.h +++ b/src/corelib/text/qstringconverter.h @@ -33,6 +33,9 @@ public: explicit QStringEncoder(const char *name, Flags flags = Flag::Default) : QStringConverter(name, flags) {} + Q_WEAK_OVERLOAD explicit QStringEncoder(const QString &name, Flags flags = Flag::Default) + : QStringEncoder(name.toLatin1().constData(), flags) + {} template struct DecodedData @@ -95,6 +98,9 @@ public: explicit QStringDecoder(const char *name, Flags f = Flag::Default) : QStringConverter(name, f) {} + Q_WEAK_OVERLOAD explicit QStringDecoder(const QString &name, Flags f = Flag::Default) + : QStringDecoder(name.toLatin1().constData(), f) + {} template struct EncodedData