Bug 459899

Summary: Add a selection mode (similar to eraser mode) for brushes so that you can easily paint on the selections
Product: [Applications] krita Reporter: rave002
Component: Brush enginesAssignee: Krita Bugs <krita-bugs-null>
Status: REPORTED ---    
Severity: wishlist CC: ginoba, tomtomtomreportingin
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Other   
OS: All   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description rave002 2022-10-01 17:35:04 UTC
SUMMARY
A way to paint on selection without clearing masks would greatly improve usability of Krita in certain digital painting workflows. The selection mode of the brush will be a toggle, similar to the eraser mode.

OBSERVED RESULT
There's no such mode as far as I'm aware.

EXPECTED RESULT
Such mode existing.

ADDITIONAL INFORMATION
If just the selection mode would be enabled, the selection would be painted on (the alpha would determine the "strength" of selection). If both eraser and selection mode would be enabled, the selection would be erased. The selection would be painted on using brushes. A close analogue in other graphic software would be "quick mask" functionality of e.g. GIMP.
Comment 1 rave002 2022-10-03 11:52:17 UTC
I've just noticed that with such "selection mode" we could just remove selection tools entirely and declutter the toolbar, since there are painting analogues of most selection tools. And so, provided that the "selection mode" was enabled:

- Rectangle tool would become rectangular selection tool
- Flood fill would become "magic wand"
- Various shape tools would also be usable for selections, including the bezier tool
- The only selection tools that couldn't get replaced and thus would have to stay would be selection by color and magnetic selection.
Comment 2 Deif Lou 2022-10-08 08:45:35 UTC
Did you know you can already paint on the selection? If you check "Show global selection mask" on the "Select" menu, a selection mask appears on the layer docker. If you select it you can paint on it. Although a quicker way of toggling selection/current-layer painting would be great.
Comment 3 rave002 2022-10-08 08:57:46 UTC
(In reply to Deif Lou from comment #2)
> Did you know you can already paint on the selection? If you check "Show
> global selection mask" on the "Select" menu, a selection mask appears on the
> layer docker. If you select it you can paint on it. Although a quicker way
> of toggling selection/current-layer painting would be great.

Still, I think my idea of just using painting tools with a special drawing mode is better and more powerful (for the reasons I've stated in my second post).
Comment 4 Deif Lou 2022-10-08 11:06:13 UTC
You can use the "Show global selection mask" action/shortcut/button-in-the-toolbar to activate/deactivate the global selection and paint on it. The effect is very similar to what you propose.
Comment 5 rave002 2022-10-17 00:00:05 UTC
(In reply to Deif Lou from comment #4)
> You can use the "Show global selection mask"
> action/shortcut/button-in-the-toolbar to activate/deactivate the global
> selection and paint on it. The effect is very similar to what you propose.

It's not the same though and it's clunky (you have to have the selection mask layer selected, for example, also it's based on the color value - the lighter the color, the stronger the selection, instead of the alpha, meaning that you'd need to switch to white if you want to paint on selection)
Comment 6 tomtomtomreportingin 2022-10-17 07:37:37 UTC
An explicit tool for drawing selections with a raster brush might be okay, but I don't think people would appreciate the removal of other selection tools. 
What you'd be proposing is a workflow of activating selection mode and then selecting a specific tool.
The current workflow is just simply selecting a specific selection tool, as there's no necessity in activating selection mode first.

I do agree that the current process of editing masks is clunky and unintuitive, since it's driven by intensity instead of alpha. I've made a wishlist report related to that in https://bugs.kde.org/show_bug.cgi?id=457530