X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fsp-fecomposite.cpp;h=11d101bd63b75b6eb8b7ba8151806b589312e676;hb=144c1b594591ba3d62513b126ca87a5f242b2f2b;hp=68312aa1b9ffd95a046ad120d1e34683f23a263e;hpb=d0bb68525547101b5c938b246ff897a5de413cff;p=inkscape.git diff --git a/src/sp-fecomposite.cpp b/src/sp-fecomposite.cpp index 68312aa1b..11d101bd6 100644 --- a/src/sp-fecomposite.cpp +++ b/src/sp-fecomposite.cpp @@ -20,6 +20,7 @@ #include "attributes.h" #include "svg/svg.h" #include "sp-fecomposite.h" +#include "helper-fns.h" #include "xml/repr.h" #include "display/nr-filter-composite.h" @@ -32,7 +33,7 @@ static void sp_feComposite_build(SPObject *object, SPDocument *document, Inkscap static void sp_feComposite_release(SPObject *object); static void sp_feComposite_set(SPObject *object, unsigned int key, gchar const *value); static void sp_feComposite_update(SPObject *object, SPCtx *ctx, guint flags); -static Inkscape::XML::Node *sp_feComposite_write(SPObject *object, Inkscape::XML::Node *repr, guint flags); +static Inkscape::XML::Node *sp_feComposite_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); static void sp_feComposite_build_renderer(SPFilterPrimitive *primitive, NR::Filter *filter); static SPFilterPrimitiveClass *feComposite_parent_class; @@ -120,19 +121,6 @@ sp_feComposite_release(SPObject *object) ((SPObjectClass *) feComposite_parent_class)->release(object); } -static double -sp_feComposite_read_number(gchar const *value) { - char *end; - double ret = g_ascii_strtod(value, &end); - if (*end) { - g_warning("Unable to convert \"%s\" to number", value); - // We could leave this out, too. If strtod can't convert - // anything, it will return zero. - ret = 0; - } - return ret; -} - static FeCompositeOperator sp_feComposite_read_operator(gchar const *value) { if (!value) return COMPOSITE_DEFAULT; @@ -169,7 +157,7 @@ sp_feComposite_set(SPObject *object, unsigned int key, gchar const *value) break; case SP_ATTR_K1: - k_n = sp_feComposite_read_number(value); + k_n = helperfns_read_number(value); if (k_n != feComposite->k1) { feComposite->k1 = k_n; if (feComposite->composite_operator == COMPOSITE_ARITHMETIC) @@ -178,7 +166,7 @@ sp_feComposite_set(SPObject *object, unsigned int key, gchar const *value) break; case SP_ATTR_K2: - k_n = sp_feComposite_read_number(value); + k_n = helperfns_read_number(value); if (k_n != feComposite->k2) { feComposite->k2 = k_n; if (feComposite->composite_operator == COMPOSITE_ARITHMETIC) @@ -187,7 +175,7 @@ sp_feComposite_set(SPObject *object, unsigned int key, gchar const *value) break; case SP_ATTR_K3: - k_n = sp_feComposite_read_number(value); + k_n = helperfns_read_number(value); if (k_n != feComposite->k3) { feComposite->k3 = k_n; if (feComposite->composite_operator == COMPOSITE_ARITHMETIC) @@ -196,7 +184,7 @@ sp_feComposite_set(SPObject *object, unsigned int key, gchar const *value) break; case SP_ATTR_K4: - k_n = sp_feComposite_read_number(value); + k_n = helperfns_read_number(value); if (k_n != feComposite->k4) { feComposite->k4 = k_n; if (feComposite->composite_operator == COMPOSITE_ARITHMETIC) @@ -242,7 +230,7 @@ sp_feComposite_update(SPObject *object, SPCtx *ctx, guint flags) * Writes its settings to an incoming repr object, if any. */ static Inkscape::XML::Node * -sp_feComposite_write(SPObject *object, Inkscape::XML::Node *repr, guint flags) +sp_feComposite_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags) { // Inkscape-only object, not copied during an "plain SVG" dump: if (flags & SP_OBJECT_WRITE_EXT) { @@ -250,12 +238,12 @@ sp_feComposite_write(SPObject *object, Inkscape::XML::Node *repr, guint flags) // is this sane? //repr->mergeFrom(SP_OBJECT_REPR(object), "id"); } else { - repr = SP_OBJECT_REPR(object)->duplicate(NULL); // FIXME + repr = SP_OBJECT_REPR(object)->duplicate(doc); } } if (((SPObjectClass *) feComposite_parent_class)->write) { - ((SPObjectClass *) feComposite_parent_class)->write(object, repr, flags); + ((SPObjectClass *) feComposite_parent_class)->write(object, doc, repr, flags); } return repr;