diff options
-rw-r--r-- | src/quick/items/qquicktextinput.cpp | 11 | ||||
-rw-r--r-- | tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp | 4 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp index 087b8b8135..ba7142856b 100644 --- a/src/quick/items/qquicktextinput.cpp +++ b/src/quick/items/qquicktextinput.cpp @@ -1536,7 +1536,8 @@ bool QQuickTextInput::event(QEvent* ev) || ke == QKeySequence::SelectEndOfBlock || ke == QKeySequence::SelectStartOfDocument || ke == QKeySequence::SelectAll - || ke == QKeySequence::SelectEndOfDocument) { + || ke == QKeySequence::SelectEndOfDocument + || ke == QKeySequence::DeleteCompleteLine) { ke->accept(); return true; } else if (ke->modifiers() == Qt::NoModifier || ke->modifiers() == Qt::ShiftModifier @@ -4328,6 +4329,14 @@ void QQuickTextInputPrivate::processKeyEvent(QKeyEvent* event) else if (event == QKeySequence::DeleteStartOfWord) { if (!m_readOnly) deleteStartOfWord(); + } else if (event == QKeySequence::DeleteCompleteLine) { + if (!m_readOnly) { + selectAll(); +#ifndef QT_NO_CLIPBOARD + copy(); +#endif + del(); + } } #endif // QT_NO_SHORTCUT else { diff --git a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp index 493c03d00e..2a687b3c69 100644 --- a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp +++ b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp @@ -5087,6 +5087,10 @@ void tst_qquicktextinput::keySequence_data() << standard.at(0) << QKeySequence(QKeySequence::DeleteStartOfWord) << 7 << 7 << 4 << (standard.at(0).mid(0, 4) + standard.at(0).mid(7)) << QString() << QQuickTextInput::Normal << Qt::Key_Direction_L; + QTest::newRow("delete complete line") + << standard.at(0) << QKeySequence(QKeySequence::DeleteCompleteLine) << 0 << 0 + << 0 << QString() << QString() + << QQuickTextInput::Normal << Qt::Key_Direction_L; } void tst_qquicktextinput::keySequence() |