diff --git a/src/plugins/qmldesigner/CMakeLists.txt b/src/plugins/qmldesigner/CMakeLists.txt index c29017523d9..5483ceca4cb 100644 --- a/src/plugins/qmldesigner/CMakeLists.txt +++ b/src/plugins/qmldesigner/CMakeLists.txt @@ -521,7 +521,6 @@ add_qtc_plugin(QmlDesigner ${CMAKE_CURRENT_LIST_DIR}/designercore #can not be a public dependency -> EXCLUDE_FROM_INSTALL in QmlDesignerCore ${CMAKE_CURRENT_LIST_DIR}/designercore/include #iwidgetplugin.h is used by other plugins SOURCES - designmodecontext.cpp designmodecontext.h designmodewidget.cpp designmodewidget.h documentmanager.cpp documentmanager.h documentwarningwidget.cpp documentwarningwidget.h diff --git a/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp b/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp index bb7404f2522..f4fe6de0922 100644 --- a/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp +++ b/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp @@ -9,7 +9,6 @@ #include "designeractionmanager.h" #include "designericons.h" #include "designersettings.h" -#include "designmodecontext.h" #include "edit3dcanvas.h" #include "edit3dviewconfig.h" #include "edit3dwidget.h" @@ -72,9 +71,6 @@ void Edit3DView::createEdit3DWidget() { createEdit3DActions(); m_edit3DWidget = new Edit3DWidget(this); - - auto editor3DContext = new Internal::Editor3DContext(m_edit3DWidget.data()); - Core::ICore::addContextObject(editor3DContext); } void Edit3DView::checkImports() diff --git a/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp b/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp index f6bbf8d7943..80504785014 100644 --- a/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp +++ b/src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp @@ -47,6 +47,8 @@ #include #include +using namespace Core; + namespace QmlDesigner { inline static QIcon contextIcon(const DesignerIcons::IconId &iconId) @@ -186,6 +188,10 @@ Edit3DWidget::Edit3DWidget(Edit3DView *view) m_canvas = new Edit3DCanvas(this); fillLayout->addWidget(m_canvas.data()); showCanvas(false); + + IContext::attach(this, + Context(Constants::C_QMLEDITOR3D, Constants::C_QT_QUICK_TOOLS_MENU), + [this](const IContext::HelpCallback &callback) { contextHelp(callback); }); } void Edit3DWidget::createContextMenu() diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp index eaf935d4c9d..841a6422042 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include @@ -205,9 +204,6 @@ void FormEditorView::createFormEditorWidget() m_currentTool = m_selectionTool.get(); - auto formEditorContext = new Internal::FormEditorContext(m_formEditorWidget.data()); - Core::ICore::addContextObject(formEditorContext); - connect(m_formEditorWidget->zoomAction(), &ZoomAction::zoomLevelChanged, [this] { m_currentTool->formEditorItemsChanged(scene()->allFormEditorItems()); }); diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp index 841ac1fce1e..3b9295f9278 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorwidget.cpp @@ -41,6 +41,8 @@ #include #include +using namespace Core; + namespace QmlDesigner { namespace { @@ -292,6 +294,10 @@ FormEditorWidget::FormEditorWidget(FormEditorView *view) QByteArray sheet = Utils::FileReader::fetchQrc(":/qmldesigner/stylesheet.css"); setStyleSheet(Theme::replaceCssColors(QString::fromUtf8(sheet))); + + IContext::attach(this, + Context(Constants::C_QMLFORMEDITOR, Constants::C_QT_QUICK_TOOLS_MENU), + [this](const IContext::HelpCallback &callback) { contextHelp(callback); }); } void FormEditorWidget::changeTransformTool(bool checked) diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp index 7d90dffffc6..34c8fa9ace8 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp @@ -5,7 +5,6 @@ #include "bindingproperty.h" #include "createtexture.h" -#include "designmodecontext.h" #include "externaldependenciesinterface.h" #include "materialbrowsermodel.h" #include "materialbrowsertexturesmodel.h" @@ -62,9 +61,6 @@ WidgetInfo MaterialBrowserView::widgetInfo() if (m_widget.isNull()) { m_widget = new MaterialBrowserWidget(m_imageCache, this); - auto matEditorContext = new Internal::MaterialBrowserContext(m_widget.data()); - Core::ICore::addContextObject(matEditorContext); - // custom notifications below are sent to the MaterialEditor MaterialBrowserModel *matBrowserModel = m_widget->materialBrowserModel().data(); diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp index 8723611be07..ca8108ec573 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp @@ -32,6 +32,8 @@ #include #include +using namespace Core; + namespace QmlDesigner { static QString propertyEditorResourcesPath() @@ -212,6 +214,10 @@ MaterialBrowserWidget::MaterialBrowserWidget(AsynchronousImageCache &imageCache, reloadQmlSource(); setFocusProxy(m_quickWidget->quickWidget()); + + IContext::attach(this, + Context(Constants::C_QMLMATERIALBROWSER, Constants::C_QT_QUICK_TOOLS_MENU), + [this](const IContext::HelpCallback &callback) { contextHelp(callback); }); } void MaterialBrowserWidget::updateMaterialPreview(const ModelNode &node, const QPixmap &pixmap) diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp index 090beb64717..774eb43dba3 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include @@ -758,10 +757,6 @@ void NavigatorView::setupWidget() { m_widget = new NavigatorWidget(this); m_treeModel = new NavigatorTreeModel(this); - - auto navigatorContext = new Internal::NavigatorContext(m_widget.data()); - Core::ICore::addContextObject(navigatorContext); - m_treeModel->setView(this); m_widget->setTreeModel(m_treeModel.data()); m_currentModelInterface = m_treeModel; diff --git a/src/plugins/qmldesigner/components/navigator/navigatorwidget.cpp b/src/plugins/qmldesigner/components/navigator/navigatorwidget.cpp index 91349e04f59..ea2e8bd3e6e 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorwidget.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatorwidget.cpp @@ -25,6 +25,8 @@ #include #include +using namespace Core; + namespace QmlDesigner { NavigatorWidget::NavigatorWidget(NavigatorView *view) @@ -67,6 +69,10 @@ NavigatorWidget::NavigatorWidget(NavigatorView *view) QmlDesignerPlugin::trackWidgetFocusTime(this, Constants::EVENT_NAVIGATORVIEW_TIME); setFocusProxy(m_treeView); + + IContext::attach(this, + Core::Context(Constants::C_QMLNAVIGATOR, Constants::C_QT_QUICK_TOOLS_MENU), + [this](const IContext::HelpCallback &callback) { contextHelp(callback); }); } void NavigatorWidget::setTreeModel(QAbstractItemModel *model) diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp b/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp index 2e52b3358ba..27d77509599 100644 --- a/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp +++ b/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp @@ -6,7 +6,6 @@ #include "texteditorwidget.h" #include -#include #include #include #include @@ -14,6 +13,7 @@ #include #include #include +#include #include #include @@ -41,6 +41,8 @@ #include #include +using namespace Core; + namespace QmlDesigner { const char TEXTEDITOR_CONTEXT_ID[] = "QmlDesigner.TextEditorContext"; @@ -48,8 +50,13 @@ const char TEXTEDITOR_CONTEXT_ID[] = "QmlDesigner.TextEditorContext"; TextEditorView::TextEditorView(ExternalDependenciesInterface &externalDependencies) : AbstractView{externalDependencies} , m_widget(new TextEditorWidget(this)) - , m_textEditorContext(new Internal::TextEditorContext(m_widget)) + , m_textEditorContext(new Core::IContext(m_widget)) { + m_textEditorContext->setWidget(m_widget); + m_textEditorContext->setContext(Context(Constants::C_QMLTEXTEDITOR, Constants::C_QT_QUICK_TOOLS_MENU)); + m_textEditorContext->setContextHelpProvider([this](const IContext::HelpCallback &callback) { + m_widget->contextHelp(callback); + }); Core::ICore::addContextObject(m_textEditorContext); Core::Context context(TEXTEDITOR_CONTEXT_ID); diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorview.h b/src/plugins/qmldesigner/components/texteditor/texteditorview.h index 33a5ec8276c..b1a02b926e8 100644 --- a/src/plugins/qmldesigner/components/texteditor/texteditorview.h +++ b/src/plugins/qmldesigner/components/texteditor/texteditorview.h @@ -8,18 +8,10 @@ #include -#include - namespace TextEditor { class BaseTextEditor; } -namespace Utils { class CrumblePath; } - namespace QmlDesigner { -namespace Internal { -class TextEditorContext; -} - class TextEditorWidget; class QMLDESIGNERCOMPONENTS_EXPORT TextEditorView : public AbstractView @@ -85,7 +77,7 @@ public: private: QPointer m_widget; - Internal::TextEditorContext *m_textEditorContext; + Core::IContext *m_textEditorContext; bool m_errorState = false; }; diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp index 8288e69316f..d2c46222214 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp @@ -36,10 +36,6 @@ #include -#include - -#include - #include #include diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp index 9f9e888823e..cdc0d437930 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp @@ -28,8 +28,6 @@ #include #include -#include - #include #include diff --git a/src/plugins/qmldesigner/designmodecontext.cpp b/src/plugins/qmldesigner/designmodecontext.cpp deleted file mode 100644 index a25053a512e..00000000000 --- a/src/plugins/qmldesigner/designmodecontext.cpp +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "designmodecontext.h" -#include "assetslibrarywidget.h" -#include "designmodewidget.h" -#include "edit3dwidget.h" -#include "formeditorwidget.h" -#include "materialbrowserwidget.h" -#include "navigatorwidget.h" -#include "qmldesignerconstants.h" -#include "texteditorwidget.h" - -namespace QmlDesigner::Internal { - -DesignModeContext::DesignModeContext(QWidget *widget) - : IContext(widget) -{ - setWidget(widget); - setContext(Core::Context(Constants::C_QMLDESIGNER, Constants::C_QT_QUICK_TOOLS_MENU)); - setContextHelpProvider([this](const HelpCallback &callback) { - qobject_cast(m_widget)->contextHelp(callback); - }); -} - -FormEditorContext::FormEditorContext(QWidget *widget) - : IContext(widget) -{ - setWidget(widget); - setContext(Core::Context(Constants::C_QMLFORMEDITOR, Constants::C_QT_QUICK_TOOLS_MENU)); - setContextHelpProvider([this](const HelpCallback &callback) { - qobject_cast(m_widget)->contextHelp(callback); - }); -} - -Editor3DContext::Editor3DContext(QWidget *widget) - : IContext(widget) -{ - setWidget(widget); - setContext(Core::Context(Constants::C_QMLEDITOR3D, Constants::C_QT_QUICK_TOOLS_MENU)); - setContextHelpProvider([this](const HelpCallback &callback) { - qobject_cast(m_widget)->contextHelp(callback); - }); -} - -MaterialBrowserContext::MaterialBrowserContext(QWidget *widget) - : IContext(widget) -{ - setWidget(widget); - setContext(Core::Context(Constants::C_QMLMATERIALBROWSER, Constants::C_QT_QUICK_TOOLS_MENU)); - setContextHelpProvider([this](const HelpCallback &callback) { - qobject_cast(m_widget)->contextHelp(callback); - }); -} - -NavigatorContext::NavigatorContext(QWidget *widget) - : IContext(widget) -{ - setWidget(widget); - setContext(Core::Context(Constants::C_QMLNAVIGATOR, Constants::C_QT_QUICK_TOOLS_MENU)); - setContextHelpProvider([this](const HelpCallback &callback) { - qobject_cast(m_widget)->contextHelp(callback); - }); -} - -TextEditorContext::TextEditorContext(QWidget *widget) - : IContext(widget) -{ - setWidget(widget); - setContext(Core::Context(Constants::C_QMLTEXTEDITOR, Constants::C_QT_QUICK_TOOLS_MENU)); - setContextHelpProvider([this](const HelpCallback &callback) { - qobject_cast(m_widget)->contextHelp(callback); - }); -} - -} // namespace QmlDesigner::Internal diff --git a/src/plugins/qmldesigner/designmodecontext.h b/src/plugins/qmldesigner/designmodecontext.h deleted file mode 100644 index 0ebc1e6f33f..00000000000 --- a/src/plugins/qmldesigner/designmodecontext.h +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include - -namespace QmlDesigner { -namespace Internal { - -/** - * Bauhaus Design mode context object - */ -class DesignModeContext : public Core::IContext -{ - Q_OBJECT - -public: - DesignModeContext(QWidget *widget); -}; - -class FormEditorContext : public Core::IContext -{ - Q_OBJECT - -public: - FormEditorContext(QWidget *widget); -}; - -class Editor3DContext : public Core::IContext -{ - Q_OBJECT - -public: - Editor3DContext(QWidget *widget); -}; - -class MaterialBrowserContext : public Core::IContext -{ - Q_OBJECT - -public: - MaterialBrowserContext(QWidget *widget); -}; - -class NavigatorContext : public Core::IContext -{ - Q_OBJECT - -public: - NavigatorContext(QWidget *widget); -}; - -class TextEditorContext : public Core::IContext -{ - Q_OBJECT - -public: - TextEditorContext(QWidget *widget); -}; -} // namespace Internal -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index a1f75b6205f..a203fb68674 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -55,9 +55,7 @@ #include #include -using Core::MiniSplitter; -using Core::IEditor; -using Core::EditorManager; +using namespace Core; using namespace QmlDesigner; @@ -121,6 +119,10 @@ DesignModeWidget::DesignModeWidget() setAcceptDrops(true); if (Utils::StyleHelper::isQDSTheme() || Core::ICore::isQtDesignStudio()) qApp->setStyle(QmlDesignerBasePlugin::style()); + + IContext::attach(this, + Context(Constants::C_QMLDESIGNER, Constants::C_QT_QUICK_TOOLS_MENU), + [this](const IContext::HelpCallback &callback) { contextHelp(callback); }); } DesignModeWidget::~DesignModeWidget() diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp index 1e9545c1ff2..573af01a57f 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.cpp +++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp @@ -5,7 +5,6 @@ #include "qmldesignertr.h" #include "coreplugin/iwizardfactory.h" -#include "designmodecontext.h" #include "designmodewidget.h" #include "dynamiclicensecheck.h" #include "exception.h" @@ -90,6 +89,7 @@ static Q_LOGGING_CATEGORY(qmldesignerLog, "qtc.qmldesigner", QtWarningMsg) +using namespace Core; using namespace QmlDesigner::Internal; namespace QmlDesigner { @@ -380,10 +380,13 @@ static QString projectPath(const Utils::FilePath &fileName) return path; } -void QmlDesignerPlugin::integrateIntoQtCreator(QWidget *modeWidget) +void QmlDesignerPlugin::integrateIntoQtCreator(DesignModeWidget *modeWidget) { - auto context = new Internal::DesignModeContext(modeWidget); - Core::ICore::addContextObject(context); + const Context context(Constants::C_QMLDESIGNER, Constants::C_QT_QUICK_TOOLS_MENU); + IContext::attach(modeWidget, context, [modeWidget](const IContext::HelpCallback &callback) { + modeWidget->contextHelp(callback); + }); + Core::Context qmlDesignerMainContext(Constants::C_QMLDESIGNER); Core::Context qmlDesignerFormEditorContext(Constants::C_QMLFORMEDITOR); Core::Context qmlDesignerEditor3dContext(Constants::C_QMLEDITOR3D); @@ -397,7 +400,7 @@ void QmlDesignerPlugin::integrateIntoQtCreator(QWidget *modeWidget) const QStringList mimeTypes = { Utils::Constants::QML_MIMETYPE, Utils::Constants::QMLUI_MIMETYPE }; - Core::DesignMode::registerDesignWidget(modeWidget, mimeTypes, context->context()); + Core::DesignMode::registerDesignWidget(modeWidget, mimeTypes, context); connect(Core::DesignMode::instance(), &Core::DesignMode::actionsUpdated, &d->shortCutManager, &ShortCutManager::updateActions); diff --git a/src/plugins/qmldesigner/qmldesignerplugin.h b/src/plugins/qmldesigner/qmldesignerplugin.h index ebb2e2bda9c..a5b7bf28b6a 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.h +++ b/src/plugins/qmldesigner/qmldesignerplugin.h @@ -101,7 +101,7 @@ private slots: private: // functions void lauchFeedbackPopupInternal(const QString &identifier); - void integrateIntoQtCreator(QWidget *modeWidget); + void integrateIntoQtCreator(Internal::DesignModeWidget *modeWidget); void clearDesigner(); void resetDesignerDocument(); void setupDesigner();