diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2022-11-03 17:19:48 +0100 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2022-11-03 16:59:17 +0000 |
commit | 3726caa5de1d5c250028ef6a3eaf07a5e05cc57c (patch) | |
tree | cbbaf157ed175cdbfdadb40af4bdc88949aa1702 | |
parent | 318a2aff2f21b03ba7564055f168095101269cb8 (diff) |
QmlDesigner: Add option for layer.effect when creating effects
Task-number: QDS-8162
Change-Id: I9b98d4ae264f4b6a703eb5bfdeb6e1fb546e5a37
Reviewed-by: <amr.elsayed@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
-rw-r--r-- | src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp index 09a94719f4..e9055c1933 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp @@ -39,6 +39,8 @@ #include "modelmerger.h" #include "rewritingexception.h" +#include <coreplugin/icore.h> + #include <QUrl> #include <QPlainTextEdit> #include <QFileInfo> @@ -181,12 +183,22 @@ QmlItemNode QmlItemNode::createQmlItemNodeFromFont(AbstractView *view, return newQmlItemNode; } +static bool useLayerEffect() +{ + QSettings *settings = Core::ICore::settings(); + const QString layerEffectEntry = "QML/Designer/UseLayerEffect"; + + return settings->value(layerEffectEntry, true).toBool(); +} + QmlItemNode QmlItemNode::createQmlItemNodeForEffect(AbstractView *view, const QmlItemNode &parentNode, const QString &effectName) { QmlItemNode newQmlItemNode; + const bool layerEffect = useLayerEffect(); + QmlDesigner::Import import = Import::createLibraryImport("Effects." + effectName, "1.0"); try { if (!view->model()->hasImport(import, true, true)) @@ -197,11 +209,17 @@ QmlItemNode QmlItemNode::createQmlItemNodeForEffect(AbstractView *view, TypeName type(effectName.toUtf8()); newQmlItemNode = QmlItemNode(view->createModelNode(type, 1, 0)); - NodeAbstractProperty parentProperty = parentNode.defaultNodeAbstractProperty(); + NodeAbstractProperty parentProperty = layerEffect + ? parentNode.nodeAbstractProperty("layer.effect") + : parentNode.defaultNodeAbstractProperty(); parentProperty.reparentHere(newQmlItemNode); - newQmlItemNode.modelNode().bindingProperty("source").setExpression("parent"); - newQmlItemNode.modelNode().bindingProperty("anchors.fill").setExpression("parent"); + if (!layerEffect) { + newQmlItemNode.modelNode().bindingProperty("source").setExpression("parent"); + newQmlItemNode.modelNode().bindingProperty("anchors.fill").setExpression("parent"); + } else { + parentNode.modelNode().variantProperty("layer.enabled").setValue(true); + } QTC_ASSERT(newQmlItemNode.isValid(), return QmlItemNode()); |