27 const QString v =
value(params);
36 case QMetaType::Short:
39 case QMetaType::LongLong:
41 const qlonglong val = c->
locale().toLongLong(v, &ok);
42 if (Q_UNLIKELY(!ok)) {
44 qCWarning(C_VALIDATOR).noquote().nospace()
45 <<
debugString(c) <<
" Failed to parse \"" << v <<
"\" into an integer number";
47 const qlonglong max = d->extractLongLong(c, params, d->max, &ok);
48 if (Q_UNLIKELY(!ok)) {
50 c,
static_cast<int>(ValidatorRulePrivate::ErrorType::InvalidMax));
51 qCWarning(C_VALIDATOR).noquote()
52 <<
debugString(c) <<
"Invalid maximum comparison value";
56 qCDebug(C_VALIDATOR).noquote()
57 <<
debugString(c) << val <<
"is not smaller than" << max;
64 case QMetaType::UChar:
65 case QMetaType::UShort:
67 case QMetaType::ULong:
68 case QMetaType::ULongLong:
70 const qulonglong val = v.toULongLong(&ok);
71 if (Q_UNLIKELY(!ok)) {
73 qCWarning(C_VALIDATOR).noquote().nospace()
75 <<
"\" into an unsigned integer number";
77 const qulonglong max = d->extractULongLong(c, params, d->max, &ok);
78 if (Q_UNLIKELY(!ok)) {
80 c,
static_cast<int>(ValidatorRulePrivate::ErrorType::InvalidMax));
81 qCWarning(C_VALIDATOR).noquote()
82 <<
debugString(c) <<
"Invalid maximum comparison value";
86 qCDebug(C_VALIDATOR).noquote()
87 <<
debugString(c) << val <<
"is not smaller than" << max;
94 case QMetaType::Float:
95 case QMetaType::Double:
97 const double val = v.toDouble(&ok);
98 if (Q_UNLIKELY(!ok)) {
100 qCWarning(C_VALIDATOR).noquote().nospace()
102 <<
"\" into a floating point number";
104 const double max = d->extractDouble(c, params, d->max, &ok);
105 if (Q_UNLIKELY(!ok)) {
107 c,
static_cast<int>(ValidatorRulePrivate::ErrorType::InvalidMax));
108 qCWarning(C_VALIDATOR).noquote()
109 <<
debugString(c) <<
"Invalid maximum comparison value";
113 qCDebug(C_VALIDATOR).noquote()
114 <<
debugString(c) << val <<
"is not smaller than" << max;
121 case QMetaType::QString:
123 const auto val =
static_cast<qlonglong
>(v.length());
124 const qlonglong max = d->extractLongLong(c, params, d->max, &ok);
125 if (Q_UNLIKELY(!ok)) {
127 c,
static_cast<int>(ValidatorRulePrivate::ErrorType::InvalidMax));
128 qCWarning(C_VALIDATOR).noquote()
129 <<
debugString(c) <<
"Invalid maximum comparison value";
133 qCDebug(C_VALIDATOR).noquote()
134 <<
debugString(c) <<
"String length" << val <<
"is not shorter than" << max;
141 qCWarning(C_VALIDATOR).noquote()
142 <<
debugString(c) <<
"The comparison type" << d->type <<
"is not supported";
144 c,
static_cast<int>(ValidatorRulePrivate::ErrorType::InvalidType));
149 if (d->type != QMetaType::QString) {
150 const QVariant _v = d->valueToNumber(c, v, d->type);
157 result.
value.setValue(v);
173 case QMetaType::Char:
174 case QMetaType::Short:
176 case QMetaType::Long:
177 case QMetaType::LongLong:
178 case QMetaType::QString:
179 max = c->
locale().toString(errorData.toLongLong());
181 case QMetaType::UChar:
182 case QMetaType::UShort:
183 case QMetaType::UInt:
184 case QMetaType::ULong:
185 case QMetaType::ULongLong:
186 max = c->
locale().toString(errorData.toULongLong());
188 case QMetaType::Float:
189 case QMetaType::Double:
190 max = c->
locale().toString(errorData.toDouble());
194 static_cast<int>(ValidatorRulePrivate::ErrorType::InvalidType));
197 const QString _label =
label(c);
199 if (_label.isEmpty()) {
200 if (d->type == QMetaType::QString) {
202 return c->
qtTrId(
"cutelyst-valmax-genvalerr-str").arg(max);
205 return c->
qtTrId(
"cutelyst-valmax-genvalerr-num").arg(max);
208 if (d->type == QMetaType::QString) {
210 return c->
qtTrId(
"cutelyst-valmax-genvalerr-str-label").arg(_label, max);
213 return c->
qtTrId(
"cutelyst-valmax-genvalerr-num-label").arg(_label, max);
220 const QString _label =
label(c);
221 const auto errorType =
static_cast<ValidatorRulePrivate::ErrorType
>(errorData.toInt());
225 if (_label.isEmpty()) {
227 case ValidatorRulePrivate::ErrorType::InvalidType:
230 const QMetaType _type(d->type);
231 return c->
qtTrId(
"cutelyst-validator-genvaldataerr-type")
232 .arg(QString::fromLatin1(_type.name()));
234 case ValidatorRulePrivate::ErrorType::InvalidMax:
235 return c->
qtTrId(
"cutelyst-validator-genvaldataerr-max");
236 case ValidatorRulePrivate::ErrorType::InvalidMin:
243 case ValidatorRulePrivate::ErrorType::InvalidType:
246 const QMetaType _type(d->type);
247 return c->
qtTrId(
"cutelyst-validator-genvaldataerr-type-label")
248 .arg(QString::fromLatin1(_type.name()), _label);
250 case ValidatorRulePrivate::ErrorType::InvalidMax:
251 return c->
qtTrId(
"cutelyst-validator-genvaldataerr-max-label").arg(_label);
252 case ValidatorRulePrivate::ErrorType::InvalidMin:
259#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
261 Q_UNREACHABLE_RETURN({});
QLocale locale() const noexcept
QString qtTrId(const char *id, int n=-1) const