Spine-Toolbox icon indicating copy to clipboard operation
Spine-Toolbox copied to clipboard

Project refactoring: disconnecting UI and Engine code from project data

Open soininen opened this issue 1 year ago • 0 comments

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.

soininen avatar Jun 22 '23 13:06 soininen