summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Faure <faure@kde.org>2012-01-03 13:34:49 +0100
committerQt by Nokia <qt-info@nokia.com>2012-01-10 02:02:29 +0100
commit3e2f32547de39133d8c4e2d2f70ed2254b2bcc76 (patch)
tree015fcbe2e2006e58eb2fb52a2642a747913c965c
parent13c5c81cfa934c9b610720fe79e07465b00ebc8d (diff)
If decodestring can't translate the string return Qt::Key_unknown.
Change-Id: Ie082b326e944a28b4e29984a527e3841a05b32f6 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
-rw-r--r--src/gui/kernel/qkeysequence.cpp3
-rw-r--r--tests/auto/gui/kernel/qkeysequence/tst_qkeysequence.cpp6
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);