aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/effectmakernew/effectmakermodel.cpp13
-rw-r--r--src/plugins/effectmakernew/effectmakermodel.h2
-rw-r--r--src/plugins/effectmakernew/effectmakerview.cpp4
3 files changed, 18 insertions, 1 deletions
diff --git a/src/plugins/effectmakernew/effectmakermodel.cpp b/src/plugins/effectmakernew/effectmakermodel.cpp
index 293d1311b7d..da8403108f3 100644
--- a/src/plugins/effectmakernew/effectmakermodel.cpp
+++ b/src/plugins/effectmakernew/effectmakermodel.cpp
@@ -168,6 +168,19 @@ const QString &EffectMakerModel::qmlComponentString() const
return m_qmlComponentString;
}
+void EffectMakerModel::clear()
+{
+ if (m_nodes.isEmpty())
+ return;
+
+ for (CompositionNode *node : std::as_const(m_nodes))
+ delete node;
+
+ m_nodes.clear();
+
+ setIsEmpty(true);
+}
+
const QList<Uniform *> EffectMakerModel::allUniforms()
{
QList<Uniform *> uniforms = {};
diff --git a/src/plugins/effectmakernew/effectmakermodel.h b/src/plugins/effectmakernew/effectmakermodel.h
index 223656d382e..8f34dc8fe43 100644
--- a/src/plugins/effectmakernew/effectmakermodel.h
+++ b/src/plugins/effectmakernew/effectmakermodel.h
@@ -70,6 +70,8 @@ public:
const QString &qmlComponentString() const;
+ void clear();
+
Q_INVOKABLE void updateQmlComponent();
Q_INVOKABLE void resetEffectError(int type);
diff --git a/src/plugins/effectmakernew/effectmakerview.cpp b/src/plugins/effectmakernew/effectmakerview.cpp
index 4bb68f358a4..40ba4987e67 100644
--- a/src/plugins/effectmakernew/effectmakerview.cpp
+++ b/src/plugins/effectmakernew/effectmakerview.cpp
@@ -3,8 +3,9 @@
#include "effectmakerview.h"
-#include "effectmakerwidget.h"
+#include "effectmakermodel.h"
#include "effectmakernodesmodel.h"
+#include "effectmakerwidget.h"
#include "nodeinstanceview.h"
#include "qmldesignerconstants.h"
@@ -71,6 +72,7 @@ void EffectMakerView::modelAttached(QmlDesigner::Model *model)
AbstractView::modelAttached(model);
m_widget->effectMakerNodesModel()->loadModel();
+ m_widget->effectMakerModel()->clear();
m_widget->initView();
}