bool BlurEffect::load(const KoXmlElement &element, const KoFilterEffectLoadingContext &context) { if (element.tagName() != id()) return false; QString deviationStr = element.attribute("stdDeviation"); QStringList params = deviationStr.replace(',', ' ').simplified().split(' '); switch (params.count()) { case 1: m_deviation.rx() = params[0].toDouble(); m_deviation.ry() = m_deviation.x(); break; case 2: m_deviation.rx() = params[0].toDouble(); m_deviation.ry() = params[1].toDouble(); break; default: return false; } m_deviation = context.convertFilterPrimitiveUnits(m_deviation); return true; }
bool MorphologyEffect::load(const KoXmlElement &element, const KoFilterEffectLoadingContext &context) { if (element.tagName() != id()) return false; m_radius = QPointF(); m_operator = Erode; if (element.hasAttribute("radius")) { QString radiusStr = element.attribute("radius").trimmed(); QStringList params = radiusStr.replace(',', ' ').simplified().split(' '); switch (params.count()) { case 1: m_radius.rx() = params[0].toDouble()*72./90.; m_radius.ry() = m_radius.x(); break; case 2: m_radius.rx() = params[0].toDouble()*72./90.; m_radius.ry() = params[1].toDouble()*72./90.; break; default: m_radius = QPointF(); } } m_radius = context.convertFilterPrimitiveUnits(m_radius); if (element.hasAttribute("operator")) { QString op = element.attribute("operator"); if (op == "dilate") m_operator = Dilate; } return true; }