summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2023-02-23 13:26:01 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2023-02-23 11:56:38 +0000
commit00e1a73c8a582eee06c56d14cd76b5d39abd2741 (patch)
treec6fd7dbc6e6b36e647cbf3b47ebb553e4b277cc4
parent4bf2b843c86c87ec48d433d623083a232401af34 (diff)
downloadqt-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.cpp19
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);