diff options
author | Bjørn Erik Nilsen <bjorn.nilsen@nokia.com> | 2009-07-29 03:45:15 (GMT) |
---|---|---|
committer | Bjørn Erik Nilsen <bjorn.nilsen@nokia.com> | 2009-07-29 06:43:36 (GMT) |
commit | 8334e6f6590d801971a3ec9fe64ff087c750c26a (patch) | |
tree | c52c19a5164139132ac33c6098347ee115ff4ecf /src/gui/graphicsview | |
parent | 0eccc0f9ee9579883a829c373cfc1c072704bca0 (diff) | |
download | Qt-8334e6f6590d801971a3ec9fe64ff087c750c26a.zip Qt-8334e6f6590d801971a3ec9fe64ff087c750c26a.tar.gz Qt-8334e6f6590d801971a3ec9fe64ff087c750c26a.tar.bz2 |
Add support for updating the source when bounding rect changes.
Diffstat (limited to 'src/gui/graphicsview')
-rw-r--r-- | src/gui/graphicsview/qgraphicseffect.cpp | 19 | ||||
-rw-r--r-- | src/gui/graphicsview/qgraphicseffect.h | 2 | ||||
-rw-r--r-- | src/gui/graphicsview/qgraphicseffect_p.h | 1 | ||||
-rw-r--r-- | src/gui/graphicsview/qgraphicsitem_p.h | 3 |
4 files changed, 22 insertions, 3 deletions
diff --git a/src/gui/graphicsview/qgraphicseffect.cpp b/src/gui/graphicsview/qgraphicseffect.cpp index 358826b..6bf28ac 100644 --- a/src/gui/graphicsview/qgraphicseffect.cpp +++ b/src/gui/graphicsview/qgraphicseffect.cpp @@ -121,16 +121,17 @@ const QStyleOption *QGraphicsEffectSource::styleOption() const void QGraphicsEffectSource::draw(QPainter *painter) { d_func()->draw(painter); } +void QGraphicsEffectSource::update() +{ d_func()->update(); } + QPixmap QGraphicsEffectSource::pixmap(Qt::CoordinateSystem system, QPoint *offset) const { return d_func()->pixmap(system, offset); } + QGraphicsEffect::QGraphicsEffect() : QObject(*new QGraphicsEffectPrivate, 0) {} -/*! - \internal -*/ QGraphicsEffect::QGraphicsEffect(QGraphicsEffectPrivate &dd) : QObject(dd, 0) {} @@ -186,6 +187,13 @@ bool QGraphicsEffect::isEnabled() const return d->isEnabled; } +void QGraphicsEffect::updateBoundingRect() +{ + Q_D(QGraphicsEffect); + if (d->source) + d->source->update(); +} + QGraphicsGrayscaleEffect::QGraphicsGrayscaleEffect() : QGraphicsEffect(*new QGraphicsGrayscaleEffectPrivate) {} @@ -377,6 +385,7 @@ void QGraphicsBlurEffect::setBlurRadius(int radius) { Q_D(QGraphicsBlurEffect); d->filter->setBlurRadius(radius); + updateBoundingRect(); } QRectF QGraphicsBlurEffect::boundingRectFor(const QRectF &rect) const @@ -420,6 +429,7 @@ void QGraphicsBloomEffect::setBlurRadius(int radius) { Q_D(QGraphicsBloomEffect); d->blurRadius = radius; + updateBoundingRect(); } qreal QGraphicsBloomEffect::opacity() const @@ -523,6 +533,7 @@ void QGraphicsFrameEffect::setFrameWidth(qreal frameWidth) { Q_D(QGraphicsFrameEffect); d->width = frameWidth; + updateBoundingRect(); } qreal QGraphicsFrameEffect::frameOpacity() const @@ -575,6 +586,7 @@ void QGraphicsShadowEffect::setShadowOffset(const QPointF &ofs) { Q_D(QGraphicsShadowEffect); d->offset = ofs; + updateBoundingRect(); } int QGraphicsShadowEffect::blurRadius() const @@ -587,6 +599,7 @@ void QGraphicsShadowEffect::setBlurRadius(int blurRadius) { Q_D(QGraphicsShadowEffect); d->radius = blurRadius; + updateBoundingRect(); } qreal QGraphicsShadowEffect::opacity() const diff --git a/src/gui/graphicsview/qgraphicseffect.h b/src/gui/graphicsview/qgraphicseffect.h index e484f1a..9deada1 100644 --- a/src/gui/graphicsview/qgraphicseffect.h +++ b/src/gui/graphicsview/qgraphicseffect.h @@ -74,6 +74,7 @@ public: const QGraphicsItem *graphicsItem() const; const QStyleOption *styleOption() const; void draw(QPainter *painter); + void update(); QRectF boundingRect(Qt::CoordinateSystem coordinateSystem = Qt::LogicalCoordinates) const; QPixmap pixmap(Qt::CoordinateSystem system = Qt::LogicalCoordinates, QPoint *offset = 0) const; @@ -111,6 +112,7 @@ public Q_SLOTS: protected: QGraphicsEffect(QGraphicsEffectPrivate &d); virtual void draw(QPainter *painter, QGraphicsEffectSource *source) = 0; + void updateBoundingRect(); private: Q_DECLARE_PRIVATE(QGraphicsEffect) diff --git a/src/gui/graphicsview/qgraphicseffect_p.h b/src/gui/graphicsview/qgraphicseffect_p.h index f084a84..63da37b 100644 --- a/src/gui/graphicsview/qgraphicseffect_p.h +++ b/src/gui/graphicsview/qgraphicseffect_p.h @@ -72,6 +72,7 @@ public: virtual const QGraphicsItem *graphicsItem() const = 0; virtual const QStyleOption *styleOption() const = 0; virtual void draw(QPainter *p) = 0; + virtual void update() = 0; virtual QPixmap pixmap(Qt::CoordinateSystem system, QPoint *offset = 0) const = 0; friend class QGraphicsScenePrivate; friend class QGraphicsItem; diff --git a/src/gui/graphicsview/qgraphicsitem_p.h b/src/gui/graphicsview/qgraphicsitem_p.h index de8b0a5..8a2dae9 100644 --- a/src/gui/graphicsview/qgraphicsitem_p.h +++ b/src/gui/graphicsview/qgraphicsitem_p.h @@ -543,6 +543,9 @@ public: inline const QGraphicsItem *graphicsItem() const { return item; } + inline void update() + { item->update(); } + inline const QStyleOption *styleOption() const { return info ? info->option : 0; } |