Code

Fixed a crash in modifying filter parameters in XML editor.
authorkiirala <kiirala@users.sourceforge.net>
Fri, 25 Aug 2006 18:40:13 +0000 (18:40 +0000)
committerkiirala <kiirala@users.sourceforge.net>
Fri, 25 Aug 2006 18:40:13 +0000 (18:40 +0000)
Fixed filters not appearing, when a file with filters is loaded.

src/dialogs/object-properties.cpp
src/sp-filter-primitive.cpp
src/sp-gaussian-blur.cpp

index a4dd49aebe8713b4dd060529e63f2fe3d2995831..20efc840818464ba4390e0241726ef2f1abf941b 100644 (file)
@@ -14,7 +14,7 @@
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 //uncomment to display blur slider
-//#define WITH_BLUR
+#define WITH_BLUR
  
 #ifdef HAVE_CONFIG_H
 # include "config.h"
@@ -416,8 +416,6 @@ sp_fillstroke_get_new_filter(SPDocument *document, gdouble stdDeviation)
     // get corresponding object
     SPFilter *f = SP_FILTER( document->getObjectByRepr(repr) );
     SPGaussianBlur *b = SP_GAUSSIANBLUR( document->getObjectByRepr(b_repr) );
-    //add blur primitive to SPFilter object
-    add_primitive(f, b); //TODO: this should be triggered in SPFilter.cpp, when a child is added, not here...
     
     g_assert(f != NULL);
     g_assert(SP_IS_FILTER(f));
index a0c09a4cebba3ff9660435ce011078870cf143f8..8553b9050d44a5a9333ac2c29eb61685a51ab403 100644 (file)
@@ -20,7 +20,7 @@
 #include "attributes.h"\r
 #include "sp-filter-primitive.h"\r
 #include "xml/repr.h"\r
-\r
+#include "sp-filter.h"\r
 \r
 /* FilterPrimitive base class */\r
 \r
@@ -88,6 +88,8 @@ sp_filter_primitive_build(SPObject *object, SPDocument *document, Inkscape::XML:
         ((SPObjectClass *) filter_primitive_parent_class)->build(object, document, repr);\r
     }\r
 \r
+    if (object->parent)\r
+        add_primitive((SPFilter*)object->parent, (SPFilterPrimitive*)object);\r
 }\r
 \r
 /**\r
@@ -146,7 +148,7 @@ sp_filter_primitive_write(SPObject *object, Inkscape::XML::Node *repr, guint fla
     if (flags & SP_OBJECT_WRITE_EXT) {\r
         if (repr) {\r
             // is this sane?\r
-            repr->mergeFrom(SP_OBJECT_REPR(object), "id");\r
+            //repr->mergeFrom(SP_OBJECT_REPR(object), "id");\r
         } else {\r
             repr = SP_OBJECT_REPR(object)->duplicate();\r
         }\r
index 68f22c8d44fa740c2dc6805f452b8daf74238f0f..63680a10bf5ad238cd9fab01de0b38e6e1c26a99 100644 (file)
@@ -155,7 +155,7 @@ sp_gaussianBlur_write(SPObject *object, Inkscape::XML::Node *repr, guint flags)
     if (flags & SP_OBJECT_WRITE_EXT) {
         if (repr) {
             // is this sane?
-            repr->mergeFrom(SP_OBJECT_REPR(object), "id");
+            // repr->mergeFrom(SP_OBJECT_REPR(object), "id");
         } else {
             repr = SP_OBJECT_REPR(object)->duplicate();
         }