Many problems with the layers can't be fixed until the code that manages layers is cleaned up.
-
Part 1a removes passthrough functions and signals from the SPDesktop object and moves them to the Layer Model or Layer Manager as needed. -
Part 1b consolidates the LayerManager, LayerModel and layer-fncs into one file and one unique_ptr object. -
Part 1c move some functions from context-fcns and selection-chemistry and review LayerManager as an API. (not much moved)
Test plan (things that should be tested)
-
Changing layers (any method) results in widgets updating -
Drawing creates objects in selected layer -
CLI still works with the selection -
Selecting an object changes the layer to that object's layer -
Changing any aspect of the layer (name, locked, etc) updates the UI -
Select all does the expected things regards to layers -
Creating layer, moving layer and moving objects between layers works