summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2022-11-03 17:19:48 +0100
committerTim Jenssen <tim.jenssen@qt.io>2022-11-04 16:47:25 +0000
commitcdc0f72ecfb0f8ccb9cf17222abe9476eda8ce8c (patch)
tree1e3097e92db5dad2be954071aa9f8d3f603bdc0e
parentc299d95ea7204f0716b6f464c9a92e187a7f31a2 (diff)
downloadqt-creator-cdc0f72ecfb0f8ccb9cf17222abe9476eda8ce8c.tar.gz
QmlDesigner: Add option for layer.effect when creating effects
(cherry picked from commit 3726caa5de1d5c250028ef6a3eaf07a5e05cc57c) Task-number: QDS-8162 Change-Id: I9b98d4ae264f4b6a703eb5bfdeb6e1fb546e5a37 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
-rw-r--r--src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp24
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());