diff options
-rw-r--r-- | src/widgets/widgets/qlineedit.cpp | 2 | ||||
-rw-r--r-- | tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/widgets/widgets/qlineedit.cpp b/src/widgets/widgets/qlineedit.cpp index a74c529202..27f47b754d 100644 --- a/src/widgets/widgets/qlineedit.cpp +++ b/src/widgets/widgets/qlineedit.cpp @@ -907,7 +907,7 @@ int QLineEdit::selectionStart() const void QLineEdit::setSelection(int start, int length) { Q_D(QLineEdit); - if (start < 0 || start > (int)d->control->text().length()) { + if (start < 0 || start > (int)d->control->end()) { qWarning("QLineEdit::setSelection: Invalid start position (%d)", start); return; } diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp index 7fe71b0a53..84a6390463 100644 --- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp +++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp @@ -272,6 +272,7 @@ private slots: void QTBUG697_paletteCurrentColorGroup(); void QTBUG13520_textNotVisible(); void QTBUG7174_inputMaskCursorBlink(); + void QTBUG16850_setSelection(); void bidiVisualMovement_data(); void bidiVisualMovement(); @@ -3722,6 +3723,16 @@ void tst_QLineEdit::QTBUG7174_inputMaskCursorBlink() QVERIFY(edit.updateRegion.contains(cursorRect)); } +void tst_QLineEdit::QTBUG16850_setSelection() +{ + QLineEdit le; + le.setInputMask("00:0"); + le.setText(" 1"); + le.setSelection(3, 1); + QCOMPARE(le.selectionStart(), 3); + QCOMPARE(le.selectedText(), QString("1")); +} + void tst_QLineEdit::bidiVisualMovement_data() { QTest::addColumn<QString>("logical"); |