diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp index cd4f2eebc6..eda2029783 100644 --- a/src/quick/items/qquicktextinput.cpp +++ b/src/quick/items/qquicktextinput.cpp @@ -3957,7 +3957,7 @@ bool QQuickTextInputPrivate::isValidInput(QChar key, QChar mask) const return true; break; case 'X': - if (key.isPrint()) + if (key.isPrint() && key != m_blank) return true; break; case 'x': diff --git a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp index e1da7e5795..ed2ce98eae 100644 --- a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp +++ b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp @@ -6408,8 +6408,20 @@ void tst_qquicktextinput::setInputMask_data() QTest::newRow(QString(insert_mode + "blank=input").toLatin1()) << QString("9999;0") << QString("2004") + << QString("24") << QString("2004") - << QString("2004") + << bool(insert_text); + QTest::newRow(QString(insert_mode + "any_opt").toLatin1()) + << QString("@xxx@") + << QString("@A C@") + << QString("@AC@") + << QString("@A C@") + << bool(insert_text); + QTest::newRow(QString(insert_mode + "any_req").toLatin1()) + << QString("@XXX@") + << QString("@A C@") + << QString("@AC@@") + << QString("@AC@@") << bool(insert_text); } } @@ -6452,9 +6464,6 @@ void tst_qquicktextinput::setInputMask() QTest::keyClick(&window, input.at(i).toLatin1()); } - QEXPECT_FAIL( "keys blank=input", "To eat blanks or not? Known issue. Task 43172", Abort); - QEXPECT_FAIL( "insert blank=input", "To eat blanks or not? Known issue. Task 43172", Abort); - QCOMPARE(textInput->text(), expectedText); QCOMPARE(textInput->displayText(), expectedDisplay); }