QDoubleValidator: fix NaN check in validateWithLocale
We can't really compare two NaN's. Should use qIsNaN() for that. Pick-to: 6.2 Change-Id: Ia514cabe65cfcdeafb39cab91ecdb66f8fae725c Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>bb10
parent
81a9335c65
commit
313de93b1d
|
|
@ -683,8 +683,7 @@ QValidator::State QDoubleValidatorPrivate::validateWithLocale(QString &input, QL
|
|||
|
||||
bool ok = false;
|
||||
double i = locale.toDouble(input, &ok); // returns 0.0 if !ok
|
||||
if (i == qt_qnan())
|
||||
return QValidator::Invalid;
|
||||
Q_ASSERT(!qIsNaN(i)); // Would be caught by validateChars()
|
||||
if (!ok)
|
||||
return QValidator::Intermediate;
|
||||
|
||||
|
|
|
|||
|
|
@ -216,6 +216,14 @@ void tst_QDoubleValidator::validate_data()
|
|||
QTest::newRow("data_de48") << "de" << 0.0 << 2.0 << 2 << QString("9,9999") << INV << INV;
|
||||
QTest::newRow("data_de49") << "de" << 100.0 << 200.0 << 4 << QString("9999,9999") << ITM << INV;
|
||||
|
||||
// using default QDoubleValidator parameters for initialization
|
||||
QTest::newRow("inf") << "C" << -HUGE_VAL << HUGE_VAL << 1000 << QString("inf") << INV << INV;
|
||||
QTest::newRow("+inf") << "C" << -HUGE_VAL << HUGE_VAL << 1000 << QString("+inf") << INV << INV;
|
||||
QTest::newRow("-inf") << "C" << -HUGE_VAL << HUGE_VAL << 1000 << QString("-inf") << INV << INV;
|
||||
QTest::newRow("nan") << "C" << -HUGE_VAL << HUGE_VAL << 1000 << QString("nan") << INV << INV;
|
||||
QTest::newRow("+nan") << "C" << -HUGE_VAL << HUGE_VAL << 1000 << QString("+nan") << INV << INV;
|
||||
QTest::newRow("-nan") << "C" << -HUGE_VAL << HUGE_VAL << 1000 << QString("-nan") << INV << INV;
|
||||
|
||||
QString arabicNum;
|
||||
arabicNum += QChar(1633); // "18.4" in arabic
|
||||
arabicNum += QChar(1640);
|
||||
|
|
|
|||
Loading…
Reference in New Issue