Skip to content

Commit

Permalink
Fix: lost link when loading a Multiplex > Set list value command
Browse files Browse the repository at this point in the history
member 'ghostData' from ParamLinkContainer was mistakenly used (and overwritten) in GenericControllableCommand.
  • Loading branch information
Tom Magnier committed Apr 12, 2024
1 parent 245babf commit 0ce6d5f
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 13 deletions.
20 changes: 10 additions & 10 deletions Source/Common/ParameterLink/ParameterLink.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ ParamLinkContainer::ParamLinkContainer(const String& name, Multiplex* multiplex)
MultiplexTarget(multiplex),
paramsCanBeLinked(true),
canLinkToMapping(true),
ghostData(new DynamicObject())
linksGhostData(new DynamicObject())
{
scriptObject.getDynamicObject()->setMethod("linkParamToMappingIndex", &ParamLinkContainer::linkParamToMappingIndexFromScript);
}
Expand All @@ -452,9 +452,9 @@ void ParamLinkContainer::onControllableAdded(Controllable* c)
paramLinkMap.set(p, pLink);
linkParamMap.set(pLink, p);

if (ghostData.hasProperty(pLink->parameter->shortName))
if (linksGhostData.hasProperty(pLink->parameter->shortName))
{
pLink->loadJSONData(ghostData.getProperty(pLink->parameter->shortName, var()));
pLink->loadJSONData(linksGhostData.getProperty(pLink->parameter->shortName, var()));
}
}
}
Expand All @@ -468,8 +468,8 @@ void ParamLinkContainer::onControllableRemoved(Controllable* c)
{
if (ParameterLink* pLink = paramLinkMap[p])
{
if (ghostData.isVoid()) ghostData = new DynamicObject();
ghostData.getDynamicObject()->setProperty(pLink->parameter->shortName, pLink->getJSONData());
if (linksGhostData.isVoid()) linksGhostData = new DynamicObject();
linksGhostData.getDynamicObject()->setProperty(pLink->parameter->shortName, pLink->getJSONData());

pLink->removeParameterLinkListener(this);

Expand Down Expand Up @@ -593,15 +593,15 @@ var ParamLinkContainer::getJSONData()

void ParamLinkContainer::loadJSONDataInternal(var data)
{
ghostData = data.getProperty("paramLinks", var()).clone();
linksGhostData = data.getProperty("paramLinks", var()).clone();
for (auto& pLink : paramLinks)
{
if (pLink->parameter == nullptr || pLink->parameter.wasObjectDeleted()) continue;

if (ghostData.isObject() && ghostData.hasProperty(pLink->parameter->shortName))
if (linksGhostData.isObject() && linksGhostData.hasProperty(pLink->parameter->shortName))
{
pLink->loadJSONData(ghostData.getProperty(pLink->parameter->shortName, var()));
ghostData.getDynamicObject()->removeProperty(pLink->parameter->shortName);
pLink->loadJSONData(linksGhostData.getProperty(pLink->parameter->shortName, var()));
linksGhostData.getDynamicObject()->removeProperty(pLink->parameter->shortName);
}
else
{
Expand All @@ -616,4 +616,4 @@ InspectableEditor* ParamLinkContainer::getEditorInternal(bool isRoot, Array<Insp
if (!paramsCanBeLinked) return new GenericControllableContainerEditor(this, isRoot);

return new ParamLinkContainerEditor(this, isRoot, true);
}
}
4 changes: 2 additions & 2 deletions Source/Common/ParameterLink/ParameterLink.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ class ParamLinkContainer :
bool paramsCanBeLinked;
bool canLinkToMapping;

var ghostData;
var linksGhostData;

virtual void onControllableAdded(Controllable* c) override;
virtual void onControllableRemoved(Controllable* c) override;
Expand Down Expand Up @@ -168,4 +168,4 @@ class ParamLinkContainer :
virtual void loadJSONDataInternal(var data) override;

virtual InspectableEditor* getEditorInternal(bool isRoot, Array<Inspectable*> inspectables = Array<Inspectable*>()) override;
};
};
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ class GenericControllableCommand :

WeakReference<Parameter> value;
var dataToLoad;
var ghostValueData; // to keep when target is lost
var ghostData;
var ghostValueData; // to keep when target is lost
var ghostValueParamLinkData;
var ghostOperator;
var ghostComponent;
Expand Down

0 comments on commit 0ce6d5f

Please sign in to comment.