Bug 434828

Summary: Shape Fill gradient colors changing to stroke gradient color
Product: [Applications] krita Reporter: JamellMoore <jamell>
Component: Tools/VectorAssignee: sh_zam <shzam>
Status: RESOLVED FIXED    
Severity: normal CC: halla, shzam
Priority: NOR    
Version: 4.4.2   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Microsoft Windows   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description JamellMoore 2021-03-23 10:55:24 UTC
SUMMARY

Shape Fill gradient colors are changing to a stroke gradient color.


STEPS TO REPRODUCE
1. Create a shape on a vector layer
2. Assign a gradient to the stroke
3. Try to assign a gradient to the fill with different colors. You will see that the color reverts

OBSERVED RESULT

If a shape has a gradient on the stroke, colors of the fill gradient will revert to the color of the last selected color in the stroke gradient. This makes it impossible to use fill gradients at the same time as stroke gradients.

EXPECTED RESULT

I expect the fill gradient colors to remain the ones that I have chosen with the color picker. NOT change to the colors in the stroke gradient.

SOFTWARE/OS VERSIONS
Windows: 10.0.19042


ADDITIONAL INFO

I would say this is a color picking issue but the gradients are tool options on the `Select Shapes Tool`. Hence the chosen Component - `Tools\Selection`.
Comment 1 Halla Rempt 2021-03-23 10:58:21 UTC
Thank you for the report. I can confirm the issue.
Comment 2 Bug Janitor Service 2021-03-31 22:17:36 UTC
A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/784
Comment 3 Dmitry Kazakov 2021-04-01 05:49:34 UTC
Git commit 1fffa7e33fb5581e2f379dc77101aa712830bc01 by Dmitry Kazakov, on behalf of Sharaf Zaman.
Committed on 01/04/2021 at 05:48.
Pushed by dkazakov into branch 'master'.

Bugfix: Inconsistent stroke fill and shape fill

Problem: Embedding KoFillConfigWidget in KoStrokeConfigWidget created
codepaths which KisAcyclicSignalConnector doesn't block, which resulted
in an inconsistent behavior when both strokes and fill were used in a
shape.

Solution: By default if we hadn't embedded the widgets, signals from
ResourceManager would've been blocked by KisAcyclicSignalConnector when
we entered slotProposeCurrentColorToResourceManager. Since we don't, we
have to manually block events when we are in this method.
Related: bug 399127, bug 422204

M  +8    -0    libs/ui/widgets/KoFillConfigWidget.cpp

https://invent.kde.org/graphics/krita/commit/1fffa7e33fb5581e2f379dc77101aa712830bc01
Comment 4 sh_zam 2021-06-08 07:21:57 UTC
Git commit 69ac8b85e49bcd11d100a770549d4c89fecae5a8 by Sharaf Zaman.
Committed on 08/06/2021 at 07:21.
Pushed by szaman into branch 'krita/4.3'.

Bugfix: Inconsistent stroke fill and shape fill

Problem: Embedding KoFillConfigWidget in KoStrokeConfigWidget created
codepaths which KisAcyclicSignalConnector doesn't block, which resulted
in an inconsistent behavior when both strokes and fill were used in a
shape.

Solution: By default if we hadn't embedded the widgets, signals from
ResourceManager would've been blocked by KisAcyclicSignalConnector when
we entered slotProposeCurrentColorToResourceManager. Since we don't, we
have to manually block events when we are in this method.
Related: bug 399127, bug 422204
(cherry picked from commit 1fffa7e33fb5581e2f379dc77101aa712830bc01)

M  +8    -0    libs/ui/widgets/KoFillConfigWidget.cpp

https://invent.kde.org/graphics/krita/commit/69ac8b85e49bcd11d100a770549d4c89fecae5a8
Comment 5 sh_zam 2021-06-08 07:28:56 UTC
Git commit 27a6d0eebce1c9fa29ddd023d5df898da01f27e6 by Sharaf Zaman.
Committed on 08/06/2021 at 07:26.
Pushed by szaman into branch 'krita/4.4.5'.

Bugfix: Inconsistent stroke fill and shape fill

Problem: Embedding KoFillConfigWidget in KoStrokeConfigWidget created
codepaths which KisAcyclicSignalConnector doesn't block, which resulted
in an inconsistent behavior when both strokes and fill were used in a
shape.

Solution: By default if we hadn't embedded the widgets, signals from
ResourceManager would've been blocked by KisAcyclicSignalConnector when
we entered slotProposeCurrentColorToResourceManager. Since we don't, we
have to manually block events when we are in this method.
Related: bug 399127, bug 422204
(cherry picked from commit 1fffa7e33fb5581e2f379dc77101aa712830bc01)

M  +8    -0    libs/ui/widgets/KoFillConfigWidget.cpp

https://invent.kde.org/graphics/krita/commit/27a6d0eebce1c9fa29ddd023d5df898da01f27e6