diff --git a/src/widgets/widgets/qwidgetlinecontrol.cpp b/src/widgets/widgets/qwidgetlinecontrol.cpp index 9212f942c5..d10001a305 100644 --- a/src/widgets/widgets/qwidgetlinecontrol.cpp +++ b/src/widgets/widgets/qwidgetlinecontrol.cpp @@ -427,7 +427,7 @@ bool QWidgetLineControl::fixup() // this function assumes that validate currentl m_validator->fixup(textCopy); if (m_validator->validate(textCopy, cursorCopy) == QValidator::Acceptable) { if (textCopy != m_text || cursorCopy != m_cursor) - internalSetText(textCopy, cursorCopy); + internalSetText(textCopy, cursorCopy, false); return true; } } @@ -672,7 +672,7 @@ bool QWidgetLineControl::finishChange(int validateFromState, bool update, bool e m_validInput = (m_validator->validate(textCopy, cursorCopy) != QValidator::Invalid); if (m_validInput) { if (m_text != textCopy) { - internalSetText(textCopy, cursorCopy); + internalSetText(textCopy, cursorCopy, false); return true; } m_cursor = cursorCopy; diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp index d428e2705d..ae3fefc45a 100644 --- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp +++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp @@ -866,12 +866,18 @@ public: void tst_QLineEdit::hasAcceptableInputValidator() { + QSignalSpy spyChanged(testWidget, SIGNAL(textChanged(QString))); + QSignalSpy spyEdited(testWidget, SIGNAL(textEdited(QString))); + QFocusEvent lostFocus(QEvent::FocusOut); ValidatorWithFixup val; testWidget->setValidator(&val); testWidget->setText("foobar"); qApp->sendEvent(testWidget, &lostFocus); QVERIFY(testWidget->hasAcceptableInput()); + + QCOMPARE(spyChanged.count(), 2); + QCOMPARE(spyEdited.count(), 0); }