aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp')
-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());