summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui
diff options
context:
space:
mode:
authorLaszlo Papp <lpapp@kde.org>2022-05-12 13:37:27 +0100
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2022-05-25 13:00:02 +0000
commitd83441340c210056d25777ed59ec6dab6351a55f (patch)
tree48ecb4d66637f47a3731a3db873251cf8f8c21d1 /tests/auto/gui
parent121ddac2edf1ab74639ef941d6078d788df651ec (diff)
QKeySequence: Add missing modifier names
The issue is that when someone is trying to use the following code: QKeySequence keySequence(Qt::Key_Shift); qDebug() << keySequence.toString(); This will print seemingly gibberish output. It is unicode in practice. For Qt::Key_Shift, this would be: "�_@\uDC20" The reason why this is happening is because we have platform-specific ways to handle this due to Mac glyphs which are not available on Linux or Windows. This works fine on Mac. But for the Linux and Windows codepaths, there is not really any mapping like for other keys. It seems that modifiers were left out. The solution is to simply amend the list of mapping from these modifier key codes to raw strings for Linux and Windows like it is done for other key codes. So, now, modifiers will also be included in the list. So, the expected output will be generated for the above code, as: "Shift". [ChangeLog][QtGui][QKeySequence] Added missing modifier names Fixes: QTBUG-69715 Fixes: QTBUG-40030 Change-Id: I460d54bc8e593b350ff95894f23c5b4a7c819a44 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'tests/auto/gui')
-rw-r--r--tests/auto/gui/kernel/qkeysequence/tst_qkeysequence.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/tests/auto/gui/kernel/qkeysequence/tst_qkeysequence.cpp b/tests/auto/gui/kernel/qkeysequence/tst_qkeysequence.cpp
index f2efefeeb4..a923c9bf8d 100644
--- a/tests/auto/gui/kernel/qkeysequence/tst_qkeysequence.cpp
+++ b/tests/auto/gui/kernel/qkeysequence/tst_qkeysequence.cpp
@@ -477,6 +477,10 @@ void tst_QKeySequence::toStringFromKeycode_data()
QTest::newRow("Ctrl+Num+Del") << QKeySequence(Qt::ControlModifier | Qt::KeypadModifier | Qt::Key_Delete) << "Ctrl+Num+Del";
QTest::newRow("Ctrl+Alt+Num+Del") << QKeySequence(Qt::ControlModifier | Qt::AltModifier | Qt::KeypadModifier | Qt::Key_Delete) << "Ctrl+Alt+Num+Del";
QTest::newRow("Ctrl+Ins") << QKeySequence(Qt::ControlModifier | Qt::Key_Insert) << "Ctrl+Ins";
+ QTest::newRow("Ctrl") << QKeySequence(Qt::Key_Control) << "Control";
+ QTest::newRow("Alt") << QKeySequence(Qt::Key_Alt) << "Alt";
+ QTest::newRow("Shift") << QKeySequence(Qt::Key_Shift) << "Shift";
+ QTest::newRow("Meta") << QKeySequence(Qt::Key_Meta) << "Meta";
}
void tst_QKeySequence::toStringFromKeycode()