forked from qt-creator/qt-creator
QmlDesigner: Add option for layer.effect when creating effects
(cherry picked from commit 3726caa5de
)
Task-number: QDS-8162
Change-Id: I9b98d4ae264f4b6a703eb5bfdeb6e1fb546e5a37
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
committed by
Tim Jenssen
parent
c299d95ea7
commit
cdc0f72ecf
@@ -39,6 +39,8 @@
|
|||||||
#include "modelmerger.h"
|
#include "modelmerger.h"
|
||||||
#include "rewritingexception.h"
|
#include "rewritingexception.h"
|
||||||
|
|
||||||
|
#include <coreplugin/icore.h>
|
||||||
|
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
#include <QPlainTextEdit>
|
#include <QPlainTextEdit>
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
@@ -181,12 +183,22 @@ QmlItemNode QmlItemNode::createQmlItemNodeFromFont(AbstractView *view,
|
|||||||
return newQmlItemNode;
|
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,
|
QmlItemNode QmlItemNode::createQmlItemNodeForEffect(AbstractView *view,
|
||||||
const QmlItemNode &parentNode,
|
const QmlItemNode &parentNode,
|
||||||
const QString &effectName)
|
const QString &effectName)
|
||||||
{
|
{
|
||||||
QmlItemNode newQmlItemNode;
|
QmlItemNode newQmlItemNode;
|
||||||
|
|
||||||
|
const bool layerEffect = useLayerEffect();
|
||||||
|
|
||||||
QmlDesigner::Import import = Import::createLibraryImport("Effects." + effectName, "1.0");
|
QmlDesigner::Import import = Import::createLibraryImport("Effects." + effectName, "1.0");
|
||||||
try {
|
try {
|
||||||
if (!view->model()->hasImport(import, true, true))
|
if (!view->model()->hasImport(import, true, true))
|
||||||
@@ -197,11 +209,17 @@ QmlItemNode QmlItemNode::createQmlItemNodeForEffect(AbstractView *view,
|
|||||||
|
|
||||||
TypeName type(effectName.toUtf8());
|
TypeName type(effectName.toUtf8());
|
||||||
newQmlItemNode = QmlItemNode(view->createModelNode(type, 1, 0));
|
newQmlItemNode = QmlItemNode(view->createModelNode(type, 1, 0));
|
||||||
NodeAbstractProperty parentProperty = parentNode.defaultNodeAbstractProperty();
|
NodeAbstractProperty parentProperty = layerEffect
|
||||||
|
? parentNode.nodeAbstractProperty("layer.effect")
|
||||||
|
: parentNode.defaultNodeAbstractProperty();
|
||||||
parentProperty.reparentHere(newQmlItemNode);
|
parentProperty.reparentHere(newQmlItemNode);
|
||||||
|
|
||||||
newQmlItemNode.modelNode().bindingProperty("source").setExpression("parent");
|
if (!layerEffect) {
|
||||||
newQmlItemNode.modelNode().bindingProperty("anchors.fill").setExpression("parent");
|
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());
|
QTC_ASSERT(newQmlItemNode.isValid(), return QmlItemNode());
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user