Logo Search packages:      
Sourcecode: inkscape version File versions  Download package

static void sp_style_merge_ifilter ( SPStyle style,
SPIFilter const *  parent 
) [static]

Merge filter style from parent. Filter effects do not inherit by default

Definition at line 2194 of file style.cpp.

References SPStyle::filter, SPIFilter::href, SPIFilter::inherit, SPStyle::object, SPIFilter::set, sp_style_filter_clear(), and sp_style_filter_ref_changed().

Referenced by sp_style_merge_from_dying_parent(), and sp_style_merge_from_parent().

{
    // FIXME:
    // instead of just copying over, we need to _really merge_ the two filters by combining their
    // filter primitives

    sp_style_filter_clear(style);
    style->filter.set = parent->set;
    style->filter.inherit = parent->inherit;

    if (style->filter.href && style->filter.href->getObject())
       style->filter.href->detach();

    // it may be that this style has not yet created its SPFilterReference
    if (!style->filter.href && style->object && SP_OBJECT_DOCUMENT(style->object)) {
            style->filter.href = new SPFilterReference(SP_OBJECT_DOCUMENT(style->object));
            style->filter.href->changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_style_filter_ref_changed), style));
    }

    if (style->filter.href && parent->href && parent->href->getObject()) {
        try {
            style->filter.href->attach(*parent->href->getURI());
        } catch (Inkscape::BadURIException &e) {
            g_warning("%s", e.what());
            style->filter.href->detach();
        }
    }
}


Generated by  Doxygen 1.6.0   Back to index