20 : clipRect(-0.1, -0.1, 1.2, 1.2)
26 qDeleteAll(filterEffects);
46 return d->filterEffects;
51 return d->filterEffects.isEmpty();
57 d->filterEffects.insert(index, filter);
63 d->filterEffects.append(filter);
74 if (index >=
d->filterEffects.size())
76 return d->filterEffects.takeAt(index);
91 qreal x = boundingRect.x() +
d->clipRect.x() * boundingRect.width();
92 qreal y = boundingRect.y() +
d->clipRect.y() * boundingRect.height();
93 qreal w =
d->clipRect.width() * boundingRect.width();
94 qreal h =
d->clipRect.height() * boundingRect.height();
95 return QRectF(x, y, w, h);
100 return d->refCount.ref();
105 return d->refCount.deref();
117 writer.
addAttribute(
"filterUnits",
"objectBoundingBox");
118 writer.
addAttribute(
"primitiveUnits",
"objectBoundingBox");
125 effect->
save(writer);
133 static QSet<QString> stdInputs = QSet<QString>()
141 QSet<QString> requiredInputs;
143 return requiredInputs;
145 if (
d->filterEffects.first()->inputs().contains(QString()))
146 requiredInputs.insert(
"SourceGraphic");
149 Q_FOREACH (
const QString &input, effect->
inputs()) {
150 if (stdInputs.contains(input))
151 requiredInputs.insert(input);
155 return requiredInputs;
This class manages a stack of filter effects.
KoFilterEffectStack()
Creates an empty filter effect stack.
~KoFilterEffectStack()
Destroys the filter effect stack, deleting all filter effects.
void insertFilterEffect(int index, KoFilterEffect *filter)
void setClipRect(const QRectF &clipRect)
Sets the clipping rectangle used for this filter in bounding box units.
int useCount() const
Return reference counter.
void appendFilterEffect(KoFilterEffect *filter)
QSet< QString > requiredStandardsInputs() const
Returns list of required standard inputs.
KoFilterEffect * takeFilterEffect(int index)
void save(KoXmlWriter &writer, const QString &filterId)
void removeFilterEffect(int index)
QRectF clipRectForBoundingRect(const QRectF &boundingRect) const
Returns the clipping rectangle for the given bounding rect.
QList< KoFilterEffect * > filterEffects
virtual void save(KoXmlWriter &writer)=0
void startElement(const char *tagName, bool indentInside=true)
void addAttribute(const char *attrName, const QString &value)