Bug 415208

Summary: Assistant tool guidelines follow pen position instead of brush position
Product: [Applications] krita Reporter: Rebecca Breu <rebecca>
Component: Tool/AssistantsAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: minor CC: griffinvalley
Priority: NOR    
Version: 4.2.8   
Target Milestone: ---   
Platform: Debian stable   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: Actual guidelines vs where they should be

Description Rebecca Breu 2019-12-15 15:46:00 UTC
When you have an assistant active that lets you start a line anywhere on the canvas (like the parallel ruler or vanishing point), you will get guidelines attached to your brush that show you how the lines would look if you drew. When you actually draw a line and the brush locks onto the assistant, and when you stray away from the ideal line with your pen, the guide lines will follow the (otherwise invisible) pen position instead of the locked brush position.


STEPS TO REPRODUCE
1. Create a parallel ruler assistant
2. Select the brush tool and enable "Snap to assistant" in the tool options
3. Start drawing a line
4. Move your pen away from the ideal line while you keep drawing the line

OBSERVED RESULT

The guidelines that show you where the assistant will snap to will follow your pen position, while your brush position is locked to its current line.


EXPECTED RESULT

Guidelines will stick with the brush. It's only a minor thing, but with a tiny brush, it can get confusing where you are actually drawing.
Comment 1 Rebecca Breu 2019-12-15 15:46:43 UTC
Created attachment 124508 [details]
Actual guidelines vs where they should be
Comment 2 Dmitry Kazakov 2020-07-22 11:04:51 UTC
Git commit 3767356464d98a7f1157aaeab529c61ec010b26a by Dmitry Kazakov, on behalf of Frans Slothouber.
Committed on 22/07/2020 at 11:01.
Pushed by dkazakov into branch 'krita/4.3'.

Make assistant guidelines follow brush during stroke

The patch makes painting assistants follow the brush position instead of
the cursor position during a stroke with the free hand tool.

M  +2    -0    libs/ui/kis_painting_assistant.cc
M  +3    -1    libs/ui/kis_painting_assistant.h
M  +40   -6    libs/ui/kis_painting_assistants_decoration.cpp
M  +1    -0    libs/ui/kis_painting_assistants_decoration.h
M  +8    -1    libs/ui/tests/CMakeLists.txt
A  +217  -0    libs/ui/tests/kis_painting_assistants_decoration_test.cpp  *
A  +31   -0    libs/ui/tests/kis_painting_assistants_decoration_test.h  *
M  +8    -3    libs/ui/tool/kis_tool_freehand.cc
M  +39   -9    plugins/assistants/Assistants/ConcentricEllipseAssistant.cc
M  +10   -0    plugins/assistants/Assistants/ConcentricEllipseAssistant.h
M  +48   -20   plugins/assistants/Assistants/FisheyePointAssistant.cc
M  +10   -1    plugins/assistants/Assistants/FisheyePointAssistant.h
M  +37   -8    plugins/assistants/Assistants/ParallelRulerAssistant.cc
M  +9    -1    plugins/assistants/Assistants/ParallelRulerAssistant.h
M  +27   -2    plugins/assistants/Assistants/PerspectiveAssistant.cc
M  +9    -0    plugins/assistants/Assistants/PerspectiveAssistant.h
M  +31   -4    plugins/assistants/Assistants/VanishingPointAssistant.cc
M  +9    -1    plugins/assistants/Assistants/VanishingPointAssistant.h

The files marked with a * at the end have a non valid license. Please read: https://community.kde.org/Policies/Licensing_Policy and use the headers which are listed at that page.


https://invent.kde.org/graphics/krita/commit/3767356464d98a7f1157aaeab529c61ec010b26a
Comment 3 Dmitry Kazakov 2020-07-22 11:06:43 UTC
Git commit 68352d7c32ac6f8dfbcf433e0041d3ca268147cb by Dmitry Kazakov, on behalf of Frans Slothouber.
Committed on 22/07/2020 at 11:06.
Pushed by dkazakov into branch 'master'.

Make assistant guidelines follow brush during stroke

The patch makes painting assistants follow the brush position instead of
the cursor position during a stroke with the free hand tool.

M  +2    -0    libs/ui/kis_painting_assistant.cc
M  +3    -1    libs/ui/kis_painting_assistant.h
M  +40   -6    libs/ui/kis_painting_assistants_decoration.cpp
M  +1    -0    libs/ui/kis_painting_assistants_decoration.h
M  +8    -1    libs/ui/tests/CMakeLists.txt
A  +217  -0    libs/ui/tests/kis_painting_assistants_decoration_test.cpp  *
A  +31   -0    libs/ui/tests/kis_painting_assistants_decoration_test.h  *
M  +8    -3    libs/ui/tool/kis_tool_freehand.cc
M  +39   -9    plugins/assistants/Assistants/ConcentricEllipseAssistant.cc
M  +10   -0    plugins/assistants/Assistants/ConcentricEllipseAssistant.h
M  +48   -20   plugins/assistants/Assistants/FisheyePointAssistant.cc
M  +10   -1    plugins/assistants/Assistants/FisheyePointAssistant.h
M  +37   -8    plugins/assistants/Assistants/ParallelRulerAssistant.cc
M  +9    -1    plugins/assistants/Assistants/ParallelRulerAssistant.h
M  +27   -2    plugins/assistants/Assistants/PerspectiveAssistant.cc
M  +9    -0    plugins/assistants/Assistants/PerspectiveAssistant.h
M  +31   -4    plugins/assistants/Assistants/VanishingPointAssistant.cc
M  +9    -1    plugins/assistants/Assistants/VanishingPointAssistant.h

The files marked with a * at the end have a non valid license. Please read: https://community.kde.org/Policies/Licensing_Policy and use the headers which are listed at that page.


https://invent.kde.org/graphics/krita/commit/68352d7c32ac6f8dfbcf433e0041d3ca268147cb