This writes a file, but when I’ve read the tree, it doesn’t come up with the saved values that go along with the properties. The file looks like this opened in TextEditor:
Maybe start by learning about managing object lifetimes in c++ - the code you posted just leaks all your stream objects, so if all your code is written that way there could be any number of other errors in there.
This was really just code to start testing it out, I presumed by setting the stream to nullptr after using it, the lifetime would be ended. I’m not used to using stream objects at all.
By the look of the Text File, it looks like the property names are written, but not the values. Is this presumption correct? If so, how is the save not working?
ScopedPointer::release():
Removes the current object from this ScopedPointer without deleting it.
This will return the current object, and set the ScopedPointer to a null pointer.
You either do nothing, then the opject is deleted when the ScopedPointer object goes out of scope (hence the name), or you call fIs = nullptr; to enforce deletion at a specific point inside of the scope.
To your actual problem: does “isValid()” evaluate to true or not? ValueTree::getProperty() returns an object of type var, so look there how to use this values…