diff --git a/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp b/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp index b45847071bb..327bd041324 100644 --- a/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp +++ b/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp @@ -228,9 +228,9 @@ void Edit3DWidget::onCreateAction() void Edit3DWidget::contextHelp(const Core::IContext::HelpCallback &callback) const { if (m_view) - m_view->contextHelp(callback); - - callback({}); + QmlDesignerPlugin::contextHelp(callback, m_view->contextHelpId()); + else + callback({}); } void Edit3DWidget::showCanvas(bool show) diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.h b/src/plugins/qmldesigner/components/formeditor/formeditorview.h index adbd0544efe..719319450e4 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.h +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.h @@ -4,6 +4,8 @@ #include +#include + #include #include #include diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp index 34ad8523202..18c40b8e3c0 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp @@ -480,7 +480,7 @@ double FormEditorWidget::containerPadding() const void FormEditorWidget::contextHelp(const Core::IContext::HelpCallback &callback) const { if (m_formEditorView) - m_formEditorView->contextHelp(callback); + QmlDesignerPlugin::contextHelp(callback, m_formEditorView->contextHelpId()); else callback({}); } diff --git a/src/plugins/qmldesigner/components/integration/designdocument.cpp b/src/plugins/qmldesigner/components/integration/designdocument.cpp index c17ed3b6a26..9f6f8bc7373 100644 --- a/src/plugins/qmldesigner/components/integration/designdocument.cpp +++ b/src/plugins/qmldesigner/components/integration/designdocument.cpp @@ -777,8 +777,8 @@ void DesignDocument::updateActiveTarget() void DesignDocument::contextHelp(const Core::IContext::HelpCallback &callback) const { - if (view()) - view()->contextHelp(callback); + if (auto v = view()) + QmlDesignerPlugin::contextHelp(callback, v->contextHelpId()); else callback({}); } diff --git a/src/plugins/qmldesigner/components/integration/designdocument.h b/src/plugins/qmldesigner/components/integration/designdocument.h index ebe1f74a249..fd5c01f8ad6 100644 --- a/src/plugins/qmldesigner/components/integration/designdocument.h +++ b/src/plugins/qmldesigner/components/integration/designdocument.h @@ -36,6 +36,7 @@ class AbstractView; class QMLDESIGNERCORE_EXPORT DesignDocument: public QObject { Q_OBJECT + public: DesignDocument(ProjectStorage &projectStorage); ~DesignDocument() override; diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp index 3f6f2f39f5e..c8473e58564 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp @@ -187,7 +187,7 @@ QList MaterialBrowserWidget::createToolBarWidgets() void MaterialBrowserWidget::contextHelp(const Core::IContext::HelpCallback &callback) const { if (m_materialBrowserView) - m_materialBrowserView->contextHelp(callback); + QmlDesignerPlugin::contextHelp(callback, m_materialBrowserView->contextHelpId()); else callback({}); } diff --git a/src/plugins/qmldesigner/components/navigator/navigatorwidget.cpp b/src/plugins/qmldesigner/components/navigator/navigatorwidget.cpp index 1630a6a4ce4..e7f320ce8d8 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorwidget.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatorwidget.cpp @@ -150,8 +150,8 @@ QToolBar *NavigatorWidget::createToolBar() void NavigatorWidget::contextHelp(const Core::IContext::HelpCallback &callback) const { - if (navigatorView()) - navigatorView()->contextHelp(callback); + if (auto view = navigatorView()) + QmlDesignerPlugin::contextHelp(callback, view->contextHelpId()); else callback({}); } diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp b/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp index 54ed7d50d2d..3b911e83d94 100644 --- a/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp +++ b/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp @@ -127,11 +127,6 @@ WidgetInfo TextEditorView::widgetInfo() return createWidgetInfo(m_widget, "TextEditor", WidgetInfo::CentralPane, 0, tr("Code"), DesignerWidgetFlags::IgnoreErrors); } -void TextEditorView::contextHelp(const Core::IContext::HelpCallback &callback) const -{ - AbstractView::contextHelp(callback); -} - void TextEditorView::qmlJSEditorContextHelp(const Core::IContext::HelpCallback &callback) const { if (m_widget->textEditor()) diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorview.h b/src/plugins/qmldesigner/components/texteditor/texteditorview.h index 1c20bc18990..4bc782f069f 100644 --- a/src/plugins/qmldesigner/components/texteditor/texteditorview.h +++ b/src/plugins/qmldesigner/components/texteditor/texteditorview.h @@ -47,7 +47,6 @@ public: // TextEditorView WidgetInfo widgetInfo() override; - void contextHelp(const Core::IContext::HelpCallback &callback) const override; void qmlJSEditorContextHelp(const Core::IContext::HelpCallback &callback) const; diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp b/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp index 231dc6abe80..e8e6fd23437 100644 --- a/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp +++ b/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp @@ -82,7 +82,10 @@ void TextEditorWidget::setTextEditor(TextEditor::BaseTextEditor *textEditor) void TextEditorWidget::contextHelp(const Core::IContext::HelpCallback &callback) const { - m_textEditorView->contextHelp(callback); + if (m_textEditorView) + QmlDesignerPlugin::contextHelp(callback, m_textEditorView->contextHelpId()); + else + callback({}); } void TextEditorWidget::updateSelectionByCursorPosition() diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp index c71f65a139a..6cbfe5cd698 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp @@ -455,8 +455,8 @@ void TimelineWidget::setTimelineRecording(bool value) void TimelineWidget::contextHelp(const Core::IContext::HelpCallback &callback) const { - if (timelineView()) - timelineView()->contextHelp(callback); + if (auto view = timelineView()) + QmlDesignerPlugin::contextHelp(callback, view->contextHelpId()); else callback({}); } diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp index 66c0f242775..43f8f10545a 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp @@ -312,8 +312,8 @@ void TransitionEditorWidget::selectionChanged() void TransitionEditorWidget::contextHelp(const Core::IContext::HelpCallback &callback) const { - if (transitionEditorView()) - transitionEditorView()->contextHelp(callback); + if (auto view = transitionEditorView()) + QmlDesignerPlugin::contextHelp(callback, view->contextHelpId()); else callback({}); } diff --git a/src/plugins/qmldesigner/designercore/include/abstractview.h b/src/plugins/qmldesigner/designercore/include/abstractview.h index 8d141a47bfe..ade1471c7cd 100644 --- a/src/plugins/qmldesigner/designercore/include/abstractview.h +++ b/src/plugins/qmldesigner/designercore/include/abstractview.h @@ -12,8 +12,6 @@ #include #include -#include - #include #include #include @@ -70,6 +68,7 @@ public: class QMLDESIGNERCORE_EXPORT AbstractView : public QObject { Q_OBJECT + public: Q_FLAGS(PropertyChangeFlag PropertyChangeFlags) @@ -249,7 +248,7 @@ public: virtual void disableWidget(); virtual void enableWidget(); - virtual void contextHelp(const Core::IContext::HelpCallback &callback) const; + QString contextHelpId() const; void setCurrentTimeline(const ModelNode &timeline); void activateTimelineRecording(const ModelNode &timeline); diff --git a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h index b84d69193b4..b936db1536b 100644 --- a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h +++ b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include diff --git a/src/plugins/qmldesigner/designercore/include/viewmanager.h b/src/plugins/qmldesigner/designercore/include/viewmanager.h index 12d6414d625..f6efc5bd626 100644 --- a/src/plugins/qmldesigner/designercore/include/viewmanager.h +++ b/src/plugins/qmldesigner/designercore/include/viewmanager.h @@ -5,10 +5,12 @@ #include "abstractview.h" -#include +#include #include +#include + namespace ProjectExplorer { class Target; } diff --git a/src/plugins/qmldesigner/designercore/model/abstractview.cpp b/src/plugins/qmldesigner/designercore/model/abstractview.cpp index f111b6efff2..b1c6ef23607 100644 --- a/src/plugins/qmldesigner/designercore/model/abstractview.cpp +++ b/src/plugins/qmldesigner/designercore/model/abstractview.cpp @@ -587,21 +587,16 @@ void AbstractView::enableWidget() widgetInfo().widget->setEnabled(true); } -void AbstractView::contextHelp(const Core::IContext::HelpCallback &callback) const +QString AbstractView::contextHelpId() const { -#ifndef QMLDESIGNER_TEST + QString id = const_cast(this)->widgetInfo().uniqueId; - const QString id = const_cast(this)->widgetInfo().uniqueId; + if (!selectedModelNodes().isEmpty()) { + const auto nodeId = selectedModelNodes().first().simplifiedTypeName(); + id += " " + nodeId; + } - QString nodeId; - if (!selectedModelNodes().isEmpty()) - nodeId = selectedModelNodes().first().simplifiedTypeName(); - QmlDesignerPlugin::instance()->emitUsageStatisticsHelpRequested(id + " " + nodeId); - QmlDesignerPlugin::instance()->viewManager().qmlJSEditorContextHelp(callback); - -#else - callback(QString()); -#endif + return id; } void AbstractView::setCurrentTimeline(const ModelNode &timeline) diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp index b6a4a3af45c..0decbcace86 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.cpp +++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp @@ -642,6 +642,12 @@ double QmlDesignerPlugin::formEditorDevicePixelRatio() return topLevelWindows.constFirst()->screen()->devicePixelRatio(); } +void QmlDesignerPlugin::contextHelp(const Core::IContext::HelpCallback &callback, const QString &id) +{ + emitUsageStatisticsHelpRequested(id); + QmlDesignerPlugin::instance()->viewManager().qmlJSEditorContextHelp(callback); +} + void QmlDesignerPlugin::emitUsageStatistics(const QString &identifier) { QTC_ASSERT(instance(), return); diff --git a/src/plugins/qmldesigner/qmldesignerplugin.h b/src/plugins/qmldesigner/qmldesignerplugin.h index 817f886afb6..d34e0ae1c3c 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.h +++ b/src/plugins/qmldesigner/qmldesignerplugin.h @@ -65,6 +65,8 @@ public: static double formEditorDevicePixelRatio(); + static void contextHelp(const Core::IContext::HelpCallback &callback, const QString &id); + static void emitUsageStatistics(const QString &identifier); static void emitUsageStatisticsContextAction(const QString &identifier); static void emitUsageStatisticsHelpRequested(const QString &identifier);