4#ifndef QQMLSTRINGCONVERTERS_P_H
5#define QQMLSTRINGCONVERTERS_P_H
18#include <QtCore/qglobal.h>
19#include <QtCore/qvariant.h>
21#include <private/qtqmlglobal_p.h>
38#if QT_CONFIG(datestring)
49 template<
int NumParams,
char16_t... separators>
53 NumParams == 2 || NumParams == 3 || NumParams == 4 || NumParams == 16,
54 "Unsupported number of params; add an additional case below if necessary.");
55 constexpr std::array<char16_t, NumParams - 1> separatorArray{ separators... };
58 "Did not specify any separators for isValidNumberString.");
60 "Did not specify enough separators for isValidNumberString.");
68 const auto current =
view.first(commaIndex).toDouble(&floatOk);
72 (*numbers)[
i] = current;
76 const auto current =
view.toDouble(&floatOk);
80 (*numbers)[NumParams - 1] = current;
87 template<
typename T,
int NumParams,
char16_t... separators>
91 NumParams == 2 || NumParams == 3 || NumParams == 4 || NumParams == 16,
92 "Unsupported number of params; add an additional case below if necessary.");
94 std::array<double, NumParams> parameters;
95 if (!isValidNumberString<NumParams, separators...>(
s, ¶meters)) {
104 if constexpr (NumParams == 2) {
105 return T(parameters[0], parameters[1]);
106 }
else if constexpr (NumParams == 3) {
107 return T(parameters[0], parameters[1], parameters[2]);
108 }
else if constexpr (NumParams == 4) {
109 return T(parameters[0], parameters[1], parameters[2], parameters[3]);
110 }
else if constexpr (NumParams == 16) {
111 return T(parameters[0], parameters[1], parameters[2], parameters[3], parameters[4],
112 parameters[5], parameters[6], parameters[7], parameters[8], parameters[9],
113 parameters[10], parameters[11], parameters[12], parameters[13], parameters[14],
117 Q_UNREACHABLE_RETURN(T{});
\inmodule QtCore\reentrant
\inmodule QtCore \reentrant
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
\macro QT_RESTRICTED_CAST_FROM_ASCII
\inmodule QtCore \reentrant
Q_QML_EXPORT QPointF pointFFromString(const QString &, bool *ok=nullptr)
T valueTypeFromNumberString(const QString &s, bool *ok=nullptr)
Q_QML_EXPORT unsigned rgbaFromString(const QString &, bool *ok=nullptr)
Q_QML_EXPORT QSizeF sizeFFromString(const QString &, bool *ok=nullptr)
bool isValidNumberString(const QString &s, std::array< double, NumParams > *numbers=nullptr)
Q_QML_EXPORT QVariant variantFromString(const QString &, QMetaType preferredType, bool *ok=nullptr)
Q_QML_EXPORT QRectF rectFFromString(const QString &, bool *ok=nullptr)
Q_QML_EXPORT QVariant colorFromString(const QString &, bool *ok=nullptr)
Combined button and popup list for selecting options.
#define Q_STATIC_ASSERT_X(Condition, Message)
static std::optional< QDate > dateFromString(const QString &string, QV4::ExecutionEngine *engine)
\qmlmethod string Qt::formatDate(datetime date, variant format, variant localeFormatOption)
static std::optional< QTime > timeFromString(const QString &string, QV4::ExecutionEngine *engine)
\qmlmethod string Qt::formatTime(datetime time, variant format, variant localeFormatOption)
static std::optional< QDateTime > dateTimeFromString(const QString &string, QV4::ExecutionEngine *engine)
\qmlmethod string Qt::formatDateTime(datetime dateTime, variant format, variant localeFormatOption)