diff options
author | Amr Essam <[email protected]> | 2023-09-15 15:36:15 +0300 |
---|---|---|
committer | Amr Elsayed <[email protected]> | 2023-09-18 13:23:06 +0000 |
commit | 7b183a774c981c760c2e6a8e2a8b2f6f05dee633 (patch) | |
tree | 51754d48be32c53013f1aa856b438938d144938f /src/plugins/effectmakernew/effectmakerview.cpp | |
parent | a6e8a247b3e49cce4e830d839925d3d985b89344 (diff) |
QmlDesigner: Move effect maker to an independent plugin
Task-number: QDS-10656
Change-Id: I1c1e67d3461650bfaec46ccc10b832effce76ad9
Reviewed-by: Mahmoud Badri <[email protected]>
Diffstat (limited to 'src/plugins/effectmakernew/effectmakerview.cpp')
-rw-r--r-- | src/plugins/effectmakernew/effectmakerview.cpp | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/plugins/effectmakernew/effectmakerview.cpp b/src/plugins/effectmakernew/effectmakerview.cpp new file mode 100644 index 00000000000..4bb68f358a4 --- /dev/null +++ b/src/plugins/effectmakernew/effectmakerview.cpp @@ -0,0 +1,83 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "effectmakerview.h" + +#include "effectmakerwidget.h" +#include "effectmakernodesmodel.h" + +#include "nodeinstanceview.h" +#include "qmldesignerconstants.h" + +#include <coreplugin/icore.h> + +#include <QQmlContext> +#include <QQmlEngine> +#include <QQuickItem> +#include <QQuickView> +#include <QTimer> + +namespace EffectMaker { + +EffectMakerContext::EffectMakerContext(QWidget *widget) + : IContext(widget) +{ + setWidget(widget); + setContext(Core::Context(QmlDesigner::Constants::C_QMLEFFECTMAKER, + QmlDesigner::Constants::C_QT_QUICK_TOOLS_MENU)); +} + +void EffectMakerContext::contextHelp(const HelpCallback &callback) const +{ + qobject_cast<EffectMakerWidget *>(m_widget)->contextHelp(callback); +} + +EffectMakerView::EffectMakerView(QmlDesigner::ExternalDependenciesInterface &externalDependencies) + : AbstractView{externalDependencies} +{ +} + +EffectMakerView::~EffectMakerView() +{} + +bool EffectMakerView::hasWidget() const +{ + return true; +} + +QmlDesigner::WidgetInfo EffectMakerView::widgetInfo() +{ + if (m_widget.isNull()) { + m_widget = new EffectMakerWidget{this}; + + auto context = new EffectMakerContext(m_widget.data()); + Core::ICore::addContextObject(context); + } + + return createWidgetInfo(m_widget.data(), "Effect Maker", + QmlDesigner::WidgetInfo::LeftPane, 0, tr("Effect Maker")); +} + +void EffectMakerView::customNotification(const AbstractView * /*view*/, + const QString & /*identifier*/, + const QList<QmlDesigner::ModelNode> & /*nodeList*/, + const QList<QVariant> & /*data*/) +{ + // TODO +} + +void EffectMakerView::modelAttached(QmlDesigner::Model *model) +{ + AbstractView::modelAttached(model); + + m_widget->effectMakerNodesModel()->loadModel(); + m_widget->initView(); +} + +void EffectMakerView::modelAboutToBeDetached(QmlDesigner::Model *model) +{ + AbstractView::modelAboutToBeDetached(model); +} + +} // namespace EffectMaker + |