From 8ec8c7f97efc1e5ae6fc5deae4b4d7aeb0a93f31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Nilsen?= Date: Wed, 29 Jul 2009 05:54:43 +0200 Subject: Notify sub-classes of QGraphicsEffect whenever the source changes. --- src/gui/graphicsview/qgraphicseffect.cpp | 9 +++++++++ src/gui/graphicsview/qgraphicseffect.h | 2 ++ src/gui/graphicsview/qgraphicseffect_p.h | 1 + 3 files changed, 12 insertions(+) diff --git a/src/gui/graphicsview/qgraphicseffect.cpp b/src/gui/graphicsview/qgraphicseffect.cpp index 6bf28ac..f3f7f22 100644 --- a/src/gui/graphicsview/qgraphicseffect.cpp +++ b/src/gui/graphicsview/qgraphicseffect.cpp @@ -187,6 +187,12 @@ bool QGraphicsEffect::isEnabled() const return d->isEnabled; } +QGraphicsEffectSource *QGraphicsEffect::source() const +{ + Q_D(const QGraphicsEffect); + return d->source; +} + void QGraphicsEffect::updateBoundingRect() { Q_D(QGraphicsEffect); @@ -194,6 +200,9 @@ void QGraphicsEffect::updateBoundingRect() d->source->update(); } +void QGraphicsEffect::sourceChanged(QGraphicsEffectSource *) +{} + QGraphicsGrayscaleEffect::QGraphicsGrayscaleEffect() : QGraphicsEffect(*new QGraphicsGrayscaleEffectPrivate) {} diff --git a/src/gui/graphicsview/qgraphicseffect.h b/src/gui/graphicsview/qgraphicseffect.h index 9deada1..1db8b6e 100644 --- a/src/gui/graphicsview/qgraphicseffect.h +++ b/src/gui/graphicsview/qgraphicseffect.h @@ -105,6 +105,7 @@ public: bool hasSourcePixmap() const; virtual QRectF boundingRectFor(const QRectF &rect) const; bool isEnabled() const; + QGraphicsEffectSource *source() const; public Q_SLOTS: void setEnabled(bool enable); @@ -112,6 +113,7 @@ public Q_SLOTS: protected: QGraphicsEffect(QGraphicsEffectPrivate &d); virtual void draw(QPainter *painter, QGraphicsEffectSource *source) = 0; + virtual void sourceChanged(QGraphicsEffectSource *newSource); void updateBoundingRect(); private: diff --git a/src/gui/graphicsview/qgraphicseffect_p.h b/src/gui/graphicsview/qgraphicseffect_p.h index 63da37b..7ebfe07 100644 --- a/src/gui/graphicsview/qgraphicseffect_p.h +++ b/src/gui/graphicsview/qgraphicseffect_p.h @@ -92,6 +92,7 @@ public: delete source; } source = newSource; + q_func()->sourceChanged(newSource); } QRectF boundingRect; QPixmap sourcePixmap; -- cgit v0.12