diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-09-29 13:09:19 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-11-04 10:32:38 +0200 |
commit | b26fa9722f9e8c81406259f6db8044e8bbc2d50b (patch) | |
tree | 30d443ac43663e1670c82621d88052e3be29141b /tests/auto | |
parent | 8fa93272f0a1526e06105ea02c7ae5ca8f8c52c0 (diff) |
Add multi key bindings to QShortcut
This makes it feature comparable with QAction, and makes it possible
to use as a backend for QAction, and fixes a few missing alternative
keybindings in qtwidgets.
Change-Id: Iaefc630b96c4743fc5ef429dc841870ddd99fc64
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp b/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp index 64e054f7f4..3abec08f09 100644 --- a/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp +++ b/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp @@ -117,6 +117,7 @@ private slots: void duplicatedShortcutOverride(); void shortcutToFocusProxy(); void deleteLater(); + void keys(); protected: static Qt::KeyboardModifiers toButtons( int key ); @@ -1344,6 +1345,25 @@ void tst_QShortcut::deleteLater() QTRY_VERIFY(!sc); } +void tst_QShortcut::keys() +{ + QLineEdit le; + QShortcut *sc = new QShortcut(QKeySequence::InsertParagraphSeparator, &le); + QVERIFY(sc->keys().contains(QKeySequence(Qt::Key_Enter))); + QVERIFY(sc->keys().contains(QKeySequence(Qt::Key_Return))); + + QSignalSpy spy(sc, &QShortcut::activated); + le.setFocus(); + le.show(); + QVERIFY(QTest::qWaitForWindowActive(&le)); + QCOMPARE(QApplication::focusWidget(), &le); + + QTest::keyEvent(QTest::Press, QApplication::focusWidget(), Qt::Key_Enter); + QTRY_COMPARE(spy.count(), 1); + + QTest::keyEvent(QTest::Press, QApplication::focusWidget(), Qt::Key_Return); + QTRY_COMPARE(spy.count(), 2); +} QTEST_MAIN(tst_QShortcut) #include "tst_qshortcut.moc" |