Right now the two are separate and it seems to be a detriment. A separate data structure is being used to track each component and their associated history, and it is easy to miss some code and have that data structure and what is shown in the GUI get out of sync. What the user sees in the GUI needs to be the ground truth or things get very confusing, very fast. Once everything is in the Components tree, that tree will be the data structure for all components and their histories, and can be walked during a render to get the resulting script. It will also be possible to add a setting to have the History items collapsed under their component by default, keeping things clean for new users.
This is going to be tackled early on in this release because it should help address #60 and #61 without adding more temporary code to keep the back end data structure in sync.
There is also currently no way to remove a component, which is an oversight that will be corrected as part of this implementation.
Right now the two are separate and it seems to be a detriment. A separate data structure is being used to track each component and their associated history, and it is easy to miss some code and have that data structure and what is shown in the GUI get out of sync. What the user sees in the GUI needs to be the ground truth or things get very confusing, very fast. Once everything is in the Components tree, that tree will be the data structure for all components and their histories, and can be walked during a render to get the resulting script. It will also be possible to add a setting to have the History items collapsed under their component by default, keeping things clean for new users.
This is going to be tackled early on in this release because it should help address #60 and #61 without adding more temporary code to keep the back end data structure in sync.
There is also currently no way to remove a component, which is an oversight that will be corrected as part of this implementation.