Bug 381913

Summary: When making a new path with a tablet stylus, all the inside nodes are symmetric nodes.
Product: [Applications] krita Reporter: wolthera <griffinvalley>
Component: Layers/VectorAssignee: Dmitry Kazakov <dimula73>
Status: RESOLVED FIXED    
Severity: normal CC: halla
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:

Description wolthera 2017-07-02 15:27:26 UTC
When I make a sharp-corned polygon with the path tool, with my stylus, all the nodes are symmetric nodes, instead of corner nodes, as one would expect.

While I could use the polygon/polyline tool for this, I would expect the path tool to be capable of this as well.

Perhaps some kind of minimum amount of movement check needs to be made before a node is registered as symmetric?
Comment 1 Dmitry Kazakov 2018-02-19 19:43:59 UTC
Git commit 85a58afef071860543c4d755a7745327abb46309 by Dmitry Kazakov.
Committed on 19/02/2018 at 19:42.
Pushed by dkazakov into branch 'kazakov/tool-handles-refactoring'.

Rewritten painting of handles in KoCreatePathTool

Now the handles are painted in a uniform way by a couple of
KisHandlePainterHelper + KoShapeHandlesCollection. KoPathPoint
generates an abstract list of "handles", which are sorted in the
tool and painted in one go. It allows the tool to decide, which
area on screen the handle occupies and issue updateCanvas() calls
accordingly.

M  +211  -113  libs/basicflakes/tools/KoCreatePathTool.cpp
M  +13   -1    libs/basicflakes/tools/KoCreatePathTool.h
M  +42   -56   libs/basicflakes/tools/KoCreatePathTool_p.h
M  +1    -1    libs/basicflakes/tools/KoPencilTool.cpp
M  +1    -0    libs/flake/CMakeLists.txt
M  +29   -9    libs/flake/KoPathPoint.cpp
M  +3    -0    libs/flake/KoPathPoint.h
M  +12   -4    libs/flake/KoShape.cpp
A  +82   -0    libs/flake/KoShapeHandlesCollection.cpp     [License: GPL (v2+)]
A  +46   -0    libs/flake/KoShapeHandlesCollection.h     [License: GPL (v2+)]
M  +0    -4    libs/flake/KoSnapGuide.cpp
M  +12   -2    libs/flake/KoToolBase.cpp
M  +7    -1    libs/flake/KoToolBase.h
M  +1    -1    libs/flake/tools/KoPathTool.cpp
M  +201  -20   libs/global/KisHandlePainterHelper.cpp
M  +92   -11   libs/global/KisHandlePainterHelper.h
M  +94   -0    libs/global/kis_painting_tweaks.cpp
M  +77   -0    libs/global/kis_painting_tweaks.h
M  +2    -2    plugins/flake/artistictextshape/ArtisticTextTool.cpp
M  +6    -6    plugins/tools/defaulttool/connectionTool/ConnectionTool.cpp

https://commits.kde.org/krita/85a58afef071860543c4d755a7745327abb46309
Comment 2 Dmitry Kazakov 2018-02-20 10:29:17 UTC
Git commit 90b57efe929ac83427d3887c0d18dc253b823b3d by Dmitry Kazakov.
Committed on 20/02/2018 at 10:28.
Pushed by dkazakov into branch 'master'.

Add minimal drag distance for creating symmetric nodes in KoCreatePathTool

M  +13   -8    libs/basicflakes/tools/KoCreatePathTool.cpp
M  +2    -0    libs/basicflakes/tools/KoCreatePathTool_p.h

https://commits.kde.org/krita/90b57efe929ac83427d3887c0d18dc253b823b3d