Bug 317199 - Use modifier keys with selection tool(s) to add or remove to selection
Summary: Use modifier keys with selection tool(s) to add or remove to selection
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Usability (other bugs)
Version First Reported In: git master (please specify the git hash!)
Platform: Other Other
: NOR wishlist
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
: 333827 346493 346995 (view as bug list)
Depends on:
Blocks:
 
Reported: 2013-03-22 16:39 UTC by Bollebib
Modified: 2015-07-27 11:13 UTC (History)
7 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bollebib 2013-03-22 16:39:43 UTC
Krita provides shortcuts (for example A and S) to do add ,remove,intersect selections.

This is great but is a bit random. Lots of programs,even non-graphical ones have trained people to use modifier keys for such cases. Shift usually adds and control or alt usually removes from selection. Shift+CTRL and Shift+alt can be used to complement other functioanlity (in this case interesect and one more)

This is preferable,I feel, because it makes use of already present muscle and paradigm memory. It's easy and doesn't take up shorctuts. It's part of the tool.


Another usability issue that accompanies this ,is that maybe ,even if you don't use modifier keys,this kind of action is preferably not a toggle but a hold-key function.

In the case of krita you press and hold "s" ,to add to selection,if you let go of "s", it will revert to default selection behaviour. This is also very common way of working. And quite fast.

If you want to make use of this function as a toggle you can do this by just pressing "s" shortly. 


These 2 ideas don't mean that krita should dispose of the current scheme. But I feel there should be the option to have both or either to complement each other. 



in the case of using either modifier or the current shortcut the tool symbol on the canvas should show which mode is activated / this is usually a plus or a minus sign (for add or remove),and something similar for the other 2 options. This provides useful instantatnious feedback to the end-user.

Reproducible: Always
Comment 1 Halla Rempt 2013-03-31 11:44:21 UTC
Ack. This can be added to KisToolSelectBase.
Comment 2 Bollebib 2014-05-22 15:44:45 UTC
a paste from Wolthera's wishbug about the same subject,  with valuable info on how other programs do it


Selections have hotkeys, but they are arcane in comparison to industry standards.

Current defaults:
ctrl+a: select everything
ctrl+shift+a:deselect everything
a: switch to add mode.
s: switch to substract mode
i: switch to intersect.

Default hotkeys:
ctrl+a : Select everything.
ctrl+d : deselect everything.


Sticky keys:
Most software has sticky keys to switch between the add/substract/intersect selection.

This is in Photoshop:
Shift: Add
Alt: Substract.
No selection+ Shift: Selection has perfect 1:1 ratio(square or circle).
No selection+ Alt: Selection grows from center.
No selection+ Alt+Shift: Combination of above functionality.

This is in Gimp:
Shift: Add
Alt: Move selection.
Ctrl: Substract.
Shift+Ctrl:Intersect.
Pen down+ Shift: Selection has perfect 1:1 ratio(square or circle).
Pen down+ ctrl: Selection grows from center.
Pen down+Ctrl+Shift: Combination of above functionality.

This is in Paint.net:
Ctrl: Add
Alt: Substract.
Alt+RMB: Overlapping Intersect(difference).
Ctrl+RMB: Inverted Intersect(regular intersect).
Shift: Selection has perfect 1:1 ratio(square or circle).

We already have sticky keys for 'alternate tool invocation' and 'change primary setting'. We'll need to puzzle to have these align with industry standards.




-----end paste


We really should just come up with a proposal with how we want it. Would be good to have a discussion between Wolthera,Animtim and myself (and others who have valuable feedback ofc)
Comment 3 Bollebib 2014-05-22 15:45:23 UTC
*** Bug 333827 has been marked as a duplicate of this bug. ***
Comment 4 vanyossi 2014-05-23 18:55:12 UTC
Just my thoughts on the issue.

We should adhere to our parent project guidelines/philosophy for default keyboard shortcuts. At least for me ctrl+d means duplication =(
http://techbase.kde.org/Projects/Usability/HIG/Keyboard_Shortcuts

For selection
I started using photoshop so shift for add and alt for substract is familiar to me but not natural anymore after so much time in inkscape. So it all comes down to what software the users use the most.  Actions I like to have for selections are. grow from centre, snap to aspect ratio (as inkscape is nice as it allows for several aspect ratios on the fly) and move selection while click drag.

I probably would be comfortable with something like Gimp.
- Hold Key before selecting changes selection mode to Add
- Release key
- Same Key during mouse drag, keep aspect ratio 1:1 (from start point).

Another approach is to allow the user to set the shortcut scheme automagically to behave as X application. As blender does with presets for 3dsmax and maya users.
Comment 5 Bollebib 2014-05-24 08:12:30 UTC
so as a pattern I mostly See Shift to add,the other ones are very different in a lot of programs

So I just propose:
no modifer => replace
Shift => add to selection
CTRL=>remove from selection
Alt=>intersect (or SHIFT+CTRL also acceptable,as ALT is used a lot in lunx,for moving windows)


And just make it possible to make custom configuration for this,so no one gets left in the dust.

Ideally whe should have an extra setting for a shortcut to make it a sticky key or a toggle. This way the current default will still be possible too.
Comment 6 Halla Rempt 2015-05-01 07:35:17 UTC
*** Bug 346995 has been marked as a duplicate of this bug. ***
Comment 7 Raghavendra kamath 2015-06-22 13:10:48 UTC
*** Bug 346493 has been marked as a duplicate of this bug. ***
Comment 8 Raghavendra kamath 2015-07-27 11:13:49 UTC
I am closing this bug report as this feature is added in the latest krita version

following is the commit for this feature
http://quickgit.kde.org/?p=calligra.git&a=commit&h=a7f5592308fa8e841f444106a15f37ffa66ae001