Bug 445206

Summary: MYPAINT: bugs of mypaint brush engine‘s “eraser” option
Product: [Applications] krita Reporter: thetwo <thetwo222>
Component: Brush enginesAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: emmetoneill.pdx
Priority: NOR    
Version: 5.0.0-beta2   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: picture

Description thetwo 2021-11-09 13:54:41 UTC
SUMMARY
I download Fizzyflower’s ULTIMATE MyPaint Brush Collection and test the brushes

When I select a brush that is not an eraser. After turning on "eraser", it loses the other parameters. Only the radius takes effect.
But when I select an eraser. When "eraser" is turned off, it is still an eraser.
This is also true for the mypaint brush that comes with krita, so we can exclude the effect of bundles
Comment 1 thetwo 2021-11-15 09:54:52 UTC
Created attachment 143569 [details]
picture
Comment 2 thetwo 2021-11-15 09:55:25 UTC
As a supplement: When I switch tools, "blending mode" becomes selectable. When I select "eraser", it can erase the image normally.
But when I check "eraser" in the brush interface, the "blending mode" will become "normal" and the brush will become a normal circle.
Maybe krita should adopt the original "eraser" parameters of mypaint, it is also more powerful and supports sensors and curves.
Comment 3 thetwo 2022-04-26 15:22:44 UTC
I found it again today when I was organizing mypaint brushes.
I have two guesses about it:
1. maybe it can support blending modes other than "eraser"
2. Maybe it would be better to use mypaint's own "eraser" parameter, because it can map all kinds of sensors by curves.
Comment 4 Dmitry Kazakov 2022-09-05 12:16:16 UTC
Git commit 93bf757c4e4e2bfd9e53eb6b31c8117cd98303cf by Dmitry Kazakov, on behalf of Carsten Hartenfels.
Committed on 05/09/2022 at 12:15.
Pushed by dkazakov into branch 'master'.

Make MyPaint eraser use the proper brush settings

When enabling eraser mode, Krita will use the default MyPaint brush
settings instead of the ones the user has actually selected. This is
unlike MyPaint, GIMP and Drawpile do it, which use the selected brush to
erase.

This is due to a setting that enables this odd behavior, which is not
actually exposed in the user interface, meaning there's no way to turn
it off. This commit outright removes that setting and makes Krita behave
properly: use the brush that's selected and erase with it, don't switch
to something else behind the scenes.

M  +1    -8    plugins/paintops/mypaint/MyPaintPaintOp.cpp
M  +0    -3    plugins/paintops/mypaint/MyPaintPaintOpOption.h
M  +0    -1    plugins/paintops/mypaint/MyPaintPaintOpPreset.cpp

https://invent.kde.org/graphics/krita/commit/93bf757c4e4e2bfd9e53eb6b31c8117cd98303cf
Comment 5 Dmitry Kazakov 2022-09-05 12:16:40 UTC
Git commit 77026701d2dee602aceef4e5e9ae7e72056fb54b by Dmitry Kazakov, on behalf of Carsten Hartenfels.
Committed on 05/09/2022 at 12:16.
Pushed by dkazakov into branch 'cherry-pick-93bf757c'.

Make MyPaint eraser use the proper brush settings

When enabling eraser mode, Krita will use the default MyPaint brush
settings instead of the ones the user has actually selected. This is
unlike MyPaint, GIMP and Drawpile do it, which use the selected brush to
erase.

This is due to a setting that enables this odd behavior, which is not
actually exposed in the user interface, meaning there's no way to turn
it off. This commit outright removes that setting and makes Krita behave
properly: use the brush that's selected and erase with it, don't switch
to something else behind the scenes.


(cherry picked from commit 93bf757c4e4e2bfd9e53eb6b31c8117cd98303cf)

M  +1    -8    plugins/paintops/mypaint/MyPaintPaintOp.cpp
M  +0    -3    plugins/paintops/mypaint/MyPaintPaintOpOption.h
M  +0    -1    plugins/paintops/mypaint/MyPaintPaintOpPreset.cpp

https://invent.kde.org/graphics/krita/commit/77026701d2dee602aceef4e5e9ae7e72056fb54b
Comment 6 Dmitry Kazakov 2022-09-05 12:18:00 UTC
Git commit fe72fd221c8315b15a203022402a64cc64f85343 by Dmitry Kazakov, on behalf of Carsten Hartenfels.
Committed on 05/09/2022 at 12:17.
Pushed by dkazakov into branch 'krita/5.1'.

Make MyPaint eraser use the proper brush settings

When enabling eraser mode, Krita will use the default MyPaint brush
settings instead of the ones the user has actually selected. This is
unlike MyPaint, GIMP and Drawpile do it, which use the selected brush to
erase.

This is due to a setting that enables this odd behavior, which is not
actually exposed in the user interface, meaning there's no way to turn
it off. This commit outright removes that setting and makes Krita behave
properly: use the brush that's selected and erase with it, don't switch
to something else behind the scenes.


(cherry picked from commit 93bf757c4e4e2bfd9e53eb6b31c8117cd98303cf)

M  +1    -8    plugins/paintops/mypaint/MyPaintPaintOp.cpp
M  +0    -3    plugins/paintops/mypaint/MyPaintPaintOpOption.h
M  +0    -1    plugins/paintops/mypaint/MyPaintPaintOpPreset.cpp

https://invent.kde.org/graphics/krita/commit/fe72fd221c8315b15a203022402a64cc64f85343
Comment 7 Dmitry Kazakov 2022-09-06 11:14:36 UTC
Git commit 1576bf60ae59947c2bb7131bd2e6c07be2427d56 by Dmitry Kazakov, on behalf of Carsten Hartenfels.
Committed on 06/09/2022 at 11:12.
Pushed by dkazakov into branch 'master'.

Fix disabling blend mode combo for MyPaint brushes

MyPaint brushes don't support custom blend modes, they always use what
MyPaint calls "Normal and Erase". The code already made an attempt to
disable the blend mode combo box to represent that, but switching tools
caused it to re-enable itself, despite having no effect.

This commit fixes that: the brush blend mode combo box gets disabled
upon switching tools if a MyPaint brush preset is selected. It also adds
a comment explaining the reason behind that rather non-obvious special
case.

M  +8    -1    libs/ui/kis_paintop_box.cc

https://invent.kde.org/graphics/krita/commit/1576bf60ae59947c2bb7131bd2e6c07be2427d56
Comment 8 Dmitry Kazakov 2022-09-06 11:15:04 UTC
Git commit 896ddd0c0933bf3dc07b996962c61331220c7a01 by Dmitry Kazakov, on behalf of Carsten Hartenfels.
Committed on 06/09/2022 at 11:14.
Pushed by dkazakov into branch 'krita/5.1'.

Fix disabling blend mode combo for MyPaint brushes

MyPaint brushes don't support custom blend modes, they always use what
MyPaint calls "Normal and Erase". The code already made an attempt to
disable the blend mode combo box to represent that, but switching tools
caused it to re-enable itself, despite having no effect.

This commit fixes that: the brush blend mode combo box gets disabled
upon switching tools if a MyPaint brush preset is selected. It also adds
a comment explaining the reason behind that rather non-obvious special
case.


(cherry picked from commit 1576bf60ae59947c2bb7131bd2e6c07be2427d56)

M  +8    -1    libs/ui/kis_paintop_box.cc

https://invent.kde.org/graphics/krita/commit/896ddd0c0933bf3dc07b996962c61331220c7a01