From 4d1ece8b44b27294cdf77c685aa3d34882cdef95 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sat, 9 Nov 2013 17:41:26 +0100 Subject: QKeySequenceEdit: simplify clear() As the test case shows, clear() is semantically equivalent to setKeySequence(QKeySequence()), so implement it that way. Change-Id: Id68edbbf85aac3bcff82c81310c38274ed8e6708 Reviewed-by: J-P Nurmi Reviewed-by: Friedemann Kleint --- src/widgets/widgets/qkeysequenceedit.cpp | 10 +-------- .../qkeysequenceedit/tst_qkeysequenceedit.cpp | 24 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/widgets/widgets/qkeysequenceedit.cpp b/src/widgets/widgets/qkeysequenceedit.cpp index 858a122b28..c056967cf7 100644 --- a/src/widgets/widgets/qkeysequenceedit.cpp +++ b/src/widgets/widgets/qkeysequenceedit.cpp @@ -224,15 +224,7 @@ void QKeySequenceEdit::setKeySequence(const QKeySequence &keySequence) */ void QKeySequenceEdit::clear() { - Q_D(QKeySequenceEdit); - - d->resetState(); - - d->lineEdit->clear(); - d->keySequence = QKeySequence(); - d->keyNum = d->key[0] = d->key[1] = d->key[2] = d->key[3] = 0; - d->prevKey = -1; - emit keySequenceChanged(d->keySequence); + setKeySequence(QKeySequence()); } /*! diff --git a/tests/auto/widgets/widgets/qkeysequenceedit/tst_qkeysequenceedit.cpp b/tests/auto/widgets/widgets/qkeysequenceedit/tst_qkeysequenceedit.cpp index 8c010abfe6..1434d98e59 100644 --- a/tests/auto/widgets/widgets/qkeysequenceedit/tst_qkeysequenceedit.cpp +++ b/tests/auto/widgets/widgets/qkeysequenceedit/tst_qkeysequenceedit.cpp @@ -43,6 +43,8 @@ #include #include +#include +#include Q_DECLARE_METATYPE(Qt::Key) Q_DECLARE_METATYPE(Qt::KeyboardModifiers) @@ -55,6 +57,7 @@ private slots: void testSetters(); void testKeys_data(); void testKeys(); + void testLineEditContents(); }; void tst_QKeySequenceEdit::testSetters() @@ -100,5 +103,26 @@ void tst_QKeySequenceEdit::testKeys() QTRY_COMPARE(spy.count(), 1); } +void tst_QKeySequenceEdit::testLineEditContents() +{ + QKeySequenceEdit edit; + QLineEdit *le = edit.findChild(); + QVERIFY(le); + + QCOMPARE(le->text(), QString()); + + edit.setKeySequence(QKeySequence::New); + QCOMPARE(edit.keySequence(), QKeySequence(QKeySequence::New)); + + edit.clear(); + QCOMPARE(le->text(), QString()); + + edit.setKeySequence(QKeySequence::New); + QVERIFY(le->text() != QString()); + + edit.setKeySequence(QKeySequence()); + QCOMPARE(le->text(), QString()); +} + QTEST_MAIN(tst_QKeySequenceEdit) #include "tst_qkeysequenceedit.moc" -- cgit v1.2.3