From f1c441e0c4a45110cd301d5bc17ad8ae844d6c7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Micha=C3=ABl=20Celerier?= Date: Tue, 19 Nov 2024 09:15:12 -0500 Subject: [PATCH] [cables] Do not save cables twice --- .../Dataflow/Commands/CableHelpers.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/plugins/score-plugin-scenario/Dataflow/Commands/CableHelpers.cpp b/src/plugins/score-plugin-scenario/Dataflow/Commands/CableHelpers.cpp index e4f81ae84f..d34447635b 100644 --- a/src/plugins/score-plugin-scenario/Dataflow/Commands/CableHelpers.cpp +++ b/src/plugins/score-plugin-scenario/Dataflow/Commands/CableHelpers.cpp @@ -51,7 +51,9 @@ getCablesInChildObjects(QObjectList objs, const score::DocumentContext& ctx) { for(auto& cbl : p->cables()) { - cables.push_back(&cbl.find(ctx)); + auto* c = &cbl.find(ctx); + if(!ossia::contains(cables, c)) + cables.push_back(c); } } @@ -83,7 +85,12 @@ SerializedCables saveCables(QObjectList objs, const score::DocumentContext& ctx) for(auto& cbl : p->cables()) { Process::Cable& c = cbl.find(ctx); - cables.push_back({c.id(), c.toCableData()}); + auto it + = ossia::find_if(cables, [&c](auto& pair) { return pair.first == c.id(); }); + if(it == cables.end()) + { + cables.push_back({c.id(), c.toCableData()}); + } } }