summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Erik Nilsen <bjorn.nilsen@nokia.com>2009-07-29 03:54:43 (GMT)
committerBjørn Erik Nilsen <bjorn.nilsen@nokia.com>2009-07-29 06:43:37 (GMT)
commit8ec8c7f97efc1e5ae6fc5deae4b4d7aeb0a93f31 (patch)
tree7d4b2324f8009ceede39b329eadb0cc567d88faf
parent8334e6f6590d801971a3ec9fe64ff087c750c26a (diff)
downloadQt-8ec8c7f97efc1e5ae6fc5deae4b4d7aeb0a93f31.zip
Qt-8ec8c7f97efc1e5ae6fc5deae4b4d7aeb0a93f31.tar.gz
Qt-8ec8c7f97efc1e5ae6fc5deae4b4d7aeb0a93f31.tar.bz2
Notify sub-classes of QGraphicsEffect whenever the source changes.
-rw-r--r--src/gui/graphicsview/qgraphicseffect.cpp9
-rw-r--r--src/gui/graphicsview/qgraphicseffect.h2
-rw-r--r--src/gui/graphicsview/qgraphicseffect_p.h1
3 files changed, 12 insertions, 0 deletions
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;