diff options
-rw-r--r-- | src/gui/kernel/qkeysequence.cpp | 3 | ||||
-rw-r--r-- | tests/auto/gui/kernel/qkeysequence/tst_qkeysequence.cpp | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp index 4f6eba2f88..986701bd7b 100644 --- a/src/gui/kernel/qkeysequence.cpp +++ b/src/gui/kernel/qkeysequence.cpp @@ -1316,6 +1316,9 @@ int QKeySequencePrivate::decodeString(const QString &str, QKeySequence::Sequence if (found) break; } + // We couldn't translate the key. + if (!found) + return Qt::Key_unknown; } return ret; } diff --git a/tests/auto/gui/kernel/qkeysequence/tst_qkeysequence.cpp b/tests/auto/gui/kernel/qkeysequence/tst_qkeysequence.cpp index e5820e12fe..fcc30a7afe 100644 --- a/tests/auto/gui/kernel/qkeysequence/tst_qkeysequence.cpp +++ b/tests/auto/gui/kernel/qkeysequence/tst_qkeysequence.cpp @@ -537,6 +537,9 @@ void tst_QKeySequence::parseString_data() QTest::newRow("Win+A") << "Win+a" << QKeySequence(Qt::Key_unknown); QTest::newRow("4+3=2") << "4+3=2" << QKeySequence(Qt::Key_unknown); QTest::newRow("Super+Meta+A") << "Super+Meta+A" << QKeySequence(Qt::Key_unknown); + QTest::newRow("Meta+Trolls") << "Meta+Trolls" << QKeySequence(Qt::Key_unknown); + QTest::newRow("Alabama") << "Alabama" << QKeySequence(Qt::Key_unknown); + QTest::newRow("Simon+G") << "Simon+G" << QKeySequence(Qt::Key_unknown); } void tst_QKeySequence::parseString() @@ -559,6 +562,9 @@ void tst_QKeySequence::fromString() QFETCH(QString, neutralString); QFETCH(QString, platformString); + if (strSequence == "Ctrly") // Key_Unknown gives empty string + return; + QKeySequence ks1(strSequence); QKeySequence ks2 = QKeySequence::fromString(ks1.toString()); QKeySequence ks3 = QKeySequence::fromString(neutralString, QKeySequence::PortableText); |