From 736963a4227a782cd45df6298bf322d469dac940 Mon Sep 17 00:00:00 2001 From: Lasse Holmstedt <lasse.holmstedt@nokia.com> Date: Mon, 8 Mar 2010 09:47:45 +0100 Subject: [PATCH] Context Help support for Bauhaus Task-number: BAUHAUS-451 Reviewed-by: kkoehne --- .../integration/designdocumentcontroller.cpp | 17 ++++++++++++++++- .../integration/designdocumentcontroller.h | 1 + src/plugins/qmldesigner/designmodecontext.cpp | 8 +++++++- src/plugins/qmldesigner/designmodecontext.h | 9 +++++++-- src/plugins/qmldesigner/designmodewidget.cpp | 7 +++++++ src/plugins/qmldesigner/designmodewidget.h | 2 ++ 6 files changed, 40 insertions(+), 4 deletions(-) diff --git a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp index 0de6ee28f67..3a7d3789044 100644 --- a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp +++ b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp @@ -416,7 +416,7 @@ void DesignDocumentController::loadCurrentModel() m_d->model->attachView(m_d->navigator.data()); m_d->itemLibrary->setMetaInfo(m_d->model->metaInfo()); - if (m_d->formEditorView .isNull()) { + if (m_d->formEditorView.isNull()) { m_d->formEditorView = new FormEditorView(this); m_d->stackedWidget->addWidget(m_d->formEditorView->widget()); ComponentAction *componentAction = new ComponentAction(m_d->formEditorView->widget()); @@ -857,4 +857,19 @@ bool DesignDocumentController::save(QIODevice *device, QString * /*errorMessage* } } +QString DesignDocumentController::contextHelpId() const +{ + DesignDocumentControllerView view; + m_d->model->attachView(&view); + + QList<ModelNode> nodes = view.selectedModelNodes(); + QString helpId; + if (!nodes.isEmpty()) { + helpId = nodes.first().type(); + helpId.replace("Qt/", "QML."); + } + + return helpId; +} + } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.h b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.h index 0521b436c37..311861fc112 100644 --- a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.h +++ b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.h @@ -90,6 +90,7 @@ public: bool isModelSyncBlocked() const; void blockModelSync(bool block); + QString contextHelpId() const; QList<RewriterView::Error> qmlErrors() const; signals: diff --git a/src/plugins/qmldesigner/designmodecontext.cpp b/src/plugins/qmldesigner/designmodecontext.cpp index 3b15329b364..baddfa1c779 100644 --- a/src/plugins/qmldesigner/designmodecontext.cpp +++ b/src/plugins/qmldesigner/designmodecontext.cpp @@ -29,13 +29,14 @@ #include "designmodecontext.h" #include "qmldesignerconstants.h" +#include "designmodewidget.h" #include <coreplugin/uniqueidmanager.h> #include <QWidget> namespace QmlDesigner { namespace Internal { -DesignModeContext::DesignModeContext(QWidget *widget) : IContext(widget), +DesignModeContext::DesignModeContext(DesignModeWidget *widget) : IContext(widget), m_widget(widget) { m_context << Core::UniqueIDManager::instance()->uniqueIdentifier(Constants::C_FORMEDITOR); @@ -56,6 +57,11 @@ QWidget *DesignModeContext::widget() return m_widget; } +QString DesignModeContext::contextHelpId() const +{ + return m_widget->contextHelpId(); +} + } } diff --git a/src/plugins/qmldesigner/designmodecontext.h b/src/plugins/qmldesigner/designmodecontext.h index e35f3aa1fd9..90dcb94eee9 100644 --- a/src/plugins/qmldesigner/designmodecontext.h +++ b/src/plugins/qmldesigner/designmodecontext.h @@ -40,20 +40,25 @@ QT_END_NAMESPACE namespace QmlDesigner { namespace Internal { +class DesignModeWidget; + /** * Bauhaus Design mode context object */ class DesignModeContext : public Core::IContext { public: - DesignModeContext(QWidget *widget); + DesignModeContext(DesignModeWidget *widget); ~DesignModeContext(); QList<int> context() const; QWidget *widget(); + + QString contextHelpId() const; + private: QList<int> m_context; - QWidget *m_widget; + DesignModeWidget *m_widget; }; } diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index 9f842c99d95..7851dc8e102 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -688,5 +688,12 @@ void DesignModeWidget::setCurrentDocumentWidget(DocumentWidget *newDocumentWidge } } +QString DesignModeWidget::contextHelpId() const +{ + if (m_currentDocumentWidget) + return m_currentDocumentWidget->document()->contextHelpId(); + return QString(); +} + } // namespace Internal } // namespace Designer diff --git a/src/plugins/qmldesigner/designmodewidget.h b/src/plugins/qmldesigner/designmodewidget.h index 5a51f6cc12e..4cbcf6c93c7 100644 --- a/src/plugins/qmldesigner/designmodewidget.h +++ b/src/plugins/qmldesigner/designmodewidget.h @@ -165,8 +165,10 @@ public: ~DesignModeWidget(); // void syncWithTextEdit(bool sync); + void showEditor(Core::IEditor *editor); void closeEditors(const QList<Core::IEditor*> editors); + QString contextHelpId() const; QAction *undoAction() const; QAction *redoAction() const; -- GitLab