From 6bdaac3b20718e3d420c79803ed60541de031209 Mon Sep 17 00:00:00 2001 From: Mahmoud Badri Date: Wed, 17 Jan 2024 19:36:03 +0200 Subject: [PATCH] EffectMaker: Don't clear effect name when clearing the nodes list Change-Id: Ic805d72b2600db88dab9887552faa8aef19423d7 Reviewed-by: Qt CI Patch Build Bot Reviewed-by: Miikka Heikkinen --- .../qmldesigner/effectMakerQmlSources/EffectMaker.qml | 4 ++-- src/plugins/effectmakernew/effectmakermodel.cpp | 9 ++++++--- src/plugins/effectmakernew/effectmakermodel.h | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMaker.qml b/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMaker.qml index d3ccb36a749..d86aaad27d2 100644 --- a/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMaker.qml +++ b/share/qtcreator/qmldesigner/effectMakerQmlSources/EffectMaker.qml @@ -65,12 +65,12 @@ Item { EffectMakerTopBar { onAddClicked: { - root.onSaveChangesCallback = () => { EffectMakerBackend.effectMakerModel.clear() } + root.onSaveChangesCallback = () => { EffectMakerBackend.effectMakerModel.clear(true) } if (EffectMakerBackend.effectMakerModel.hasUnsavedChanges) saveChangesDialog.open() else - EffectMakerBackend.effectMakerModel.clear() + EffectMakerBackend.effectMakerModel.clear(true) } onSaveClicked: { diff --git a/src/plugins/effectmakernew/effectmakermodel.cpp b/src/plugins/effectmakernew/effectmakermodel.cpp index 79fa3814d5f..8542b72d2ad 100644 --- a/src/plugins/effectmakernew/effectmakermodel.cpp +++ b/src/plugins/effectmakernew/effectmakermodel.cpp @@ -192,14 +192,17 @@ void EffectMakerModel::removeNode(int idx) emit nodesChanged(); } -void EffectMakerModel::clear() +void EffectMakerModel::clear(bool clearName) { beginResetModel(); qDeleteAll(m_nodes); m_nodes.clear(); endResetModel(); + + if (clearName) + setCurrentComposition(""); + setHasUnsavedChanges(!m_currentComposition.isEmpty()); - setCurrentComposition(""); setIsEmpty(true); emit nodesChanged(); @@ -683,7 +686,7 @@ void EffectMakerModel::saveComposition(const QString &name) void EffectMakerModel::openComposition(const QString &path) { - clear(); + clear(true); const QString effectName = QFileInfo(path).baseName(); setCurrentComposition(effectName); diff --git a/src/plugins/effectmakernew/effectmakermodel.h b/src/plugins/effectmakernew/effectmakermodel.h index a25a4e40913..1bbac9cd55b 100644 --- a/src/plugins/effectmakernew/effectmakermodel.h +++ b/src/plugins/effectmakernew/effectmakermodel.h @@ -66,7 +66,7 @@ public: Q_INVOKABLE void moveNode(int fromIdx, int toIdx); Q_INVOKABLE void removeNode(int idx); - Q_INVOKABLE void clear(); + Q_INVOKABLE void clear(bool clearName = false); Q_INVOKABLE void assignToSelected(); Q_INVOKABLE QString getUniqueEffectName() const;