From: johanengelen Date: Fri, 28 Mar 2008 19:48:22 +0000 (+0000) Subject: fix lpe-PathPAram when deleting the path that it links to X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=00b090b634756cdf4b9c01dfffc76c2e2ed0ae0d;p=inkscape.git fix lpe-PathPAram when deleting the path that it links to fix ClipboardManager to construct the svgd from pathvector instead of obtaining the string from PathParam which can be a href instead of svgd --- diff --git a/src/live_effects/parameter/path.cpp b/src/live_effects/parameter/path.cpp index be26006c7..d7237e54b 100644 --- a/src/live_effects/parameter/path.cpp +++ b/src/live_effects/parameter/path.cpp @@ -205,6 +205,7 @@ PathParam::param_editOncanvas(SPItem * item, SPDesktop * dt) shape_editor->set_item_lpe_path_parameter(item, SP_OBJECT(param_effect->getLPEObj()), param_key.c_str()); } else { // set referred item for editing + shape_editor->set_item(ref.getObject()); } } @@ -241,6 +242,18 @@ PathParam::param_set_and_write_new_value (Geom::Piecewise must_recalculate_pwd2 = false; } +void +PathParam::param_set_and_write_new_value (std::vector const & newpath) +{ + remove_link(); + _pathvector = newpath; + must_recalculate_pwd2 = true; + + gchar * svgd = SVGD_from_2GeomPath( _pathvector ); + param_write_to_repr(svgd); + g_free(svgd); +} + void PathParam::ensure_pwd2() { @@ -294,8 +307,9 @@ PathParam::remove_link() void PathParam::linked_delete(SPObject */*deleted*/) { -// don't know what to do yet. not acting probably crashes inkscape. - g_message("PathParam::linked_delete"); + quit_listening(); + remove_link(); + param_set_and_write_new_value (_pathvector); } void diff --git a/src/live_effects/parameter/path.h b/src/live_effects/parameter/path.h index 1f2be32c8..d72b4b7fe 100644 --- a/src/live_effects/parameter/path.h +++ b/src/live_effects/parameter/path.h @@ -43,6 +43,7 @@ public: void param_set_default(); void param_set_and_write_default(); void param_set_and_write_new_value (Geom::Piecewise > const & newpath); + void param_set_and_write_new_value (std::vector const & newpath); virtual void param_editOncanvas(SPItem * item, SPDesktop * dt); virtual void param_setup_nodepath(Inkscape::NodePath::Path *np); diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index 842f10d52..4ee838708 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -73,6 +73,7 @@ #include "text-context.h" #include "text-editing.h" #include "tools-switch.h" +#include "live_effects/n-art-bpath-2geom.h" /// @brief Made up mimetype to represent Gdk::Pixbuf clipboard contents #define CLIPBOARD_GDK_PIXBUF_TARGET "image/x-gdk-pixbuf" @@ -223,7 +224,7 @@ void ClipboardManagerImpl::copy() void ClipboardManagerImpl::copyPathParameter(Inkscape::LivePathEffect::PathParam *pp) { if ( pp == NULL ) return; - gchar *svgd = pp->param_writeSVGValue(); + gchar *svgd = SVGD_from_2GeomPath( pp->get_pathvector() ); if ( svgd == NULL || *svgd == '\0' ) return; _discardInternalClipboard();