Bug 418008

Summary: Node type information is not saved when a Krita document is saved.
Product: [Applications] krita Reporter: Samwise Galenorn <samwisegalenorn>
Component: Tools/VectorAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: ghevan, star.blue.dayana.2418
Priority: NOR    
Version First Reported In: 4.2.8   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Samwise Galenorn 2020-02-21 19:10:02 UTC
SUMMARY
I'll draw vectors, change the node types, then save the document and close it. When I reopen the document, all node types of all vectors are set to Corner Point.

STEPS TO REPRODUCE
1. Create new document, add Vector Layer, draw a vector using the Freehand Path Tool, Bezier Curve Tool, Polyline Tool, or Polygon Tool.
Note: Freehand Path Tool, Polyline Tool and Polygon Tool make all nodes to be Corner Points.
Note: Bezier Curve Tool makes all internal nodes to be Symmetric Points while the end points are Corner Points.
2. Using the Edit Shape Tool, change the nodes to be Symmetric Points or Smooth Points. On the vector made by the Bezier Curve Tool, leave as is.
3. Save document, close Krita, reopen Krita, reopen that same document.

OBSERVED RESULT
All nodes of all vectors are Corner Points.

EXPECTED RESULT
All node information should be preserved.

SOFTWARE/OS VERSIONS
Windows: Windows 10 1909
macOS: 
Linux/KDE Plasma: Linux Mint 19.3 Tricia
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
Even though the nodes were all Corner Points when document was reopened, the node handle information was preserved.
Comment 1 vanyossi 2020-02-21 20:08:41 UTC
I can confirm thi sissue for master 369d552c3ca9
Comment 2 Bug Janitor Service 2021-03-29 10:13:51 UTC
A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/773
Comment 3 Dmitry Kazakov 2021-03-29 11:23:17 UTC
Git commit e87cb6899993fdfc65aa5371e752ba17b6b34538 by Dmitry Kazakov, on behalf of Sharaf Zaman.
Committed on 29/03/2021 at 11:22.
Pushed by dkazakov into branch 'master'.

Bugfix: Vector layer doesn't preserve nodetypes info

We had a mechanism to load nodetypes info but we didn't use it.
Related: bug 420531

M  +22   -28   libs/flake/KoPathShape.cpp
M  +28   -0    libs/flake/KoPathShape.h
M  +0    -30   libs/flake/KoPathShape_p.h
M  +3    -0    libs/flake/svg/SvgParser.cpp
M  +1    -0    libs/flake/svg/SvgWriter.cpp

https://invent.kde.org/graphics/krita/commit/e87cb6899993fdfc65aa5371e752ba17b6b34538
Comment 4 Samwise Galenorn 2021-04-01 22:52:30 UTC
I've downloaded the Krita Nightly Windows build:
krita-nightly-x64-5.0.0-prealpha-1b3b1973c0-setup.exe
and confirmed the fix. Now, when I save the document, close it, reopen it, the Node information is the same. Thank you. Addition: After I saved it using the Alpha build, I opened the document using Krita 4.4.3 Windows Release, and it opened fine with the node information all being Corner points (but it opened fine, just an additional test).
On a side note, when selecting the vector using the Select Shape Tool, the vector shape will fill with a color. I have to click Undo Last Action to get rid of the fill color. Do I file that as a bug on an Alpha build?