QmlDesigner: Consolidate context help

Move one singular implementation to the texteditor.
Define a fallback help URL if no type is found.

Change-Id: Ieccbeb449c22ff14060d1fb57dfd629770baf6f1
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
This commit is contained in:
Thomas Hartmann
2024-09-03 17:15:37 +02:00
parent 23b2d3720b
commit 442ab445c7
2 changed files with 20 additions and 16 deletions

View File

@@ -181,23 +181,7 @@ QToolBar *NavigatorWidget::createToolBar()
void NavigatorWidget::contextHelp(const Core::IContext::HelpCallback &callback) const void NavigatorWidget::contextHelp(const Core::IContext::HelpCallback &callback) const
{ {
if (auto view = navigatorView()) { if (auto view = navigatorView()) {
QmlDesignerPlugin::emitUsageStatistics(Constants::EVENT_HELP_REQUESTED
+ view->contextHelpId());
#ifndef QDS_USE_PROJECTSTORAGE
ModelNode selectedNode = view->firstSelectedModelNode();
if (!selectedNode)
selectedNode = view->rootModelNode();
// TODO: Needs to be fixed for projectstorage.
const Core::HelpItem helpItem({QString::fromUtf8("QML." + selectedNode.type()),
"QML." + selectedNode.simplifiedTypeName()},
{},
{},
Core::HelpItem::QmlComponent);
callback(helpItem);
#else
QmlDesignerPlugin::contextHelp(callback, view->contextHelpId()); QmlDesignerPlugin::contextHelp(callback, view->contextHelpId());
#endif
} else { } else {
callback({}); callback({});
} }

View File

@@ -142,10 +142,30 @@ WidgetInfo TextEditorView::widgetInfo()
void TextEditorView::qmlJSEditorContextHelp(const Core::IContext::HelpCallback &callback) const void TextEditorView::qmlJSEditorContextHelp(const Core::IContext::HelpCallback &callback) const
{ {
#ifndef QDS_USE_PROJECTSTORAGE
ModelNode selectedNode = firstSelectedModelNode();
if (!selectedNode)
selectedNode = rootModelNode();
// TODO: Needs to be fixed for projectstorage.
Core::HelpItem helpItem({QString::fromUtf8("QML." + selectedNode.type()),
"QML." + selectedNode.simplifiedTypeName()},
{},
{},
Core::HelpItem::QmlComponent);
if (!helpItem.isValid()) {
helpItem = Core::HelpItem(
QUrl("qthelp://org.qt-project.qtdesignstudio/doc/quick-preset-components.html"));
}
callback(helpItem);
#else
if (m_widget->textEditor()) if (m_widget->textEditor())
m_widget->textEditor()->contextHelp(callback); m_widget->textEditor()->contextHelp(callback);
else else
callback({}); callback({});
#endif
} }
void TextEditorView::nodeIdChanged(const ModelNode& /*node*/, const QString &/*newId*/, const QString &/*oldId*/) void TextEditorView::nodeIdChanged(const ModelNode& /*node*/, const QString &/*newId*/, const QString &/*oldId*/)