1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Added method ValueTree::copyPropertiesAndChildrenFrom()

This commit is contained in:
jules 2018-06-25 16:36:36 +01:00
parent 2c12212b96
commit eb093411fc
2 changed files with 43 additions and 19 deletions

View file

@ -665,6 +665,28 @@ ValueTree ValueTree::createCopy() const
return ValueTree (createCopyIfNotNull (object.get()));
}
void ValueTree::copyPropertiesFrom (const ValueTree& source, UndoManager* undoManager)
{
jassert (object != nullptr || source.object == nullptr); // Trying to add properties to a null ValueTree will fail!
if (source.object == nullptr)
removeAllProperties (undoManager);
else if (object != nullptr)
object->copyPropertiesFrom (*(source.object), undoManager);
}
void ValueTree::copyPropertiesAndChildrenFrom (const ValueTree& source, UndoManager* undoManager)
{
jassert (object != nullptr || source.object == nullptr); // Trying to copy to a null ValueTree will fail!
copyPropertiesFrom (source, undoManager);
removeAllChildren (undoManager);
if (object != nullptr && source.object != nullptr)
for (auto& child : source.object->children)
object->addChild (createCopyIfNotNull (child), -1, undoManager);
}
bool ValueTree::hasType (const Identifier& typeName) const noexcept
{
return object != nullptr && object->type == typeName;
@ -769,16 +791,6 @@ Identifier ValueTree::getPropertyName (int index) const noexcept
: object->properties.getName (index);
}
void ValueTree::copyPropertiesFrom (const ValueTree& source, UndoManager* undoManager)
{
jassert (object != nullptr || source.object == nullptr); // Trying to add properties to a null ValueTree will fail!
if (source.object == nullptr)
removeAllProperties (undoManager);
else if (object != nullptr)
object->copyPropertiesFrom (*(source.object), undoManager);
}
int ValueTree::getReferenceCount() const noexcept
{
return object != nullptr ? object->getReferenceCount() : 0;