From b2a34f3fcfb9131c62cfa857286c8fb0b7a3dc47 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 30 Mar 2022 14:57:21 +0200 Subject: [PATCH] QmlDesigner: Fix shortcuts and tooltips for transition editor Creating the correct tooltip and managing the shortcut is managed by the command. We need a context for the shortcuts. Applying similar fixes to the timeline. Task-number: QDS-6539 Change-Id: If9a92c64508a6d3ff0754522e311ca0ce422dda1 Reviewed-by: Knud Dollereder --- .../components/timelineeditor/timelinetoolbar.cpp | 5 ++--- .../transitioneditor/transitioneditorconstants.h | 8 ++++---- .../transitioneditor/transitioneditortoolbar.cpp | 4 ++-- .../transitioneditor/transitioneditorview.cpp | 3 +++ .../transitioneditor/transitioneditorwidget.cpp | 13 +++++++++++++ .../transitioneditor/transitioneditorwidget.h | 9 +++++++++ 6 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp index 2d6bac7ff0f..7ad56680130 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp @@ -103,13 +103,12 @@ static QAction *createAction(const Utils::Id &id, const QString &name, const QKeySequence &shortcut) { - QString text = QString("%1 (%2)").arg(name).arg(shortcut.toString()); - Core::Context context(TimelineConstants::C_QMLTIMELINE); - auto *action = new QAction(icon, text); + auto *action = new QAction(icon, name); auto *command = Core::ActionManager::registerAction(action, id, context); command->setDefaultKeySequence(shortcut); + command->augmentActionWithShortcutToolTip(action); return action; } diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorconstants.h b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorconstants.h index 98b55922e08..3fc405a221c 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorconstants.h +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorconstants.h @@ -37,10 +37,10 @@ const int transitionEditorPropertyItemUserType = QGraphicsItem::UserType + 7; const char C_QMLTRANSITIONS[] = "QmlDesigner::Transitions"; -const char C_SETTINGS[] = "QmlDesigner.SettingsTransitions"; -const char C_CURVE_PICKER[] = "QmlDesigner.CurvePickerTransitions"; -const char C_ZOOM_IN[] = "QmlDesigner.ZoomInTransition"; -const char C_ZOOM_OUT[] = "QmlDesigner.ZoomOutTransitions"; +const char C_SETTINGS[] = "QmlDesigner.Transitions.Settings"; +const char C_CURVE_PICKER[] = "QmlDesigner.Transitions.CurvePicker"; +const char C_ZOOM_IN[] = "QmlDesigner.Transitions.ZoomIn"; +const char C_ZOOM_OUT[] = "QmlDesigner.Transitions.ZoomOut"; } // namespace TransitionEditorConstants } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditortoolbar.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditortoolbar.cpp index 9d331eee876..16bec1ea05f 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditortoolbar.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditortoolbar.cpp @@ -90,13 +90,13 @@ static QAction *createAction(const Utils::Id &id, const QString &name, const QKeySequence &shortcut) { - QString text = QString("%1 (%2)").arg(name).arg(shortcut.toString()); Core::Context context(TransitionEditorConstants::C_QMLTRANSITIONS); - auto *action = new QAction(icon, text); + auto *action = new QAction(icon, name); auto *command = Core::ActionManager::registerAction(action, id, context); command->setDefaultKeySequence(shortcut); + command->augmentActionWithShortcutToolTip(action); return action; } diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp index 49490886527..f487cc18fb7 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp @@ -319,6 +319,9 @@ TransitionEditorWidget *TransitionEditorView::createWidget() if (!m_transitionEditorWidget) m_transitionEditorWidget = new TransitionEditorWidget(this); + auto *transitionContext = new TransitionContext(m_transitionEditorWidget); + Core::ICore::addContextObject(transitionContext); + return m_transitionEditorWidget; } diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp index b75f9d7f874..1fe8f221ac1 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp @@ -68,6 +68,19 @@ namespace QmlDesigner { +TransitionContext::TransitionContext(QWidget *widget) + : IContext(widget) +{ + setWidget(widget); + setContext(Core::Context(TransitionEditorConstants::C_QMLTRANSITIONS)); +} + +void TransitionContext::contextHelp(const Core::IContext::HelpCallback &callback) const +{ + if (auto *widget = qobject_cast(m_widget)) + widget->contextHelp(callback); +} + class Eventfilter : public QObject { public: diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h index 698c4b76aeb..0de0ee01ce1 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h @@ -49,6 +49,15 @@ class TransitionEditorToolBar; class TransitionEditorGraphicsScene; class ModelNode; +class TransitionContext : public Core::IContext +{ + Q_OBJECT + +public: + explicit TransitionContext(QWidget *widget); + void contextHelp(const HelpCallback &callback) const override; +}; + class TransitionEditorWidget : public QWidget { Q_OBJECT