You wrote "The C++ code updates those variables and calls a function in main.qml", so I assumed you meant calling a QML function from C++.
If you are no longer doing that hack you should be fine
The animation's own state is probably false, but since your property never is false ever again, it never changes when your function sets it to true, so the binding doesn't get reevaluated.
My suggestion would be to either reset the property in the animation's onStopped handler, or to remove the property and calling start() on the animation instead.
Cheers,
_
Bookmarks