diff options
-rw-r--r-- | src/plugins/effectmakernew/effectmakermodel.cpp | 13 | ||||
-rw-r--r-- | src/plugins/effectmakernew/effectmakermodel.h | 2 | ||||
-rw-r--r-- | src/plugins/effectmakernew/effectmakerview.cpp | 4 |
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(); } |