diff --git a/src/widgets/widgets/qlineedit.cpp b/src/widgets/widgets/qlineedit.cpp index cd3019b720..a74c529202 100644 --- a/src/widgets/widgets/qlineedit.cpp +++ b/src/widgets/widgets/qlineedit.cpp @@ -1682,7 +1682,7 @@ QVariant QLineEdit::inputMethodQuery(Qt::InputMethodQuery property) const else return QVariant(d->control->selectionStart()); default: - return QVariant(); + return QWidget::inputMethodQuery(property); } } diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp index 91827eca6d..7fe71b0a53 100644 --- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp +++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp @@ -283,6 +283,9 @@ private slots: void inputMethod(); void inputMethodSelection(); + void inputMethodQueryImHints_data(); + void inputMethodQueryImHints(); + protected slots: void editingFinished(); @@ -3924,6 +3927,24 @@ void tst_QLineEdit::inputMethodSelection() QCOMPARE(selectionSpy.count(), 3); } +Q_DECLARE_METATYPE(Qt::InputMethodHints) +void tst_QLineEdit::inputMethodQueryImHints_data() +{ + QTest::addColumn("hints"); + + QTest::newRow("None") << static_cast(Qt::ImhNone); + QTest::newRow("Password") << static_cast(Qt::ImhHiddenText); + QTest::newRow("Normal") << static_cast(Qt::ImhNoAutoUppercase | Qt::ImhNoPredictiveText | Qt::ImhSensitiveData); +} + +void tst_QLineEdit::inputMethodQueryImHints() +{ + QFETCH(Qt::InputMethodHints, hints); + testWidget->setInputMethodHints(hints); + + QVariant value = testWidget->inputMethodQuery(Qt::ImHints); + QCOMPARE(static_cast(value.toInt()), hints); +} QTEST_MAIN(tst_QLineEdit) #include "tst_qlineedit.moc"