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.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp
index 6580c4005b..09a94719f4 100644
--- a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp
+++ b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp
@@ -181,6 +181,33 @@ QmlItemNode QmlItemNode::createQmlItemNodeFromFont(AbstractView *view,
return newQmlItemNode;
}
+QmlItemNode QmlItemNode::createQmlItemNodeForEffect(AbstractView *view,
+ const QmlItemNode &parentNode,
+ const QString &effectName)
+{
+ QmlItemNode newQmlItemNode;
+
+ QmlDesigner::Import import = Import::createLibraryImport("Effects." + effectName, "1.0");
+ try {
+ if (!view->model()->hasImport(import, true, true))
+ view->model()->changeImports({import}, {});
+ } catch (const Exception &e) {
+ QTC_ASSERT(false, return QmlItemNode());
+ }
+
+ TypeName type(effectName.toUtf8());
+ newQmlItemNode = QmlItemNode(view->createModelNode(type, 1, 0));
+ NodeAbstractProperty parentProperty = parentNode.defaultNodeAbstractProperty();
+ parentProperty.reparentHere(newQmlItemNode);
+
+ newQmlItemNode.modelNode().bindingProperty("source").setExpression("parent");
+ newQmlItemNode.modelNode().bindingProperty("anchors.fill").setExpression("parent");
+
+ QTC_ASSERT(newQmlItemNode.isValid(), return QmlItemNode());
+
+ return newQmlItemNode;
+}
+
bool QmlItemNode::isValid() const
{
return isValidQmlItemNode(modelNode());