From 26a66406421c14edbb029fdcaf37b457ffca3ab7 Mon Sep 17 00:00:00 2001 From: buliabyak Date: Sun, 29 Mar 2009 15:39:00 +0000 Subject: [PATCH] fix simplify, combine, break for LPE paths --- src/path-chemistry.cpp | 18 ++++++++++-------- src/splivarot.cpp | 6 +++--- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/path-chemistry.cpp b/src/path-chemistry.cpp index 6ef4b2742..46160ccf4 100644 --- a/src/path-chemistry.cpp +++ b/src/path-chemistry.cpp @@ -139,17 +139,18 @@ sp_selected_path_combine(SPDesktop *desktop) repr->setAttribute("style", style); g_free(style); + repr->setAttribute("inkscape:path-effect", path_effect); + g_free(path_effect); + // set path data corresponding to new curve gchar *dstring = sp_svg_write_path(curve->get_pathvector()); curve->unref(); - repr->setAttribute("d", dstring); if (path_effect) repr->setAttribute("inkscape:original-d", dstring); + else + repr->setAttribute("d", dstring); g_free(dstring); - repr->setAttribute("inkscape:path-effect", path_effect); - g_free(path_effect); - // add the new group to the parent of the topmost parent->appendChild(repr); @@ -231,14 +232,15 @@ sp_selected_path_break_apart(SPDesktop *desktop) Inkscape::XML::Node *repr = parent->document()->createElement("svg:path"); repr->setAttribute("style", style); + repr->setAttribute("inkscape:path-effect", path_effect); + gchar *str = sp_svg_write_path(curve->get_pathvector()); - repr->setAttribute("d", str); if (path_effect) repr->setAttribute("inkscape:original-d", str); + else + repr->setAttribute("d", str); g_free(str); - repr->setAttribute("inkscape:path-effect", path_effect); - // add the new repr to the parent parent->appendChild(repr); @@ -259,7 +261,7 @@ sp_selected_path_break_apart(SPDesktop *desktop) g_slist_free(reprs); g_slist_free(list); g_free(style); - + g_free(path_effect); } desktop->clearWaitingCursor(); diff --git a/src/splivarot.cpp b/src/splivarot.cpp index c8eab575f..feba2cab6 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -1589,6 +1589,9 @@ sp_selected_path_simplify_item(SPDesktop *desktop, g_free(clip_path); } + // restore path effect + repr->setAttribute("inkscape:path-effect", patheffect); + // path gchar *str = orig->svg_dump_path(); if (patheffect) @@ -1611,9 +1614,6 @@ sp_selected_path_simplify_item(SPDesktop *desktop, // reapply the transform sp_item_write_transform(newitem, repr, transform); - // restore path effect - repr->setAttribute("inkscape:path-effect", patheffect); - // restore title & description if (title) { newitem->setTitle(title); -- 2.30.2