Implement thread-safe "Convert Color Space" and "Assign Profile" actions
Convert Image Color Space
The patch basically ports image color space conversion into strokes system. The crash happened because updates were initiated right when the visitor was changing layers. With the strokes, this problem should be resolved.
The patch also changed UIX: now 'Image->Properties->Color Space' changes the entire color space of the image, but not only color space of the root node (projection).
Assign Profile
The old implementation used non-thread-safe code, which could crash easily.
Test Plan
- Create a complex image with
- clone layers
- transform masks
- colorize masks
- shape layers (not tested)
- Try to convert it into weird color spaces, like CMYK and GRAYA
- Try to assign different profiles, e.g. rec709-g10 or rec2020-g10 (you should use some Python plugin for that)
Assign and Convert actions should work as expected, no crashes should happen (especially in Colorize Mask).
Formalities Checklist
-
I confirmed this builds. -
I confirmed Krita ran and the relevant functions work. -
I tested the relevant unit tests and can confirm they are not broken. (If not possible, don't hesitate to ask for help!) -
I made sure my commits build individually and have good descriptions as per KDE guidelines. -
I made sure my code conforms to the standards set in the HACKING file. -
I can confirm the code is licensed and attributed appropriately, and that unattributed code is mine, as per KDE Licensing Policy.
Edited by Dmitry Kazakov