83 : targetTree (
other.targetTree),
84 targetProperty (
other.targetProperty),
85 undoManager (
other.undoManager),
86 defaultValue (
other.defaultValue),
87 delimiter (
other.delimiter)
101 return delimitedStringToVarArray (targetTree[targetProperty].toString());
103 return targetTree[targetProperty];
150 if (
auto* array = newValue.
getArray())
160 referToWithDefault (tree, property,
um,
var(), {});
168 referToWithDefault (tree, property,
um,
defaultVal, {});
190 referToWithDefault (
other.targetTree,
other.targetProperty,
other.undoManager,
198 ValueTree targetTree;
199 Identifier targetProperty;
200 UndoManager* undoManager =
nullptr;
206 void referToWithDefault (
const ValueTree& v,
const Identifier& i, UndoManager* um,
207 const var& defaultVal, StringRef del)
212 defaultValue = defaultVal;
217 String varArrayToDelimitedString (
const Array<var>& input)
const noexcept
221 jassert (delimiter.isNotEmpty());
223 StringArray elements;
225 for (
auto& v : input)
226 elements.add (v.toString());
228 return elements.joinIntoString (delimiter);
231 Array<var> delimitedStringToVarArray (StringRef input)
const noexcept
235 for (
auto t : StringArray::fromTokens (input, delimiter, {}))
bool isNotEmpty() const noexcept
Value getPropertyAsValue(const Identifier &name, UndoManager *undoManager, bool shouldUpdateSynchronously=false)
ValueTree & setProperty(const Identifier &name, const var &newValue, UndoManager *undoManager)
void removeProperty(const Identifier &name, UndoManager *undoManager)
bool hasProperty(const Identifier &name) const noexcept
void resetToDefault() noexcept
ValueWithDefault(ValueTree &tree, const Identifier &propertyID, UndoManager *um, const var &defaultToUse)
Value getPropertyAsValue()
Identifier & getPropertyID() noexcept
ValueWithDefault(const ValueWithDefault &other)
ValueWithDefault & operator=(const var &newValue)
ValueTree & getValueTree() noexcept
bool isUsingDefault() const
void referTo(ValueTree &tree, const Identifier &property, UndoManager *um)
void setValue(const var &newValue, UndoManager *undoManagerToUse)
void setDefault(const var &newDefault)
std::function< void()> onDefaultChange
void referTo(ValueTree &tree, const Identifier &property, UndoManager *um, const var &defaultVal)
ValueWithDefault(ValueTree &tree, const Identifier &propertyID, UndoManager *um, const var &defaultToUse, StringRef arrayDelimiter)
UndoManager * getUndoManager() noexcept
ValueWithDefault()=default
ValueWithDefault(ValueTree &tree, const Identifier &propertyID, UndoManager *um)
Array< var > * getArray() const noexcept