Summary: | stops for vector shape gradient fill don't work correctly | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Nicollas Plate <nicollas.plate> |
Component: | Tools/Vector | Assignee: | vanyossi <ghevan> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | ghevan, halla, mirandagraphic |
Priority: | NOR | ||
Version: | 5.0.2 | ||
Target Milestone: | --- | ||
Platform: | Microsoft Windows | ||
OS: | Microsoft Windows | ||
Latest Commit: | https://invent.kde.org/graphics/krita/commit/de938cfc89875c360a0e161b5de723739eedf2cc | Version Fixed In: | |
Sentry Crash Report: |
Description
Nicollas Plate
2022-02-04 16:57:44 UTC
*** Bug 449607 has been marked as a duplicate of this bug. *** I can reproduce this only on Windows, not on Linux. Is there any prediction of the fix for this bug? This is a free software project. That enables you to fix the bug yourself. You could also offer to fund the fix (60 euros/hour, no estimation available of the number of hours needed), which will give it priority. Otherwise, it's just one of the 633 open bug reports. Tested in win10 and i see the same reported results. I can't use the stops as the bug reports. If i select a preset, i can leave it as it is, but if i modify any stop it becomes a gradient with 2 stops and goes from FG color100%op. to transparent. I will test it also in Linux Kubuntu. I hope this helps. A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/1491 Git commit fc362afcb2954d10f8391f803b44a4c2ac88de39 by L. E. Segovia, on behalf of Sharaf Zaman. Committed on 28/06/2022 at 19:49. Pushed by lsegovia into branch 'master'. Bugfix: Gradient fill stops can't be changed for vector objects What resulted in the bug is firing of selectionContentChanged() signal after the setNewGradientBackgroundToShape() routine had returned -- because the blocker for d->shapeChangedAcyclicConnector had already been destroyed. And when the shapeChanged method was called, it sent down the call assuming gradient was changed (which would reset value of m_selectedStop) when it wasn't. Now, we remove signal connections for selectionChanged() and selectionContentChanged(), because they're delivered asynchronously and without proper guards (the signal blocker work only in some cases, e.g on windows they always fire once the guard lifetime has ended). Removing these signals is safe because we now use resourceManager signals to update the UI once the underlying resource has changed. Related: bug 455794, bug 447464, bug 453331 M +2 -20 libs/ui/widgets/KoFillConfigWidget.cpp https://invent.kde.org/graphics/krita/commit/fc362afcb2954d10f8391f803b44a4c2ac88de39 Git commit de938cfc89875c360a0e161b5de723739eedf2cc by L. E. Segovia, on behalf of Sharaf Zaman. Committed on 28/06/2022 at 19:52. Pushed by lsegovia into branch 'krita/5.1'. Bugfix: Gradient fill stops can't be changed for vector objects What resulted in the bug is firing of selectionContentChanged() signal after the setNewGradientBackgroundToShape() routine had returned -- because the blocker for d->shapeChangedAcyclicConnector had already been destroyed. And when the shapeChanged method was called, it sent down the call assuming gradient was changed (which would reset value of m_selectedStop) when it wasn't. Now, we remove signal connections for selectionChanged() and selectionContentChanged(), because they're delivered asynchronously and without proper guards (the signal blocker work only in some cases, e.g on windows they always fire once the guard lifetime has ended). Removing these signals is safe because we now use resourceManager signals to update the UI once the underlying resource has changed. Related: bug 455794, bug 447464, bug 453331 (cherry picked from commit fc362afcb2954d10f8391f803b44a4c2ac88de39) M +2 -20 libs/ui/widgets/KoFillConfigWidget.cpp https://invent.kde.org/graphics/krita/commit/de938cfc89875c360a0e161b5de723739eedf2cc |