aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMahmoud Badri <[email protected]>2023-10-13 15:11:43 +0300
committerMahmoud Badri <[email protected]>2023-10-13 12:36:26 +0000
commitc3e4258b78a1b1b72c935ff07d1ee99f8ded1522 (patch)
tree983841d7610019fd732951e265466804d8e6fcd6
parent5c68f4fa219ff41cb4a8c292fbc1a0a89f0b1ec4 (diff)
EffectMaker: Clear composition nodes on view attach
Fixes: QDS-10513 Change-Id: I3d2b1369c4e33fb6e21311c59a92625437382602 Reviewed-by: Qt CI Patch Build Bot <[email protected]> Reviewed-by: Miikka Heikkinen <[email protected]>
-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();
}