LinwoodDev / Butterfly

🎨 Powerful, minimalistic, cross-platform, opensource note-taking app
https://butterfly.linwood.dev
GNU Affero General Public License v3.0
1.07k stars 77 forks source link

[Feature request]: Real layer support #728

Closed CodeDoctorDE closed 2 months ago

CodeDoctorDE commented 3 months ago

Is your feature request related to a problem? Please describe

Currently the layer feature doesn't relate to the rendering order. For a real drawing app, we need real layers that works like photoshop or other drawing software.

Describe your feature request!

Firstly, we convert the current layers to groups. They can be moved together and can be ungrouped. The default layer will be removed and will be replaced by a "unselected state" in the layer navigator page (now group navigator page).

The new layer feature will be have a new navigator page. The default layer will be "Layer 1". Layers can be added in the new navigator page. Internally the elements won't be saved in the page, instead in the page.layers[i].elements.

We should also add a button to the group "Move to new layer" to allow changing groups to the new layer feature.

Additional context

We can't convert the old layers to new layers because then we have a breaking change for the layer rendering.

Code of Conduct

CodeDoctorDE commented 2 months ago

Added in 2.2.0-beta.4 or 2.2.0-rc.0, I need to see if i want to make another beta