diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2023-02-23 13:26:01 +0200 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2023-02-23 11:56:38 +0000 |
commit | 00e1a73c8a582eee06c56d14cd76b5d39abd2741 (patch) | |
tree | c6fd7dbc6e6b36e647cbf3b47ebb553e4b277cc4 | |
parent | 4bf2b843c86c87ec48d433d623083a232401af34 (diff) | |
download | qt-creator-00e1a73c8a582eee06c56d14cd76b5d39abd2741.tar.gz |
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.
(cherry picked from commit 8b5c454881dcad5436dc3d7fb97642f65bfba2ed)
Fixes: QDS-9229
Change-Id: Iee9671acd58f264bdb7b035d0ff1a343bcbd223e
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r-- | src/plugins/qmldesigner/qmlpreviewplugin/qmlpreviewplugin.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/qmlpreviewplugin/qmlpreviewplugin.cpp b/src/plugins/qmldesigner/qmlpreviewplugin/qmlpreviewplugin.cpp index 04322c522f..43e422c2c2 100644 --- a/src/plugins/qmldesigner/qmlpreviewplugin/qmlpreviewplugin.cpp +++ b/src/plugins/qmldesigner/qmlpreviewplugin/qmlpreviewplugin.cpp @@ -19,6 +19,9 @@ #include <utils/qtcassert.h> #include <utils/utilsicons.h> +#include <coreplugin/actionmanager/actionmanager.h> +#include <coreplugin/icore.h> + #include <projectexplorer/projectexplorer.h> #include <projectexplorer/runconfiguration.h> #include <projectexplorer/runcontrol.h> @@ -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); |