From 1427b243cb69768e7ce2e6ea3ad75619deac104b Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Thu, 16 May 2019 15:46:22 +0200 Subject: Don't unnecessarily transform keysequences into strings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise we cannot interpret them as the original key sequence anymore. When passing them on they are interpreted as the number key that represents the numeric value of the key sequence enum. Change-Id: Idd94ef95bc693cb6d51162dd1994adc953b52e25 Fixes: QTBUG-75572 Reviewed-by: Henning Gründl Reviewed-by: Mitch Curtis --- src/quicktemplates2/qquickaction.cpp | 2 +- tests/auto/controls/data/tst_action.qml | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/quicktemplates2/qquickaction.cpp b/src/quicktemplates2/qquickaction.cpp index e83fd353..033173f8 100644 --- a/src/quicktemplates2/qquickaction.cpp +++ b/src/quicktemplates2/qquickaction.cpp @@ -185,7 +185,7 @@ void QQuickActionPrivate::setShortcut(const QVariant &var) for (QQuickActionPrivate::ShortcutEntry *entry : qAsConst(shortcutEntries)) entry->ungrab(); - vshortcut = var.toString(); + vshortcut = var; keySequence = variantToKeySequence(var); defaultShortcutEntry->grab(keySequence, enabled); diff --git a/tests/auto/controls/data/tst_action.qml b/tests/auto/controls/data/tst_action.qml index ef28c0e5..0e41b7f3 100644 --- a/tests/auto/controls/data/tst_action.qml +++ b/tests/auto/controls/data/tst_action.qml @@ -165,4 +165,33 @@ TestCase { keyClick(Qt.Key_A, Qt.ControlModifier) compare(spy.count, 1) } + + Component { + id: shortcutBinding + Item { + Action { + id: action + shortcut: StandardKey.Copy + } + + Shortcut { + id: indirectShortcut + sequence: action.shortcut + } + + Shortcut { + id: directShortcut + sequence: StandardKey.Copy + } + + property alias indirect: indirectShortcut; + property alias direct: directShortcut + } + } + + function test_shortcutBinding() { + var container = createTemporaryObject(shortcutBinding, testCase); + verify(container) + compare(container.indirect.nativeText, container.direct.nativeText); + } } -- cgit v1.2.3