Hello all,
I’m setting up a hot reloader for my plugin UI - basically an XML with components descriptions that in release builds gets loaded from a BinaryData resource and in debug (desktop) builds gets loaded from the corresponding xml file which is watched for changes.
My current problem is: upon reloading the plugin sub-components when the layout file changes, I don’t get a ParentHierarchyChanged call on the components across the structure (I get it only the first time I build it)
Structure and flow is the following:
(1) first time build
PluginEditor
-> MyAppLayoutRoot (via Component::addAndMakeVisible)
-> Layout components Tree Level 1 (via Component::addAndMakeVisible where parent is the parent node not the root)
….
—> Layout components Tree Level N (via Component::addAndMakeVisible where parent is the parent node not the root)
(2) the layout tree xml changes and gets reloaded
MyAppLayoutRoot.removeAllChildren();
MyAppLayoutRoot.deleteAllChildren();
MyAppLayoutRoot.rebuildLayout() ; // recreates the components and rebuilds the tree via AddAndMakeVisible calls
I’m wondering:
- is Component::ParentHierarchyChanged not getting recalled (a) something normal or (b) something due to the way I’m rebuilding the Component structure the second time around ?
- how can I get this component api to be called every time I build the layout ?