QStringConverter: port (name, Flags) ctor to QAnyStringView
These kinds of lookup functions are no-brainers for QAnyStringView. This is required to replace the QStringEncoder/Decoder constructors from QString, newly added for 6.8, and found in API review to be better written using QAnyStringView. Because this is API-Review-relevant, keep the implementation pessimized. It's not worse than the code that it replaces (toLatin1() on an unshared QString performs in-place conversion), and can be improved later. Task-number: QTBUG-126108 Change-Id: I4a0d1840d4754670b2e2f20d768ed98f7e1937d5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit f6c11ac4f20a16d0b2113014e2dac63b95d946ae) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
09c3e9da1f
commit
0026955270
@ -1148,6 +1148,10 @@ bool QtPrivate::ResultIteratorBase::operator!=(const QtPrivate::ResultIteratorBa
|
|||||||
|
|
||||||
#include "qstringconverter.h"
|
#include "qstringconverter.h"
|
||||||
|
|
||||||
|
QStringConverter::QStringConverter(const char *name, Flags f)
|
||||||
|
: QStringConverter(QAnyStringView{name}, f)
|
||||||
|
{}
|
||||||
|
|
||||||
auto QStringConverter::encodingForName(const char *name) noexcept -> std::optional<Encoding>
|
auto QStringConverter::encodingForName(const char *name) noexcept -> std::optional<Encoding>
|
||||||
{
|
{
|
||||||
return encodingForName(QAnyStringView{name});
|
return encodingForName(QAnyStringView{name});
|
||||||
|
@ -2146,6 +2146,10 @@ struct QStringConverterICU : QStringConverter
|
|||||||
return conv;
|
return conv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const QStringConverter::Interface *
|
||||||
|
make_icu_converter(QStringConverterBase::State *state, QAnyStringView name)
|
||||||
|
{ return make_icu_converter(state, name.toString().toLatin1().constData()); } // ### optimize
|
||||||
|
|
||||||
static const QStringConverter::Interface *make_icu_converter(
|
static const QStringConverter::Interface *make_icu_converter(
|
||||||
QStringConverterBase::State *state,
|
QStringConverterBase::State *state,
|
||||||
const char *name)
|
const char *name)
|
||||||
@ -2183,7 +2187,7 @@ struct QStringConverterICU : QStringConverter
|
|||||||
/*!
|
/*!
|
||||||
\internal
|
\internal
|
||||||
*/
|
*/
|
||||||
QStringConverter::QStringConverter(const char *name, Flags f)
|
QStringConverter::QStringConverter(QAnyStringView name, Flags f)
|
||||||
: iface(nullptr), state(f)
|
: iface(nullptr), state(f)
|
||||||
{
|
{
|
||||||
auto e = encodingForName(name);
|
auto e = encodingForName(name);
|
||||||
|
@ -138,7 +138,10 @@ protected:
|
|||||||
constexpr explicit QStringConverter(const Interface *i) noexcept
|
constexpr explicit QStringConverter(const Interface *i) noexcept
|
||||||
: iface(i)
|
: iface(i)
|
||||||
{}
|
{}
|
||||||
|
#if QT_CORE_REMOVED_SINCE(6, 8)
|
||||||
Q_CORE_EXPORT explicit QStringConverter(const char *name, Flags f);
|
Q_CORE_EXPORT explicit QStringConverter(const char *name, Flags f);
|
||||||
|
#endif
|
||||||
|
Q_CORE_EXPORT explicit QStringConverter(QAnyStringView name, Flags f);
|
||||||
|
|
||||||
|
|
||||||
~QStringConverter() = default;
|
~QStringConverter() = default;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user