diff options
Diffstat (limited to 'src/gui/util')
-rw-r--r-- | src/gui/util/qvalidator.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/gui/util/qvalidator.cpp b/src/gui/util/qvalidator.cpp index 31dfd20d1a..aceda62a2a 100644 --- a/src/gui/util/qvalidator.cpp +++ b/src/gui/util/qvalidator.cpp @@ -38,6 +38,7 @@ #ifndef QT_NO_VALIDATOR #include "private/qobject_p.h" #include "private/qlocale_p.h" +#include "private/qnumeric_p.h" #include <limits.h> #include <cmath> @@ -398,8 +399,8 @@ static qlonglong pow10(int exp) QValidator::State QIntValidator::validate(QString & input, int&) const { QByteArray buff; - if (!locale().d->m_data->validateChars(input, QLocaleData::IntegerMode, &buff, - -1, locale().numberOptions() & QLocale::RejectGroupSeparator)) { + if (!locale().d->m_data->validateChars(input, QLocaleData::IntegerMode, &buff, -1, + locale().numberOptions())) { return Invalid; } @@ -438,8 +439,8 @@ QValidator::State QIntValidator::validate(QString & input, int&) const void QIntValidator::fixup(QString &input) const { QByteArray buff; - if (!locale().d->m_data->validateChars(input, QLocaleData::IntegerMode, &buff, - -1, locale().numberOptions() & QLocale::RejectGroupSeparator)) { + if (!locale().d->m_data->validateChars(input, QLocaleData::IntegerMode, &buff, -1, + locale().numberOptions())) { return; } bool ok, overflow; @@ -662,8 +663,7 @@ QValidator::State QDoubleValidatorPrivate::validateWithLocale(QString &input, QL { Q_Q(const QDoubleValidator); QByteArray buff; - if (!locale.d->m_data->validateChars(input, numMode, &buff, q->dec, - locale.numberOptions() & QLocale::RejectGroupSeparator)) { + if (!locale.d->m_data->validateChars(input, numMode, &buff, q->dec, locale.numberOptions())) { return QValidator::Invalid; } @@ -676,9 +676,9 @@ QValidator::State QDoubleValidatorPrivate::validateWithLocale(QString &input, QL if (q->t < 0 && buff.startsWith('+')) return QValidator::Invalid; - bool ok, overflow; - double i = QLocaleData::bytearrayToDouble(buff.constData(), &ok, &overflow); - if (overflow) + bool ok = false; + double i = buff.toDouble(&ok); // returns 0.0 if !ok + if (i == qt_qnan()) return QValidator::Invalid; if (!ok) return QValidator::Intermediate; |