From 970496b24ca46ed0dccee770a486e147e8b9554c Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 22 Mar 2017 12:17:28 +0100 Subject: [PATCH] QmlDesigner: Fix help The designer used a over simplified lookup, that did not distinguish between e.g. Controls 1 and Controls 2. Instead of fixing the lookup we simply use the working lookup from the QmlJSEditor. Change-Id: I2d31e633eaadc67e211d44bad307b26993f21fc9 Reviewed-by: Tim Jenssen --- .../components/texteditor/texteditorview.cpp | 7 +++++- .../components/texteditor/texteditorview.h | 2 ++ .../designercore/include/viewmanager.h | 2 ++ .../designercore/model/abstractview.cpp | 23 +++++++------------ .../designercore/model/viewmanager.cpp | 5 ++++ 5 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp b/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp index c4b120c97b5..5877424a142 100644 --- a/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp +++ b/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp @@ -146,13 +146,18 @@ WidgetInfo TextEditorView::widgetInfo() } QString TextEditorView::contextHelpId() const +{ + return AbstractView::contextHelpId(); +} + +QString TextEditorView::qmlJSEditorHelpId() const { if (m_widget->textEditor()) { QString contextHelpId = m_widget->textEditor()->contextHelpId(); if (!contextHelpId.isEmpty()) return m_widget->textEditor()->contextHelpId(); } - return AbstractView::contextHelpId(); + return QString(); } void TextEditorView::nodeIdChanged(const ModelNode& /*node*/, const QString &/*newId*/, const QString &/*oldId*/) diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorview.h b/src/plugins/qmldesigner/components/texteditor/texteditorview.h index 9b07ee2b5ff..01ac15f2191 100644 --- a/src/plugins/qmldesigner/components/texteditor/texteditorview.h +++ b/src/plugins/qmldesigner/components/texteditor/texteditorview.h @@ -69,6 +69,8 @@ public: WidgetInfo widgetInfo() override; QString contextHelpId() const override; + QString qmlJSEditorHelpId() const; + TextEditor::BaseTextEditor *textEditor(); bool changeToMoveTool(); diff --git a/src/plugins/qmldesigner/designercore/include/viewmanager.h b/src/plugins/qmldesigner/designercore/include/viewmanager.h index b10266d0f86..f69f714f0a7 100644 --- a/src/plugins/qmldesigner/designercore/include/viewmanager.h +++ b/src/plugins/qmldesigner/designercore/include/viewmanager.h @@ -95,6 +95,8 @@ public: void toggleStatesViewExpanded(); + QString qmlJSEditorHelpId() const; + private: // functions Q_DISABLE_COPY(ViewManager) diff --git a/src/plugins/qmldesigner/designercore/model/abstractview.cpp b/src/plugins/qmldesigner/designercore/model/abstractview.cpp index c6084a9c93d..7579c12503b 100644 --- a/src/plugins/qmldesigner/designercore/model/abstractview.cpp +++ b/src/plugins/qmldesigner/designercore/model/abstractview.cpp @@ -31,6 +31,11 @@ #include "nodeinstanceview.h" #include +#ifndef QMLDESIGNER_TEST +#include +#include +#endif + #include #include @@ -554,21 +559,9 @@ QString AbstractView::contextHelpId() const { QString helpId; - if (hasSelectedModelNodes()) { - QString className = firstSelectedModelNode().simplifiedTypeName(); - helpId = QStringLiteral("QML.") + className; - if (Core::HelpManager::linksForIdentifier(helpId).isEmpty() && firstSelectedModelNode().metaInfo().isValid()) { - - foreach (className, firstSelectedModelNode().metaInfo().superClassNames()) { - helpId = QStringLiteral("QML.") + className; - if (Core::HelpManager::linksForIdentifier(helpId).isEmpty()) - helpId = QString(); - else - break; - } - } - } - +#ifndef QMLDESIGNER_TEST + helpId = QmlDesignerPlugin::instance()->viewManager().qmlJSEditorHelpId(); +#endif return helpId; } diff --git a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp index bd7aa0185e6..32e1398bd3c 100644 --- a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp +++ b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp @@ -411,6 +411,11 @@ void ViewManager::toggleStatesViewExpanded() d->statesEditorView.toggleStatesViewExpanded(); } +QString ViewManager::qmlJSEditorHelpId() const +{ + return d->textEditorView.qmlJSEditorHelpId(); +} + Model *ViewManager::currentModel() const { return currentDesignDocument()->currentModel();