Bug 406204

Summary: Shift and Snap in Assistant Tools do not work
Product: [Applications] krita Reporter: Tyson Tan <tysontanx>
Component: Tool/AssistantsAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: ghevan, griffinvalley, halla
Priority: NOR Keywords: triaged
Version: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Tyson Tan 2019-04-04 02:47:00 UTC
Shift key and Snap do not work as they are supposed to in Krita's assistant tools.

For Ellipse Assistant, our manual says:
"If you press Shift while holding the first two handles, they will snap to perfectly horizontal or vertical lines. Press Shift while holding the third handle, and it’ll snap to a perfect circle."

But when I was holding down Shift, Krita wouldn't recognize my clicks, and it clearly doesn't snap whether I hold Shift or not.

Concentric Ellipse assistant is broken. It does not do the concentric thing because it cannot snap.

Am I doing it wrong, or they are actually broken right now? I'm translating "Painting with Assistants" chapter in our user manual, and nothing works. I don't know whether it is safe to assume I understand the documentation correctly and just roll with a blind translation...
Comment 1 Tyson Tan 2019-04-04 02:48:42 UTC
This happens with both Krita from the distro and Krita appimage. I'm under Manjaro KDE 18.0.4, It's Qt 5.12 and KDE 5.15. I hope it is not another one or those Qt bugs...
Comment 2 Halla Rempt 2019-04-04 07:02:24 UTC
Could you maybe check with the stable 4.1.7 appimage? That's still Qt 5.9...
Comment 3 Halla Rempt 2019-04-04 07:20:25 UTC
Wait... I think I know the problem. The documentation says "press shift while holding the handle" -- and that's what it is. When first hold shift, then click on the handle, nothing happens, both in 4.1.7 and current master. Can you check that?
Comment 4 Tyson Tan 2019-04-04 08:32:41 UTC
(In reply to Boudewijn Rempt from comment #3)
> Wait... I think I know the problem. The documentation says "press shift
> while holding the handle" -- and that's what it is. When first hold shift,
> then click on the handle, nothing happens, both in 4.1.7 and current master.
> Can you check that?

So here is what I understand:

Krita's assistant tools...
1) ... does NOT accept SHIFT when we CREATE the shape;
2) ... only accepts SHIFT when we EDIT the shape.

Now that's a huge UI/UX issue!

Human mind works..
Like: I want to draw a circle, so I hold down SHIFT.
Not like: I want to make a circle, so I draw an ellipse, and use SHIFT to turn the ellipse into a circle.

1) Because people expect the UI/UX for both creation and editing to be THE SAME!

2) Every geometric shape painting tool in Krita's toolbox accepts SHIFT when we create the shape. The assistant tools break this code.

3) People won't be able to figure it out. It feels broken. It's like being unable to draw on a new layer right after you created it, and you must switch to an old layer and then back to activate the new layer's "paintability". 

3) The documentation did not distinguish between the creating and editing part, which is not really its fault, because who would have thought! Your instruction in comment 3 confused me because I tried to do that when I create a shape. I was able to figure it out in desperation and by mistake, clicking the handle afterward, which gave me an idea to try it SPECIFICALLY in editing. This is not intuitive at all.

I STRONGLY suggest we allow SHIFT during the creation of an assistant. Even better, we give people a circle assistant. Sometimes all we need is the ability to draw a circle! It shouldn't be this complicated!
Comment 5 Tyson Tan 2019-04-04 08:35:21 UTC
But that's not all though. How about the Concentric Ellipse assistant? I could not draw two Ellipse that is Concentric with it. So what do I miss?
Comment 6 Tyson Tan 2019-04-04 08:47:23 UTC
I think I should rephrase the human mind part:

Human mind works like:
1) I want to draw a circle;
2) So I press down Shift, the tool now makes a circle.

Not like:
1) I want to make a circle
2) So I first draw an ellipse;
3) Then I edit this ellipse;
4) I use Shift to snap it into a circle.

Imagine how complicated it is to just change the diameter of a circle this way...I think we really need a proper circle tool.

(and please don't forget the unsolved Concentric Ellipse assistant in Comment 5)
Comment 7 Tyson Tan 2019-04-04 08:57:43 UTC
And we should also make the Shift key work regardless of:
1) Pressing Shift before dragging the handle;
2) Pressing Shift after dragging the handle.

The order should not make any difference.
Comment 8 Bug Janitor Service 2019-04-05 04:33:12 UTC
Thanks for your comment!

Automatically switching the status of this bug to REPORTED so that the KDE team
knows that the bug is ready to get confirmed.

In the future you may also do this yourself when providing needed information.
Comment 9 vanyossi 2019-04-08 04:13:00 UTC
concentric ellipse works correctly on c5838c03b51

I agree on making shift consistant between creation and editing.

Shift locks the ability to interact with the canvas if pressed before editing. clicks do nothing.
Comment 10 wolthera 2019-04-08 13:57:45 UTC
I'll set this to confirmed, but really what we need is a proper reworking of the assistants interaction, and that's something, that unless there's proper funding for it(read: it's chosen as a funding goal) is not going to happen.
Comment 11 Dmitry Kazakov 2020-07-10 10:48:59 UTC
Git commit aa3a3d617e81e80e1c94f3e496b39eac23c93034 by Dmitry Kazakov, on behalf of Nabil Maghfur Usman.
Committed on 10/07/2020 at 10:32.
Pushed by dkazakov into branch 'master'.

Allow shift snapping when placing and dragging assistant handles

Shift snapping assistant handles only worked after
the assistant has been created, by click-dragging
the handles. This change allows the user to hold
shift to snap handles when the assistant hasn't
been completed.

This change addresses bug 406204, except that Shift
can still only be held after the user starts
click-dragging the assistant's handles.

M  +110  -12   plugins/assistants/Assistants/kis_assistant_tool.cc
M  +8    -1    plugins/assistants/Assistants/kis_assistant_tool.h

https://invent.kde.org/graphics/krita/commit/aa3a3d617e81e80e1c94f3e496b39eac23c93034
Comment 12 Dmitry Kazakov 2020-07-10 10:50:19 UTC
Git commit bf1c383599ad94751e128e4a547db947115f46ab by Dmitry Kazakov, on behalf of Nabil Maghfur Usman.
Committed on 10/07/2020 at 10:49.
Pushed by dkazakov into branch 'krita/4.3'.

Allow shift snapping when placing and dragging assistant handles

Shift snapping assistant handles only worked after
the assistant has been created, by click-dragging
the handles. This change allows the user to hold
shift to snap handles when the assistant hasn't
been completed.

This change addresses bug 406204, except that Shift
can still only be held after the user starts
click-dragging the assistant's handles.

M  +110  -12   plugins/assistants/Assistants/kis_assistant_tool.cc
M  +8    -1    plugins/assistants/Assistants/kis_assistant_tool.h

https://invent.kde.org/graphics/krita/commit/bf1c383599ad94751e128e4a547db947115f46ab
Comment 13 Tyson Tan 2020-07-10 11:47:10 UTC
Thank you, Dmitry! :D