From 8b5c454881dcad5436dc3d7fb97642f65bfba2ed Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 23 Feb 2023 13:26:01 +0200 Subject: [PATCH] QmlPreview: Register previewAction properly To make Alt+p shortcut for live preview work, it must be registered to ActionManager. We use global context for this action as it should work regardless of which view is active. Shortcut is now also available in Settings/Environment/Keyboard, since it is properly registered. Fixes: QDS-9229 Change-Id: Iee9671acd58f264bdb7b035d0ff1a343bcbd223e Reviewed-by: Thomas Hartmann --- .../qmlpreviewplugin/qmlpreviewplugin.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/plugins/qmldesigner/qmlpreviewplugin/qmlpreviewplugin.cpp b/src/plugins/qmldesigner/qmlpreviewplugin/qmlpreviewplugin.cpp index 04322c522f9..43e422c2c22 100644 --- a/src/plugins/qmldesigner/qmlpreviewplugin/qmlpreviewplugin.cpp +++ b/src/plugins/qmldesigner/qmlpreviewplugin/qmlpreviewplugin.cpp @@ -19,6 +19,9 @@ #include #include +#include +#include + #include #include #include @@ -61,6 +64,22 @@ QmlPreviewWidgetPlugin::QmlPreviewWidgetPlugin() m_previewToggleAction = previewAction->action(); + Core::Context globalContext; + auto registerCommand = [&globalContext](ActionInterface *action){ + const QString id = QStringLiteral("QmlPreview.%1").arg(QString::fromLatin1(action->menuId())); + Core::Command *cmd = Core::ActionManager::registerAction(action->action(), + id.toLatin1().constData(), + globalContext); + + cmd->setDefaultKeySequence(action->action()->shortcut()); + cmd->setDescription(action->action()->toolTip()); + + action->action()->setToolTip(cmd->action()->toolTip()); + action->action()->setShortcut(cmd->action()->shortcut()); + }; + // Only register previewAction as others don't have keyboard shortcuts for them + registerCommand(previewAction); + if (s_previewPlugin) { auto fpsAction = new FpsAction; designerActionManager.addDesignerAction(fpsAction);