From af4435c5f8748a0135a06f7e85d979604b7eaffe Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Tue, 5 Jun 2018 10:42:51 +0200 Subject: QLineEdit: Emit inputRejected() when part of the input is rejected When pasting text, it is possible that part of the text is still pasted but part of it is not. For example, if there is a maximum length set then only the first part of the text is pasted and the rest is dropped. In this case it should still emit inputRejected() as not all of the input was accepted. This amends c901cdadc0a6ec65eddfe4f181274e56567f9973. Change-Id: If7906767be27e88ed9914c50bf0427833de5b8fa Reviewed-by: Richard Moe Gustavsen --- tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'tests/auto/widgets/widgets') diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp index 6e472bff02..01f2b3df5f 100644 --- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp +++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp @@ -4838,6 +4838,13 @@ void tst_QLineEdit::inputRejected() QCOMPARE(spyInputRejected.count(), 0); QTest::keyClicks(testWidget, "fgh"); QCOMPARE(spyInputRejected.count(), 3); + testWidget->clear(); + spyInputRejected.clear(); + QApplication::clipboard()->setText("ijklmno"); + testWidget->paste(); + // The first 5 characters are accepted, but + // the last 2 are not. + QCOMPARE(spyInputRejected.count(), 1); testWidget->setMaxLength(INT_MAX); testWidget->clear(); @@ -4848,6 +4855,11 @@ void tst_QLineEdit::inputRejected() QCOMPARE(spyInputRejected.count(), 0); QTest::keyClicks(testWidget, "a#"); QCOMPARE(spyInputRejected.count(), 2); + testWidget->clear(); + spyInputRejected.clear(); + QApplication::clipboard()->setText("a#"); + testWidget->paste(); + QCOMPARE(spyInputRejected.count(), 1); testWidget->clear(); testWidget->setValidator(0); -- cgit v1.2.3