QmlDesigner: Move effect maker to an independent plugin

Task-number: QDS-10656
Change-Id: I1c1e67d3461650bfaec46ccc10b832effce76ad9
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
This commit is contained in:
Amr Essam
2023-09-15 15:36:15 +03:00
committed by Amr Elsayed
parent a6e8a247b3
commit 7b183a774c
39 changed files with 343 additions and 217 deletions

View File

@@ -112,3 +112,7 @@ add_subdirectory(mcusupport)
add_subdirectory(saferenderer)
add_subdirectory(copilot)
add_subdirectory(terminal)
if (WITH_QMLDESIGNER)
add_subdirectory(effectmakernew)
endif()

View File

@@ -0,0 +1,27 @@
find_package(Qt6 OPTIONAL_COMPONENTS Gui Quick ShaderTools)
add_qtc_plugin(EffectMakerNew
CONDITION TARGET QmlDesigner AND TARGET Qt::ShaderTools
PLUGIN_DEPENDS
QtCreator::Core QtCreator::QmlDesigner
DEPENDS
Qt::Core
QtCreator::Utils Qt::CorePrivate Qt::Widgets Qt::Qml Qt::QmlPrivate Qt::Quick Qt::ShaderTools
SOURCES
effectmakerplugin.cpp effectmakerplugin.h
effectmakerwidget.cpp effectmakerwidget.h
effectmakerview.cpp effectmakerview.h
effectmakermodel.cpp effectmakermodel.h
effectmakernodesmodel.cpp effectmakernodesmodel.h
effectmakeruniformsmodel.cpp effectmakeruniformsmodel.h
effectnode.cpp effectnode.h
effectnodescategory.cpp effectnodescategory.h
compositionnode.cpp compositionnode.h
uniform.cpp uniform.h
effectutils.cpp effectutils.h
effectmakercontextobject.cpp effectmakercontextobject.h
shaderfeatures.cpp shaderfeatures.h
syntaxhighlighterdata.cpp syntaxhighlighterdata.h
BUILD_DEFAULT OFF
)

View File

@@ -0,0 +1,15 @@
{
\"Name\" : \"EffectMakerNew\",
\"Version\" : \"$$QTCREATOR_VERSION\",
\"CompatVersion\" : \"$$QTCREATOR_COMPAT_VERSION\",
\"Revision\" : \"$$QTC_PLUGIN_REVISION\",
\"Vendor\" : \"The Qt Company Ltd\",
\"Copyright\" : \"(C) $$QTCREATOR_COPYRIGHT_YEAR The Qt Company Ltd\",
\"License\" : [ \"Commercial Usage\",
\"\",
\"Licensees holding valid Qt Enterprise licenses may use this plugin in accordance with the Qt Enterprise License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and The Qt Company.\"
],
\"Description\" : \"Plugin for Effect Maker.\",
\"Url\" : \"http://www.qt.io\",
$$dependencyList
}

View File

@@ -12,7 +12,7 @@
#include <QJsonDocument>
#include <QJsonObject>
namespace QmlDesigner {
namespace EffectMaker {
CompositionNode::CompositionNode(const QString &qenPath)
{
@@ -119,4 +119,5 @@ void CompositionNode::parse(const QString &qenPath)
}
}
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -7,7 +7,7 @@
#include <QObject>
namespace QmlDesigner {
namespace EffectMaker {
class CompositionNode : public QObject
{
@@ -57,4 +57,5 @@ private:
EffectMakerUniformsModel m_unifomrsModel;
};
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -9,7 +9,7 @@
#include <nodemetainfo.h>
#include <rewritingexception.h>
#include <qmldesignerplugin.h>
#include <qmlmodelnodeproxy.h>
#include <qmldesigner/components/propertyeditor/qmlmodelnodeproxy.h>
#include <qmlobjectnode.h>
#include <qmltimeline.h>
#include <qmltimelinekeyframegroup.h>
@@ -27,7 +27,7 @@
#include <coreplugin/icore.h>
namespace QmlDesigner {
namespace EffectMaker {
EffectMakerContextObject::EffectMakerContextObject(QQmlContext *context, QObject *parent)
: QObject(parent)
@@ -117,7 +117,7 @@ void EffectMakerContextObject::setBackendValues(QQmlPropertyMap *newBackendValue
emit backendValuesChanged();
}
void EffectMakerContextObject::setModel(Model *model)
void EffectMakerContextObject::setModel(QmlDesigner::Model *model)
{
m_model = model;
}
@@ -169,7 +169,7 @@ int EffectMakerContextObject::devicePixelRatio()
QStringList EffectMakerContextObject::allStatesForId(const QString &id)
{
if (m_model && m_model->rewriterView()) {
const QmlObjectNode node = m_model->rewriterView()->modelNodeForId(id);
const QmlDesigner::QmlObjectNode node = m_model->rewriterView()->modelNodeForId(id);
if (node.isValid())
return node.allStateNames();
}
@@ -182,4 +182,5 @@ bool EffectMakerContextObject::isBlocked(const QString &) const
return false;
}
} // QmlDesigner
} // namespace EffectMaker

View File

@@ -14,7 +14,7 @@
#include <QPoint>
#include <QMouseEvent>
namespace QmlDesigner {
namespace EffectMaker {
class EffectMakerContextObject : public QObject
{
@@ -90,7 +90,7 @@ private:
int m_majorVersion = 1;
QQmlPropertyMap *m_backendValues = nullptr;
Model *m_model = nullptr;
QmlDesigner::Model *m_model = nullptr;
QPoint m_lastPos;
@@ -98,4 +98,5 @@ private:
bool m_selectionChanged = false;
};
} // QmlDesigner
} // namespace EffectMaker

View File

@@ -12,7 +12,7 @@
#include <utils/qtcassert.h>
namespace QmlDesigner {
namespace EffectMaker {
EffectMakerModel::EffectMakerModel(QObject *parent)
: QAbstractListModel{parent}
@@ -760,4 +760,5 @@ void EffectMakerModel::setShadersUpToDate(bool UpToDate)
emit shadersUpToDateChanged();
}
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -9,7 +9,7 @@
#include <QRegularExpression>
#include <QStandardItemModel>
namespace QmlDesigner {
namespace EffectMaker {
class CompositionNode;
class Uniform;
@@ -135,4 +135,5 @@ private:
const QRegularExpression m_spaceReg = QRegularExpression("\\s+");
};
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -7,7 +7,7 @@
#include <QCoreApplication>
namespace QmlDesigner {
namespace EffectMaker {
EffectMakerNodesModel::EffectMakerNodesModel(QObject *parent)
: QAbstractListModel{parent}
@@ -104,4 +104,5 @@ void EffectMakerNodesModel::resetModel()
endResetModel();
}
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -9,7 +9,7 @@
#include <QStandardItemModel>
namespace QmlDesigner {
namespace EffectMaker {
class EffectMakerNodesModel : public QAbstractListModel
{
@@ -40,4 +40,5 @@ private:
bool m_probeNodesDir = false;
};
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -0,0 +1,46 @@
// 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 "effectmakerplugin.h"
#include "effectmakerview.h"
#include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/actionmanager/actioncontainer.h>
#include <coreplugin/coreconstants.h>
#include <coreplugin/icore.h>
#include <coreplugin/imode.h>
#include <coreplugin/modemanager.h>
#include <coreplugin/messagemanager.h>
#include <coreplugin/externaltool.h>
#include <coreplugin/externaltoolmanager.h>
#include <componentcore_constants.h>
#include <designeractionmanager.h>
#include <viewmanager.h>
#include <qmldesigner/dynamiclicensecheck.h>
#include <qmldesignerplugin.h>
#include <modelnodeoperations.h>
#include <QJsonDocument>
#include <QMap>
namespace EffectMaker {
bool EffectMakerPlugin::delayedInitialize()
{
if (m_delayedInitialized)
return true;
auto *designerPlugin = QmlDesigner::QmlDesignerPlugin::instance();
auto &viewManager = designerPlugin->viewManager();
viewManager.registerView(std::make_unique<EffectMakerView>(
QmlDesigner::QmlDesignerPlugin::externalDependenciesForPluginInitializationOnly()));
m_delayedInitialized = true;
return true;
}
} // namespace EffectMaker

View File

@@ -0,0 +1,32 @@
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#pragma once
#include <extensionsystem/iplugin.h>
#include <utils/process.h>
namespace Core {
class ActionContainer;
class ExternalTool;
}
namespace EffectMaker {
class EffectMakerPlugin : public ExtensionSystem::IPlugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "EffectMakerNew.json")
public:
EffectMakerPlugin() {}
~EffectMakerPlugin() override {}
bool delayedInitialize() override;
private:
bool m_delayedInitialized = false;
};
} // namespace EffectMaker

View File

@@ -7,7 +7,7 @@
#include <utils/qtcassert.h>
namespace QmlDesigner {
namespace EffectMaker {
EffectMakerUniformsModel::EffectMakerUniformsModel(QObject *parent)
: QAbstractListModel{parent}
@@ -72,4 +72,5 @@ QList<Uniform *> EffectMakerUniformsModel::uniforms() const
return m_uniforms;
}
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -5,7 +5,7 @@
#include <QStandardItemModel>
namespace QmlDesigner {
namespace EffectMaker {
class Uniform;
@@ -42,4 +42,5 @@ private:
QList<Uniform *> m_uniforms;
};
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -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

View File

@@ -0,0 +1,46 @@
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#pragma once
#include "abstractview.h"
#include <coreplugin/icontext.h>
#include <QPointer>
namespace EffectMaker {
class EffectMakerWidget;
class EffectMakerContext : public Core::IContext
{
Q_OBJECT
public:
EffectMakerContext(QWidget *widget);
void contextHelp(const Core::IContext::HelpCallback &callback) const override;
};
class EffectMakerView : public QmlDesigner::AbstractView
{
public:
EffectMakerView(QmlDesigner::ExternalDependenciesInterface &externalDependencies);
~EffectMakerView() override;
bool hasWidget() const override;
QmlDesigner::WidgetInfo widgetInfo() override;
// AbstractView
void modelAttached(QmlDesigner::Model *model) override;
void modelAboutToBeDetached(QmlDesigner::Model *model) override;
private:
void customNotification(const AbstractView *view, const QString &identifier,
const QList<QmlDesigner::ModelNode> &nodeList, const QList<QVariant> &data) override;
QPointer<EffectMakerWidget> m_widget;
};
} // namespace EffectMaker

View File

@@ -23,7 +23,7 @@
#include <QHBoxLayout>
#include <QQmlEngine>
namespace QmlDesigner {
namespace EffectMaker {
static QString propertyEditorResourcesPath()
{
@@ -46,21 +46,22 @@ EffectMakerWidget::EffectMakerWidget(EffectMakerView *view)
m_quickWidget->quickWidget()->installEventFilter(this);
// create the inner widget
m_quickWidget->quickWidget()->setObjectName(Constants::OBJECT_NAME_EFFECT_MAKER);
m_quickWidget->quickWidget()->setObjectName(QmlDesigner::Constants::OBJECT_NAME_EFFECT_MAKER);
m_quickWidget->setResizeMode(QQuickWidget::SizeRootObjectToView);
Theme::setupTheme(m_quickWidget->engine());
QmlDesigner::Theme::setupTheme(m_quickWidget->engine());
m_quickWidget->engine()->addImportPath(propertyEditorResourcesPath() + "/imports");
m_quickWidget->setClearColor(Theme::getColor(Theme::Color::QmlDesigner_BackgroundColorDarkAlternate));
m_quickWidget->setClearColor(QmlDesigner::Theme::getColor(
QmlDesigner::Theme::Color::QmlDesigner_BackgroundColorDarkAlternate));
auto layout = new QHBoxLayout(this);
layout->setContentsMargins({});
layout->setSpacing(0);
layout->addWidget(m_quickWidget.data());
setStyleSheet(Theme::replaceCssColors(
setStyleSheet(QmlDesigner::Theme::replaceCssColors(
QString::fromUtf8(Utils::FileReader::fetchQrc(":/qmldesigner/stylesheet.css"))));
QmlDesignerPlugin::trackWidgetFocusTime(this, Constants::EVENT_EFFECTMAKER_TIME);
QmlDesigner::QmlDesignerPlugin::trackWidgetFocusTime(this, QmlDesigner::Constants::EVENT_EFFECTMAKER_TIME);
auto map = m_quickWidget->registerPropertyMap("EffectMakerBackend");
map->setProperties({{"effectMakerNodesModel", QVariant::fromValue(m_effectMakerNodesModel.data())},
@@ -142,4 +143,5 @@ void EffectMakerWidget::reloadQmlSource()
m_quickWidget->setSource(QUrl::fromLocalFile(effectMakerQmlPath));
}
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -3,7 +3,7 @@
#pragma once
#include "qmlmodelnodeproxy.h"
#include "qmldesigner/components/propertyeditor/qmlmodelnodeproxy.h"
#include <coreplugin/icontext.h>
@@ -11,7 +11,7 @@
class StudioQuickWidget;
namespace QmlDesigner {
namespace EffectMaker {
class EffectMakerView;
class EffectMakerModel;
@@ -53,7 +53,8 @@ private:
QPointer<EffectMakerNodesModel> m_effectMakerNodesModel;
QPointer<EffectMakerView> m_effectMakerView;
QPointer<StudioQuickWidget> m_quickWidget;
QmlModelNodeProxy m_backendModelNode;
QmlDesigner::QmlModelNodeProxy m_backendModelNode;
};
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -6,7 +6,7 @@
#include <QDir>
#include <QFileInfo>
namespace QmlDesigner {
namespace EffectMaker {
EffectNode::EffectNode(const QString &qenPath)
: m_qenPath(qenPath)
@@ -39,4 +39,5 @@ QString EffectNode::qenPath() const
return m_qenPath;
}
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -6,7 +6,7 @@
#include <QObject>
#include <QUrl>
namespace QmlDesigner {
namespace EffectMaker {
class EffectNode : public QObject
{
@@ -31,4 +31,5 @@ private:
QUrl m_iconPath;
};
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -3,7 +3,7 @@
#include "effectnodescategory.h"
namespace QmlDesigner {
namespace EffectMaker {
EffectNodesCategory::EffectNodesCategory(const QString &name, const QList<EffectNode *> &nodes)
: m_name(name),
@@ -19,4 +19,5 @@ QList<EffectNode *> EffectNodesCategory::nodes() const
return m_categoryNodes;
}
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -7,7 +7,7 @@
#include <QObject>
namespace QmlDesigner {
namespace EffectMaker {
class EffectNodesCategory : public QObject
{
@@ -27,4 +27,5 @@ private:
QList<EffectNode *> m_categoryNodes;
};
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -5,7 +5,7 @@
#include <QJsonArray>
namespace QmlDesigner {
namespace EffectMaker {
QString EffectUtils::codeFromJsonArray(const QJsonArray &codeArray)
{
@@ -20,4 +20,5 @@ QString EffectUtils::codeFromJsonArray(const QJsonArray &codeArray)
return codeString;
}
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -7,7 +7,7 @@
QT_FORWARD_DECLARE_CLASS(QJsonArray)
namespace QmlDesigner {
namespace EffectMaker {
class EffectUtils
{
@@ -17,4 +17,5 @@ public:
static QString codeFromJsonArray(const QJsonArray &codeArray);
};
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -5,7 +5,7 @@
#include <QStringList>
#include <QDebug>
namespace QmlDesigner {
namespace EffectMaker {
ShaderFeatures::ShaderFeatures()
{
@@ -77,4 +77,5 @@ void ShaderFeatures::checkLine(const QString &line, Features &features)
features.setFlag(BlurSources, true);
}
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -6,7 +6,7 @@
#include <QFlags>
#include <QString>
namespace QmlDesigner {
namespace EffectMaker {
class ShaderFeatures
{
@@ -36,4 +36,5 @@ private:
};
Q_DECLARE_OPERATORS_FOR_FLAGS(ShaderFeatures::Features)
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -3,7 +3,7 @@
#include "syntaxhighlighterdata.h"
namespace QmlDesigner {
namespace EffectMaker {
static constexpr QByteArrayView shader_arg_names[] {
{ "gl_Position" },
@@ -186,5 +186,6 @@ QList<QByteArrayView> SyntaxHighlighterData::reservedFunctionNames()
return { std::begin(shader_function_names), std::end(shader_function_names) };
}
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -6,7 +6,7 @@
#include <QByteArrayView>
#include <QList>
namespace QmlDesigner {
namespace EffectMaker {
class SyntaxHighlighterData
{
@@ -18,5 +18,6 @@ public:
static QList<QByteArrayView> reservedFunctionNames();
};
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -2,14 +2,14 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "uniform.h"
#include <qmldesignerplugin.h>
#include "propertyeditorvalue.h"
#include <QColor>
#include <QJsonObject>
#include <QVector2D>
namespace QmlDesigner {
namespace EffectMaker {
Uniform::Uniform(const QJsonObject &propObj)
{
@@ -45,7 +45,7 @@ Uniform::Uniform(const QJsonObject &propObj)
setValueData(value, defaultValue, minValue, maxValue);
m_backendValue = new PropertyEditorValue(this);
m_backendValue = new QmlDesigner::PropertyEditorValue(this);
m_backendValue->setValue(value);
}
@@ -321,4 +321,4 @@ QString Uniform::typeToProperty(Uniform::Type type)
return QString();
}
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -6,13 +6,15 @@
#include <QObject>
#include <QVariant>
#include <qmldesigner/components/propertyeditor/propertyeditorvalue.h>
QT_FORWARD_DECLARE_CLASS(QColor)
QT_FORWARD_DECLARE_CLASS(QJsonObject)
QT_FORWARD_DECLARE_CLASS(QVector2D)
namespace QmlDesigner {
namespace EffectMaker {
class PropertyEditorValue;
class Uniform : public QObject
{
@@ -97,7 +99,7 @@ private:
bool m_useCustomValue = false;
bool m_enabled = true;
bool m_enableMipmap = false;
PropertyEditorValue *m_backendValue = nullptr;
QmlDesigner::PropertyEditorValue *m_backendValue = nullptr;
bool operator==(const Uniform &rhs) const noexcept
{
@@ -105,4 +107,4 @@ private:
}
};
} // namespace QmlDesigner
} // namespace EffectMaker

View File

@@ -709,24 +709,6 @@ extend_qtc_plugin(QmlDesigner
assetslibraryiconprovider.cpp assetslibraryiconprovider.h
)
extend_qtc_plugin(QmlDesigner
SOURCES_PREFIX components/effectmaker
SOURCES
effectmakerwidget.cpp effectmakerwidget.h
effectmakerview.cpp effectmakerview.h
effectmakermodel.cpp effectmakermodel.h
effectmakernodesmodel.cpp effectmakernodesmodel.h
effectmakeruniformsmodel.cpp effectmakeruniformsmodel.h
effectnode.cpp effectnode.h
effectnodescategory.cpp effectnodescategory.h
compositionnode.cpp compositionnode.h
uniform.cpp uniform.h
effectutils.cpp effectutils.h
effectmakercontextobject.cpp effectmakercontextobject.h
shaderfeatures.cpp shaderfeatures.h
syntaxhighlighterdata.cpp syntaxhighlighterdata.h
)
extend_qtc_plugin(QmlDesigner
SOURCES_PREFIX components/navigator
SOURCES

View File

@@ -16,7 +16,6 @@
#include <designeractionmanagerview.h>
#include <designmodewidget.h>
#include <edit3dview.h>
#include <effectmakerview.h>
#include <formeditorview.h>
#include <itemlibraryview.h>
#include <materialbrowserview.h>
@@ -56,7 +55,6 @@ public:
, contentLibraryView{externalDependencies}
, componentView{externalDependencies}
, edit3DView{externalDependencies}
, effectMakerView{externalDependencies}
, formEditorView{externalDependencies}
, textEditorView{externalDependencies}
, assetsLibraryView{externalDependencies}
@@ -79,7 +77,6 @@ public:
ContentLibraryView contentLibraryView;
ComponentView componentView;
Edit3DView edit3DView;
EffectMakerView effectMakerView;
FormEditorView formEditorView;
TextEditorView textEditorView;
AssetsLibraryView assetsLibraryView;
@@ -212,9 +209,6 @@ QList<AbstractView *> ViewManager::standardViews() const
.toBool())
list.append(&d->debugView);
if (qEnvironmentVariableIsSet("ENABLE_QDS_EFFECTMAKER"))
list.append(&d->effectMakerView);
if (qEnvironmentVariableIsSet("ENABLE_QDS_COLLECTIONVIEW"))
list.append(&d->collectionView);
@@ -393,9 +387,6 @@ QList<WidgetInfo> ViewManager::widgetInfos() const
widgetInfoList.append(d->textureEditorView.widgetInfo());
widgetInfoList.append(d->statesEditorView.widgetInfo());
if (qEnvironmentVariableIsSet("ENABLE_QDS_EFFECTMAKER"))
widgetInfoList.append(d->effectMakerView.widgetInfo());
if (qEnvironmentVariableIsSet("ENABLE_QDS_COLLECTIONVIEW"))
widgetInfoList.append(d->collectionView.widgetInfo());

View File

@@ -1,69 +0,0 @@
// 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 "designmodecontext.h"
#include "nodeinstanceview.h"
#include <coreplugin/icore.h>
#include <QQmlContext>
#include <QQmlEngine>
#include <QQuickItem>
#include <QQuickView>
#include <QTimer>
namespace QmlDesigner {
EffectMakerView::EffectMakerView(ExternalDependenciesInterface &externalDependencies)
: AbstractView{externalDependencies}
{
}
EffectMakerView::~EffectMakerView()
{}
bool EffectMakerView::hasWidget() const
{
return true;
}
WidgetInfo EffectMakerView::widgetInfo()
{
if (m_widget.isNull()) {
m_widget = new EffectMakerWidget{this};
auto context = new Internal::EffectMakerContext(m_widget.data());
Core::ICore::addContextObject(context);
}
return createWidgetInfo(m_widget.data(), "Effect Maker", WidgetInfo::LeftPane, 0, tr("Effect Maker"));
}
void EffectMakerView::customNotification(const AbstractView * /*view*/,
const QString & /*identifier*/,
const QList<ModelNode> & /*nodeList*/,
const QList<QVariant> & /*data*/)
{
// TODO
}
void EffectMakerView::modelAttached(Model *model)
{
AbstractView::modelAttached(model);
// Add some dummy effects data
//m_widget->effectMakerModel()->setEffects({"Drop Shadow", "Colorize", "Fast Blue"}); // TODO
m_widget->effectMakerNodesModel()->loadModel();
m_widget->initView();
}
void EffectMakerView::modelAboutToBeDetached(Model *model)
{
AbstractView::modelAboutToBeDetached(model);
}
} // namespace QmlDesigner

View File

@@ -1,34 +0,0 @@
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#pragma once
#include "abstractview.h"
#include <QPointer>
namespace QmlDesigner {
class EffectMakerWidget;
class EffectMakerView : public AbstractView
{
public:
EffectMakerView(ExternalDependenciesInterface &externalDependencies);
~EffectMakerView() override;
bool hasWidget() const override;
WidgetInfo widgetInfo() override;
// AbstractView
void modelAttached(Model *model) override;
void modelAboutToBeDetached(Model *model) override;
private:
void customNotification(const AbstractView *view, const QString &identifier,
const QList<ModelNode> &nodeList, const QList<QVariant> &data) override;
QPointer<EffectMakerWidget> m_widget;
};
} // namespace QmlDesigner

View File

@@ -51,7 +51,7 @@ private:
PropertyEditorValue *m_editorValue = nullptr;
};
class PropertyEditorValue : public QObject
class QMLDESIGNERCORE_EXPORT PropertyEditorValue : public QObject
{
Q_OBJECT

View File

@@ -9,7 +9,7 @@
namespace QmlDesigner {
class QmlModelNodeProxy : public QObject
class QMLDESIGNERCORE_EXPORT QmlModelNodeProxy : public QObject
{
Q_OBJECT

View File

@@ -6,7 +6,6 @@
#include "collectionwidget.h"
#include "designmodewidget.h"
#include "edit3dwidget.h"
#include "effectmakerwidget.h"
#include "formeditorwidget.h"
#include "materialbrowserwidget.h"
#include "navigatorwidget.h"
@@ -99,18 +98,6 @@ void TextEditorContext::contextHelp(const HelpCallback &callback) const
qobject_cast<TextEditorWidget *>(m_widget)->contextHelp(callback);
}
EffectMakerContext::EffectMakerContext(QWidget *widget)
: IContext(widget)
{
setWidget(widget);
setContext(Core::Context(Constants::C_QMLEFFECTMAKER, Constants::C_QT_QUICK_TOOLS_MENU));
}
void EffectMakerContext::contextHelp(const HelpCallback &callback) const
{
qobject_cast<EffectMakerWidget *>(m_widget)->contextHelp(callback);
}
CollectionEditorContext::CollectionEditorContext(QWidget *widget)
: IContext(widget)
{

View File

@@ -74,15 +74,6 @@ public:
void contextHelp(const Core::IContext::HelpCallback &callback) const override;
};
class EffectMakerContext : public Core::IContext
{
Q_OBJECT
public:
EffectMakerContext(QWidget *widget);
void contextHelp(const Core::IContext::HelpCallback &callback) const override;
};
class CollectionEditorContext : public Core::IContext
{
Q_OBJECT