Code

Patch by Johan to fix 365903.
authorscislac <scislac@users.sourceforge.net>
Thu, 8 Oct 2009 21:25:50 +0000 (21:25 +0000)
committerscislac <scislac@users.sourceforge.net>
Thu, 8 Oct 2009 21:25:50 +0000 (21:25 +0000)
src/live_effects/lpe-knot.cpp

index 793061b2f353ce819581b77f58f3d0fbd0654ac2..340cdf6332f644fcd4cd01ff046c028d5021bfea 100644 (file)
@@ -10,6 +10,7 @@
  */
 
 #include "sp-shape.h"
+#include "sp-path.h"
 #include "display/curve.h"
 #include "live_effects/lpe-knot.h"
 #include "svg/svg.h"
 #include <2geom/basic-intersection.h>
 #include <2geom/exception.h>
 
+// for change crossing undo
+#include "verbs.h"
+#include "document.h"
+
 #include <exception>
 
 namespace Inkscape {
@@ -486,7 +491,12 @@ void collectPathsAndWidths (SPLPEItem const *lpeitem, std::vector<Geom::Path> &p
         }
     }
     else if (SP_IS_SHAPE(lpeitem)) {
-        SPCurve * c = sp_shape_get_curve(SP_SHAPE(lpeitem));
+        SPCurve * c = NULL;
+        if (SP_IS_PATH(lpeitem)) {
+            c = sp_path_get_curve_for_edit(SP_PATH(lpeitem));
+        } else {
+            c = sp_shape_get_curve(SP_SHAPE(lpeitem));
+        }
         if (c) {
             Geom::PathVector subpaths = c->get_pathvector();
             for (unsigned i=0; i<subpaths.size(); i++){
@@ -623,9 +633,11 @@ KnotHolderEntityCrossingSwitcher::knot_click(guint state)
             //std::cout<<"crossing set to"<<lpe->crossing_points[s].sign<<".\n";
         }
         lpe->crossing_points_vector.param_set_and_write_new_value(lpe->crossing_points.to_vector());
+        sp_document_done(lpe->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, /// @todo Is this the right verb?
+                 _("Change knot crossing"));
 
         // FIXME: this should not directly ask for updating the item. It should write to SVG, which triggers updating.
-        sp_lpe_item_update_patheffect (SP_LPE_ITEM(item), false, true);
+//        sp_lpe_item_update_patheffect (SP_LPE_ITEM(item), false, true);
     }
 }