Spine-Toolbox
Spine-Toolbox copied to clipboard
Project refactoring: disconnecting UI and Engine code from project data
Currently, SpineToolboxProject
, ProjectItem
and other project related classes have tight connections with UI code. The lack of separation between UI and business logic ultimately results in code duplication between Toolbox GUI, headless mode and Engine, and makes it close to impossible to programmatically create and modify Toolbox projects. Also, unit tests often need a ToolboxUI
instance complicating testing considerably.
The goal of this refactoring is to separate "data" from GUI and Engine code in such a way that no Qt is required to build and modify a project. "Adapters" will then be developed that wrap the data-only classes and glue them to Toolbox GUI. On engine side, such adapters are needed to replace the execution items.