summaryrefslogtreecommitdiffstats
path: root/src/gui/effects
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/effects')
-rw-r--r--src/gui/effects/effects.pri4
-rw-r--r--src/gui/effects/qgraphicseffect.cpp1235
-rw-r--r--src/gui/effects/qgraphicseffect.h289
-rw-r--r--src/gui/effects/qgraphicseffect_p.h231
4 files changed, 0 insertions, 1759 deletions
diff --git a/src/gui/effects/effects.pri b/src/gui/effects/effects.pri
deleted file mode 100644
index 0ebf96fccb..0000000000
--- a/src/gui/effects/effects.pri
+++ /dev/null
@@ -1,4 +0,0 @@
-HEADERS += effects/qgraphicseffect.h \
- effects/qgraphicseffect_p.h
-
-SOURCES += effects/qgraphicseffect.cpp
diff --git a/src/gui/effects/qgraphicseffect.cpp b/src/gui/effects/qgraphicseffect.cpp
deleted file mode 100644
index a92d156e89..0000000000
--- a/src/gui/effects/qgraphicseffect.cpp
+++ /dev/null
@@ -1,1235 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \class QGraphicsEffect
- \brief The QGraphicsEffect class is the base class for all graphics
- effects.
- \since 4.6
- \ingroup multimedia
- \ingroup graphicsview-api
-
- Effects alter the appearance of elements by hooking into the rendering
- pipeline and operating between the source (e.g., a QGraphicsPixmapItem)
- and the destination device (e.g., QGraphicsView's viewport). Effects can be
- disabled by calling setEnabled(false). If effects are disabled, the source
- is rendered directly.
-
- To add a visual effect to a QGraphicsItem, for example, you can use one of
- the standard effects, or alternately, create your own effect by creating a
- subclass of QGraphicsEffect. The effect can then be installed on the item
- using QGraphicsItem::setGraphicsEffect().
-
- Qt provides the following standard effects:
-
- \list
- \o QGraphicsBlurEffect - blurs the item by a given radius
- \o QGraphicsDropShadowEffect - renders a dropshadow behind the item
- \o QGraphicsColorizeEffect - renders the item in shades of any given color
- \o QGraphicsOpacityEffect - renders the item with an opacity
- \endlist
-
- \table
- \row
- \o{2,1} \img graphicseffect-plain.png
- \row
- \o \img graphicseffect-blur.png
- \o \img graphicseffect-colorize.png
- \row
- \o \img graphicseffect-opacity.png
- \o \img graphicseffect-drop-shadow.png
- \endtable
-
- \img graphicseffect-widget.png
-
- For more information on how to use each effect, refer to the specific
- effect's documentation.
-
- To create your own custom effect, create a subclass of QGraphicsEffect (or
- any other existing effects) and reimplement the virtual function draw().
- This function is called whenever the effect needs to redraw. The draw()
- function takes the painter with which to draw as an argument. For more
- information, refer to the documenation for draw(). In the draw() function
- you can call sourcePixmap() to get a pixmap of the graphics effect source
- which you can then process.
-
- If your effect changes, use update() to request for a redraw. If your
- custom effect changes the bounding rectangle of the source, e.g., a radial
- glow effect may need to apply an extra margin, you can reimplement the
- virtual boundingRectFor() function, and call updateBoundingRect()
- to notify the framework whenever this rectangle changes. The virtual
- sourceChanged() function is called to notify the effects that
- the source has changed in some way - e.g., if the source is a
- QGraphicsRectItem and its rectangle parameters have changed.
-
- \sa QGraphicsItem::setGraphicsEffect(), QWidget::setGraphicsEffect()
-*/
-
-#include "qgraphicseffect_p.h"
-#include "private/qgraphicsitem_p.h"
-
-#include <QtGui/qgraphicsitem.h>
-
-#include <QtGui/qimage.h>
-#include <QtGui/qpainter.h>
-#include <QtGui/qpaintengine.h>
-#include <QtCore/qrect.h>
-#include <QtCore/qdebug.h>
-#include <private/qdrawhelper_p.h>
-
-#ifndef QT_NO_GRAPHICSEFFECT
-QT_BEGIN_NAMESPACE
-
-/*!
- \internal
- \class QGraphicsEffectSource
- \brief The QGraphicsEffectSource class represents the source on which a
- QGraphicsEffect is installed on.
-
- When a QGraphicsEffect is installed on a QGraphicsItem, for example, this
- class will act as a wrapper around QGraphicsItem. Then, calling update() is
- effectively the same as calling QGraphicsItem::update().
-
- QGraphicsEffectSource also provides a pixmap() function which creates a
- pixmap with the source painted into it.
-
- \sa QGraphicsItem::setGraphicsEffect(), QWidget::setGraphicsEffect().
-*/
-
-/*!
- \internal
-*/
-QGraphicsEffectSource::QGraphicsEffectSource(QGraphicsEffectSourcePrivate &dd, QObject *parent)
- : QObject(dd, parent)
-{}
-
-/*!
- Destroys the effect source.
-*/
-QGraphicsEffectSource::~QGraphicsEffectSource()
-{}
-
-/*!
- Returns the bounding rectangle of the source mapped to the given \a system.
-
- \sa draw()
-*/
-QRectF QGraphicsEffectSource::boundingRect(Qt::CoordinateSystem system) const
-{
- return d_func()->boundingRect(system);
-}
-
-/*!
- Returns the bounding rectangle of the source mapped to the given \a system.
-
- Calling this function with Qt::DeviceCoordinates outside of
- QGraphicsEffect::draw() will give undefined results, as there is no device
- context available.
-
- \sa draw()
-*/
-QRectF QGraphicsEffect::sourceBoundingRect(Qt::CoordinateSystem system) const
-{
- Q_D(const QGraphicsEffect);
- if (d->source)
- return d->source->boundingRect(system);
- return QRectF();
-}
-
-/*!
- Returns a pointer to the item if this source is a QGraphicsItem; otherwise
- returns 0.
-
- \sa widget()
-*/
-const QGraphicsItem *QGraphicsEffectSource::graphicsItem() const
-{
- return d_func()->graphicsItem();
-}
-
-/*!
- Returns a pointer to the widget if this source is a QWidget; otherwise
- returns 0.
-
- \sa graphicsItem()
-*/
-const QWidget *QGraphicsEffectSource::widget() const
-{
- return d_func()->widget();
-}
-
-/*!
- Returns a pointer to the style options (used when drawing the source) if
- available; otherwise returns 0.
-
- \sa graphicsItem(), widget()
-*/
-const QStyleOption *QGraphicsEffectSource::styleOption() const
-{
- return d_func()->styleOption();
-}
-
-/*!
- Draws the source using the given \a painter.
-
- This function should only be called from QGraphicsEffect::draw().
-
- \sa QGraphicsEffect::draw()
-*/
-void QGraphicsEffectSource::draw(QPainter *painter)
-{
- Q_D(const QGraphicsEffectSource);
-
- QPixmap pm;
- if (QPixmapCache::find(d->m_cacheKey, &pm)) {
- QTransform restoreTransform;
- if (d->m_cachedSystem == Qt::DeviceCoordinates) {
- restoreTransform = painter->worldTransform();
- painter->setWorldTransform(QTransform());
- }
-
- painter->drawPixmap(d->m_cachedOffset, pm);
-
- if (d->m_cachedSystem == Qt::DeviceCoordinates)
- painter->setWorldTransform(restoreTransform);
- } else {
- d_func()->draw(painter);
- }
-}
-
-/*!
- Draws the source directly using the given \a painter.
-
- This function should only be called from QGraphicsEffect::draw().
-
- For example:
-
- \snippet doc/src/snippets/code/src_gui_effects_qgraphicseffect.cpp 0
-
- \sa QGraphicsEffect::draw()
-*/
-void QGraphicsEffect::drawSource(QPainter *painter)
-{
- Q_D(const QGraphicsEffect);
- if (d->source)
- d->source->draw(painter);
-}
-
-/*!
- Schedules a redraw of the source. Call this function whenever the source
- needs to be redrawn.
-
- \sa QGraphicsEffect::updateBoundingRect(), QWidget::update(),
- QGraphicsItem::update(),
-*/
-void QGraphicsEffectSource::update()
-{
- d_func()->update();
-}
-
-/*!
- Returns true if the source effectively is a pixmap, e.g., a
- QGraphicsPixmapItem.
-
- This function is useful for optimization purposes. For instance, there's no
- point in drawing the source in device coordinates to avoid pixmap scaling
- if this function returns true - the source pixmap will be scaled anyways.
-*/
-bool QGraphicsEffectSource::isPixmap() const
-{
- return d_func()->isPixmap();
-}
-
-/*!
- Returns true if the source effectively is a pixmap, e.g., a
- QGraphicsPixmapItem.
-
- This function is useful for optimization purposes. For instance, there's no
- point in drawing the source in device coordinates to avoid pixmap scaling
- if this function returns true - the source pixmap will be scaled anyways.
-*/
-bool QGraphicsEffect::sourceIsPixmap() const
-{
- return source() ? source()->isPixmap() : false;
-}
-
-/*!
- Returns a pixmap with the source painted into it.
-
- The \a system specifies which coordinate system to be used for the source.
- The optional \a offset parameter returns the offset where the pixmap should
- be painted at using the current painter.
-
- The \a mode determines how much of the effect the pixmap will contain.
- By default, the pixmap will contain the whole effect.
-
- The returned pixmap is bound to the current painter's device rectangle when
- \a system is Qt::DeviceCoordinates.
-
- \sa QGraphicsEffect::draw(), boundingRect()
-*/
-QPixmap QGraphicsEffectSource::pixmap(Qt::CoordinateSystem system, QPoint *offset, QGraphicsEffect::PixmapPadMode mode) const
-{
- Q_D(const QGraphicsEffectSource);
-
- // Shortcut, no cache for childless pixmap items...
- const QGraphicsItem *item = graphicsItem();
- if (system == Qt::LogicalCoordinates && mode == QGraphicsEffect::NoPad && item && isPixmap()) {
- const QGraphicsPixmapItem *pixmapItem = static_cast<const QGraphicsPixmapItem *>(item);
- if (offset)
- *offset = pixmapItem->offset().toPoint();
- return pixmapItem->pixmap();
- }
-
- if (system == Qt::DeviceCoordinates && item
- && !static_cast<const QGraphicsItemEffectSourcePrivate *>(d_func())->info) {
- qWarning("QGraphicsEffectSource::pixmap: Not yet implemented, lacking device context");
- return QPixmap();
- }
-
- QPixmap pm;
- if (item && d->m_cachedSystem == system && d->m_cachedMode == mode)
- QPixmapCache::find(d->m_cacheKey, &pm);
-
- if (pm.isNull()) {
- pm = d->pixmap(system, &d->m_cachedOffset, mode);
- d->m_cachedSystem = system;
- d->m_cachedMode = mode;
-
- d->invalidateCache();
- d->m_cacheKey = QPixmapCache::insert(pm);
- }
-
- if (offset)
- *offset = d->m_cachedOffset;
-
- return pm;
-}
-
-/*!
- Returns a pixmap with the source painted into it.
-
- The \a system specifies which coordinate system to be used for the source.
- The optional \a offset parameter returns the offset where the pixmap should
- be painted at using the current painter. For control on how the pixmap is
- padded use the \a mode parameter.
-
- The returned pixmap is clipped to the current painter's device rectangle when
- \a system is Qt::DeviceCoordinates.
-
- Calling this function with Qt::DeviceCoordinates outside of
- QGraphicsEffect::draw() will give undefined results, as there is no device
- context available.
-
- \sa draw(), boundingRect()
-*/
-QPixmap QGraphicsEffect::sourcePixmap(Qt::CoordinateSystem system, QPoint *offset, QGraphicsEffect::PixmapPadMode mode) const
-{
- Q_D(const QGraphicsEffect);
- if (d->source)
- return d->source->pixmap(system, offset, mode);
- return QPixmap();
-}
-
-QGraphicsEffectSourcePrivate::~QGraphicsEffectSourcePrivate()
-{
- invalidateCache();
-}
-
-void QGraphicsEffectSourcePrivate::setCachedOffset(const QPoint &offset)
-{
- m_cachedOffset = offset;
-}
-
-void QGraphicsEffectSourcePrivate::invalidateCache(InvalidateReason reason) const
-{
- if (m_cachedMode != QGraphicsEffect::PadToEffectiveBoundingRect
- && (reason == EffectRectChanged
- || (reason == TransformChanged && m_cachedSystem == Qt::LogicalCoordinates))) {
- return;
- }
-
- QPixmapCache::remove(m_cacheKey);
-}
-
-/*!
- Constructs a new QGraphicsEffect instance having the
- specified \a parent.
-*/
-QGraphicsEffect::QGraphicsEffect(QObject *parent)
- : QObject(*new QGraphicsEffectPrivate, parent)
-{
-}
-
-/*!
- \internal
-*/
-QGraphicsEffect::QGraphicsEffect(QGraphicsEffectPrivate &dd, QObject *parent)
- : QObject(dd, parent)
-{
-}
-
-/*!
- Removes the effect from the source, and destroys the graphics effect.
-*/
-QGraphicsEffect::~QGraphicsEffect()
-{
- Q_D(QGraphicsEffect);
- d->setGraphicsEffectSource(0);
-}
-
-/*!
- Returns the effective bounding rectangle for this effect, i.e., the
- bounding rectangle of the source in device coordinates, adjusted by
- any margins applied by the effect itself.
-
- \sa boundingRectFor(), updateBoundingRect()
-*/
-QRectF QGraphicsEffect::boundingRect() const
-{
- Q_D(const QGraphicsEffect);
- if (d->source)
- return boundingRectFor(d->source->boundingRect());
- return QRectF();
-}
-
-/*!
- Returns the effective bounding rectangle for this effect, given the
- provided \a rect in the device coordinates. When writing
- you own custom effect, you must call updateBoundingRect() whenever any
- parameters are changed that may cause this this function to return a
- different value.
-
- \sa sourceBoundingRect()
-*/
-QRectF QGraphicsEffect::boundingRectFor(const QRectF &rect) const
-{
- return rect;
-}
-
-/*!
- \property QGraphicsEffect::enabled
- \brief whether the effect is enabled or not.
-
- If an effect is disabled, the source will be rendered with as normal, with
- no interference from the effect. If the effect is enabled, the source will
- be rendered with the effect applied.
-
- This property is enabled by default.
-
- Using this property, you can disable certain effects on slow platforms, in
- order to ensure that the user interface is responsive.
-*/
-bool QGraphicsEffect::isEnabled() const
-{
- Q_D(const QGraphicsEffect);
- return d->isEnabled;
-}
-
-void QGraphicsEffect::setEnabled(bool enable)
-{
- Q_D(QGraphicsEffect);
- if (d->isEnabled == enable)
- return;
-
- d->isEnabled = enable;
- if (d->source) {
- d->source->d_func()->effectBoundingRectChanged();
- d->source->d_func()->invalidateCache();
- }
- emit enabledChanged(enable);
-}
-
-/*!
- \fn void QGraphicsEffect::enabledChanged(bool enabled)
-
- This signal is emitted whenever the effect is enabled or disabled.
- The \a enabled parameter holds the effects's new enabled state.
-
- \sa isEnabled()
-*/
-
-/*!
- Schedules a redraw of the effect. Call this function whenever the effect
- needs to be redrawn. This function does not trigger a redraw of the source.
-
- \sa updateBoundingRect()
-*/
-void QGraphicsEffect::update()
-{
- Q_D(QGraphicsEffect);
- if (d->source)
- d->source->update();
-}
-
-/*!
- \internal
-
- Returns a pointer to the source, which provides extra context information
- that can be useful for the effect.
-
- \sa draw()
-*/
-QGraphicsEffectSource *QGraphicsEffect::source() const
-{
- Q_D(const QGraphicsEffect);
- return d->source;
-}
-
-/*!
- This function notifies the effect framework when the effect's bounding
- rectangle has changed. As a custom effect author, you must call this
- function whenever you change any parameters that will cause the virtual
- boundingRectFor() function to return a different value.
-
- This function will call update() if this is necessary.
-
- \sa boundingRectFor(), boundingRect(), sourceBoundingRect()
-*/
-void QGraphicsEffect::updateBoundingRect()
-{
- Q_D(QGraphicsEffect);
- if (d->source) {
- d->source->d_func()->effectBoundingRectChanged();
- d->source->d_func()->invalidateCache(QGraphicsEffectSourcePrivate::EffectRectChanged);
- }
-}
-
-/*!
- \fn virtual void QGraphicsEffect::draw(QPainter *painter) = 0
-
- This pure virtual function draws the effect and is called whenever the
- source needs to be drawn.
-
- Reimplement this function in a QGraphicsEffect subclass to provide the
- effect's drawing implementation, using \a painter.
-
- For example:
-
- \snippet doc/src/snippets/code/src_gui_effects_qgraphicseffect.cpp 1
-
- This function should not be called explicitly by the user, since it is
- meant for reimplementation purposes only.
-*/
-
-/*!
- \enum QGraphicsEffect::ChangeFlag
-
- This enum describes what has changed in QGraphicsEffectSource.
-
- \value SourceAttached The effect is installed on a source.
- \value SourceDetached The effect is uninstalled on a source.
- \value SourceBoundingRectChanged The bounding rect of the source has
- changed.
- \value SourceInvalidated The visual appearance of the source has changed.
-*/
-
-/*!
- \enum QGraphicsEffect::PixmapPadMode
-
- This enum describes how the pixmap returned from sourcePixmap should be
- padded.
-
- \value NoPad The pixmap should not receive any additional
- padding.
- \value PadToTransparentBorder The pixmap should be padded
- to ensure it has a completely transparent border.
- \value PadToEffectiveBoundingRect The pixmap should be padded to
- match the effective bounding rectangle of the effect.
-*/
-
-/*!
- This virtual function is called by QGraphicsEffect to notify the effect
- that the source has changed. If the effect applies any cache, then this
- cache must be purged in order to reflect the new appearance of the source.
-
- The \a flags describes what has changed.
-*/
-void QGraphicsEffect::sourceChanged(ChangeFlags flags)
-{
- Q_UNUSED(flags);
-}
-
-/*!
- \class QGraphicsColorizeEffect
- \brief The QGraphicsColorizeEffect class provides a colorize effect.
- \since 4.6
-
- A colorize effect renders the source with a tint of its color(). The color
- can be modified using the setColor() function.
-
- By default, the color is light blue (QColor(0, 0, 192)).
-
- \img graphicseffect-colorize.png
-
- \sa QGraphicsDropShadowEffect, QGraphicsBlurEffect, QGraphicsOpacityEffect
-*/
-
-/*!
- Constructs a new QGraphicsColorizeEffect instance.
- The \a parent parameter is passed to QGraphicsEffect's constructor.
-*/
-QGraphicsColorizeEffect::QGraphicsColorizeEffect(QObject *parent)
- : QGraphicsEffect(*new QGraphicsColorizeEffectPrivate, parent)
-{
-}
-
-/*!
- Destroys the effect.
-*/
-QGraphicsColorizeEffect::~QGraphicsColorizeEffect()
-{
-}
-
-/*!
- \property QGraphicsColorizeEffect::color
- \brief the color of the effect.
-
- By default, the color is light blue (QColor(0, 0, 192)).
-*/
-QColor QGraphicsColorizeEffect::color() const
-{
- Q_D(const QGraphicsColorizeEffect);
- return d->filter->color();
-}
-
-void QGraphicsColorizeEffect::setColor(const QColor &color)
-{
- Q_D(QGraphicsColorizeEffect);
- if (d->filter->color() == color)
- return;
-
- d->filter->setColor(color);
- update();
- emit colorChanged(color);
-}
-
-/*!
- \property QGraphicsColorizeEffect::strength
- \brief the strength of the effect.
-
- By default, the strength is 1.0.
- A strength 0.0 equals to no effect, while 1.0 means full colorization.
-*/
-qreal QGraphicsColorizeEffect::strength() const
-{
- Q_D(const QGraphicsColorizeEffect);
- return d->filter->strength();
-}
-
-void QGraphicsColorizeEffect::setStrength(qreal strength)
-{
- Q_D(QGraphicsColorizeEffect);
- if (qFuzzyCompare(d->filter->strength(), strength))
- return;
-
- d->filter->setStrength(strength);
- d->opaque = !qFuzzyIsNull(strength);
- update();
- emit strengthChanged(strength);
-}
-
-/*! \fn void QGraphicsColorizeEffect::strengthChanged(qreal strength)
- This signal is emitted whenever setStrength() changes the colorize
- strength property. \a strength contains the new strength value of
- the colorize effect.
- */
-
-/*!
- \fn void QGraphicsColorizeEffect::colorChanged(const QColor &color)
-
- This signal is emitted whenever the effect's color changes.
- The \a color parameter holds the effect's new color.
-*/
-
-/*!
- \reimp
-*/
-void QGraphicsColorizeEffect::draw(QPainter *painter)
-{
- Q_D(QGraphicsColorizeEffect);
-
- if (!d->opaque) {
- drawSource(painter);
- return;
- }
-
- QPoint offset;
- if (sourceIsPixmap()) {
- // No point in drawing in device coordinates (pixmap will be scaled anyways).
- const QPixmap pixmap = sourcePixmap(Qt::LogicalCoordinates, &offset, NoPad);
- if (!pixmap.isNull())
- d->filter->draw(painter, offset, pixmap);
-
- return;
- }
-
- // Draw pixmap in deviceCoordinates to avoid pixmap scaling.
- const QPixmap pixmap = sourcePixmap(Qt::DeviceCoordinates, &offset);
- if (pixmap.isNull())
- return;
-
- QTransform restoreTransform = painter->worldTransform();
- painter->setWorldTransform(QTransform());
- d->filter->draw(painter, offset, pixmap);
- painter->setWorldTransform(restoreTransform);
-}
-
-/*!
- \class QGraphicsBlurEffect
- \brief The QGraphicsBlurEffect class provides a blur effect.
- \since 4.6
-
- A blur effect blurs the source. This effect is useful for reducing details,
- such as when the source loses focus and you want to draw attention to other
- elements. The level of detail can be modified using the setBlurRadius()
- function. Use setBlurHints() to choose the blur hints.
-
- By default, the blur radius is 5 pixels. The blur radius is specified in
- device coordinates.
-
- \img graphicseffect-blur.png
-
- \sa QGraphicsDropShadowEffect, QGraphicsColorizeEffect, QGraphicsOpacityEffect
-*/
-
-/*!
- \enum QGraphicsBlurEffect::BlurHint
- \since 4.6
-
- This enum describes the possible hints that can be used to control how
- blur effects are applied. The hints might not have an effect in all the
- paint engines.
-
- \value PerformanceHint Indicates that rendering performance is the most important factor,
- at the potential cost of lower quality.
-
- \value QualityHint Indicates that rendering quality is the most important factor,
- at the potential cost of lower performance.
-
- \value AnimationHint Indicates that the blur radius is going to be animated, hinting
- that the implementation can keep a cache of blurred verisons of the source.
- Do not use this hint if the source is going to be dynamically changing.
-
- \sa blurHints(), setBlurHints()
-*/
-
-
-/*!
- Constructs a new QGraphicsBlurEffect instance.
- The \a parent parameter is passed to QGraphicsEffect's constructor.
-*/
-QGraphicsBlurEffect::QGraphicsBlurEffect(QObject *parent)
- : QGraphicsEffect(*new QGraphicsBlurEffectPrivate, parent)
-{
- Q_D(QGraphicsBlurEffect);
- d->filter->setBlurHints(QGraphicsBlurEffect::PerformanceHint);
-}
-
-/*!
- Destroys the effect.
-*/
-QGraphicsBlurEffect::~QGraphicsBlurEffect()
-{
-}
-
-/*!
- \property QGraphicsBlurEffect::blurRadius
- \brief the blur radius of the effect.
-
- Using a smaller radius results in a sharper appearance, whereas a bigger
- radius results in a more blurred appearance.
-
- By default, the blur radius is 5 pixels.
-
- The radius is given in device coordinates, meaning it is
- unaffected by scale.
-*/
-qreal QGraphicsBlurEffect::blurRadius() const
-{
- Q_D(const QGraphicsBlurEffect);
- return d->filter->radius();
-}
-
-void QGraphicsBlurEffect::setBlurRadius(qreal radius)
-{
- Q_D(QGraphicsBlurEffect);
- if (qFuzzyCompare(d->filter->radius(), radius))
- return;
-
- d->filter->setRadius(radius);
- updateBoundingRect();
- emit blurRadiusChanged(radius);
-}
-
-/*!
- \fn void QGraphicsBlurEffect::blurRadiusChanged(qreal radius)
-
- This signal is emitted whenever the effect's blur radius changes.
- The \a radius parameter holds the effect's new blur radius.
-*/
-
-/*!
- \property QGraphicsBlurEffect::blurHints
- \brief the blur hint of the effect.
-
- Use the PerformanceHint hint to say that you want a faster blur,
- the QualityHint hint to say that you prefer a higher quality blur,
- or the AnimationHint when you want to animate the blur radius.
-
- By default, the blur hint is PerformanceHint.
-*/
-QGraphicsBlurEffect::BlurHints QGraphicsBlurEffect::blurHints() const
-{
- Q_D(const QGraphicsBlurEffect);
- return d->filter->blurHints();
-}
-
-void QGraphicsBlurEffect::setBlurHints(QGraphicsBlurEffect::BlurHints hints)
-{
- Q_D(QGraphicsBlurEffect);
- if (d->filter->blurHints() == hints)
- return;
-
- d->filter->setBlurHints(hints);
- emit blurHintsChanged(hints);
-}
-
-/*!
- \fn void QGraphicsBlurEffect::blurHintsChanged(QGraphicsBlurEffect::BlurHints hints)
-
- This signal is emitted whenever the effect's blur hints changes.
- The \a hints parameter holds the effect's new blur hints.
-*/
-
-/*!
- \reimp
-*/
-QRectF QGraphicsBlurEffect::boundingRectFor(const QRectF &rect) const
-{
- Q_D(const QGraphicsBlurEffect);
- return d->filter->boundingRectFor(rect);
-}
-
-/*!
- \reimp
-*/
-void QGraphicsBlurEffect::draw(QPainter *painter)
-{
- Q_D(QGraphicsBlurEffect);
- if (d->filter->radius() < 1) {
- drawSource(painter);
- return;
- }
-
- PixmapPadMode mode = PadToEffectiveBoundingRect;
- if (painter->paintEngine()->type() == QPaintEngine::OpenGL2)
- mode = NoPad;
-
- QPoint offset;
- QPixmap pixmap = sourcePixmap(Qt::LogicalCoordinates, &offset, mode);
- if (pixmap.isNull())
- return;
-
- d->filter->draw(painter, offset, pixmap);
-}
-
-/*!
- \class QGraphicsDropShadowEffect
- \brief The QGraphicsDropShadowEffect class provides a drop shadow effect.
- \since 4.6
-
- A drop shadow effect renders the source with a drop shadow. The color of
- the drop shadow can be modified using the setColor() function. The drop
- shadow offset can be modified using the setOffset() function and the blur
- radius of the drop shadow can be changed with the setBlurRadius()
- function.
-
- By default, the drop shadow is a semi-transparent dark gray
- (QColor(63, 63, 63, 180)) shadow, blurred with a radius of 1 at an offset
- of 8 pixels towards the lower right. The drop shadow offset is specified
- in device coordinates.
-
- \img graphicseffect-drop-shadow.png
-
- \sa QGraphicsBlurEffect, QGraphicsColorizeEffect, QGraphicsOpacityEffect
-*/
-
-/*!
- Constructs a new QGraphicsDropShadowEffect instance.
- The \a parent parameter is passed to QGraphicsEffect's constructor.
-*/
-QGraphicsDropShadowEffect::QGraphicsDropShadowEffect(QObject *parent)
- : QGraphicsEffect(*new QGraphicsDropShadowEffectPrivate, parent)
-{
-}
-
-/*!
- Destroys the effect.
-*/
-QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect()
-{
-}
-
-/*!
- \property QGraphicsDropShadowEffect::offset
- \brief the shadow offset in pixels.
-
- By default, the offset is 8 pixels towards the lower right.
-
- The offset is given in device coordinates, which means it is
- unaffected by scale.
-
- \sa xOffset(), yOffset(), blurRadius(), color()
-*/
-QPointF QGraphicsDropShadowEffect::offset() const
-{
- Q_D(const QGraphicsDropShadowEffect);
- return d->filter->offset();
-}
-
-void QGraphicsDropShadowEffect::setOffset(const QPointF &offset)
-{
- Q_D(QGraphicsDropShadowEffect);
- if (d->filter->offset() == offset)
- return;
-
- d->filter->setOffset(offset);
- updateBoundingRect();
- emit offsetChanged(offset);
-}
-
-/*!
- \property QGraphicsDropShadowEffect::xOffset
- \brief the horizontal shadow offset in pixels.
-
- By default, the horizontal shadow offset is 8 pixels.
-
-
-
- \sa yOffset(), offset()
-*/
-
-/*!
- \property QGraphicsDropShadowEffect::yOffset
- \brief the vertical shadow offset in pixels.
-
- By default, the vertical shadow offset is 8 pixels.
-
- \sa xOffset(), offset()
-*/
-
-/*!
- \fn void QGraphicsDropShadowEffect::offsetChanged(const QPointF &offset)
-
- This signal is emitted whenever the effect's shadow offset changes.
- The \a offset parameter holds the effect's new shadow offset.
-*/
-
-/*!
- \property QGraphicsDropShadowEffect::blurRadius
- \brief the blur radius in pixels of the drop shadow.
-
- Using a smaller radius results in a sharper shadow, whereas using a bigger
- radius results in a more blurred shadow.
-
- By default, the blur radius is 1 pixel.
-
- \sa color(), offset().
-*/
-qreal QGraphicsDropShadowEffect::blurRadius() const
-{
- Q_D(const QGraphicsDropShadowEffect);
- return d->filter->blurRadius();
-}
-
-void QGraphicsDropShadowEffect::setBlurRadius(qreal blurRadius)
-{
- Q_D(QGraphicsDropShadowEffect);
- if (qFuzzyCompare(d->filter->blurRadius(), blurRadius))
- return;
-
- d->filter->setBlurRadius(blurRadius);
- updateBoundingRect();
- emit blurRadiusChanged(blurRadius);
-}
-
-/*!
- \fn void QGraphicsDropShadowEffect::blurRadiusChanged(qreal blurRadius)
-
- This signal is emitted whenever the effect's blur radius changes.
- The \a blurRadius parameter holds the effect's new blur radius.
-*/
-
-/*!
- \property QGraphicsDropShadowEffect::color
- \brief the color of the drop shadow.
-
- By default, the drop color is a semi-transparent dark gray
- (QColor(63, 63, 63, 180)).
-
- \sa offset(), blurRadius()
-*/
-QColor QGraphicsDropShadowEffect::color() const
-{
- Q_D(const QGraphicsDropShadowEffect);
- return d->filter->color();
-}
-
-void QGraphicsDropShadowEffect::setColor(const QColor &color)
-{
- Q_D(QGraphicsDropShadowEffect);
- if (d->filter->color() == color)
- return;
-
- d->filter->setColor(color);
- update();
- emit colorChanged(color);
-}
-
-/*!
- \fn void QGraphicsDropShadowEffect::colorChanged(const QColor &color)
-
- This signal is emitted whenever the effect's color changes.
- The \a color parameter holds the effect's new color.
-*/
-
-/*!
- \reimp
-*/
-QRectF QGraphicsDropShadowEffect::boundingRectFor(const QRectF &rect) const
-{
- Q_D(const QGraphicsDropShadowEffect);
- return d->filter->boundingRectFor(rect);
-}
-
-/*!
- \reimp
-*/
-void QGraphicsDropShadowEffect::draw(QPainter *painter)
-{
- Q_D(QGraphicsDropShadowEffect);
- if (d->filter->blurRadius() <= 0 && d->filter->offset().isNull()) {
- drawSource(painter);
- return;
- }
-
- PixmapPadMode mode = PadToEffectiveBoundingRect;
- if (painter->paintEngine()->type() == QPaintEngine::OpenGL2)
- mode = NoPad;
-
- // Draw pixmap in device coordinates to avoid pixmap scaling.
- QPoint offset;
- const QPixmap pixmap = sourcePixmap(Qt::DeviceCoordinates, &offset, mode);
- if (pixmap.isNull())
- return;
-
- QTransform restoreTransform = painter->worldTransform();
- painter->setWorldTransform(QTransform());
- d->filter->draw(painter, offset, pixmap);
- painter->setWorldTransform(restoreTransform);
-}
-
-/*!
- \class QGraphicsOpacityEffect
- \brief The QGraphicsOpacityEffect class provides an opacity effect.
- \since 4.6
-
- An opacity effect renders the source with an opacity. This effect is useful
- for making the source semi-transparent, similar to a fade-in/fade-out
- sequence. The opacity can be modified using the setOpacity() function.
-
- By default, the opacity is 0.7.
-
- \img graphicseffect-opacity.png
-
- \sa QGraphicsDropShadowEffect, QGraphicsBlurEffect, QGraphicsColorizeEffect
-*/
-
-/*!
- Constructs a new QGraphicsOpacityEffect instance.
- The \a parent parameter is passed to QGraphicsEffect's constructor.
-*/
-QGraphicsOpacityEffect::QGraphicsOpacityEffect(QObject *parent)
- : QGraphicsEffect(*new QGraphicsOpacityEffectPrivate, parent)
-{
-}
-
-/*!
- Destroys the effect.
-*/
-QGraphicsOpacityEffect::~QGraphicsOpacityEffect()
-{
-}
-
-/*!
- \property QGraphicsOpacityEffect::opacity
- \brief the opacity of the effect.
-
- The value should be in the range of 0.0 to 1.0, where 0.0 is
- fully transparent and 1.0 is fully opaque.
-
- By default, the opacity is 0.7.
-
- \sa setOpacityMask()
-*/
-qreal QGraphicsOpacityEffect::opacity() const
-{
- Q_D(const QGraphicsOpacityEffect);
- return d->opacity;
-}
-
-void QGraphicsOpacityEffect::setOpacity(qreal opacity)
-{
- Q_D(QGraphicsOpacityEffect);
- opacity = qBound(qreal(0.0), opacity, qreal(1.0));
-
- if (qFuzzyCompare(d->opacity, opacity))
- return;
-
- d->opacity = opacity;
- if ((d->isFullyTransparent = qFuzzyIsNull(d->opacity)))
- d->isFullyOpaque = 0;
- else
- d->isFullyOpaque = qFuzzyIsNull(d->opacity - 1);
- update();
- emit opacityChanged(opacity);
-}
-
-/*!
- \fn void QGraphicsOpacityEffect::opacityChanged(qreal opacity)
-
- This signal is emitted whenever the effect's opacity changes.
- The \a opacity parameter holds the effect's new opacity.
-*/
-
-/*!
- \property QGraphicsOpacityEffect::opacityMask
- \brief the opacity mask of the effect.
-
- An opacity mask allows you apply opacity to portions of an element.
-
- For example:
-
- \snippet doc/src/snippets/code/src_gui_effects_qgraphicseffect.cpp 2
-
- There is no opacity mask by default.
-
- \sa setOpacity()
-*/
-QBrush QGraphicsOpacityEffect::opacityMask() const
-{
- Q_D(const QGraphicsOpacityEffect);
- return d->opacityMask;
-}
-
-void QGraphicsOpacityEffect::setOpacityMask(const QBrush &mask)
-{
- Q_D(QGraphicsOpacityEffect);
- if (d->opacityMask == mask)
- return;
-
- d->opacityMask = mask;
- d->hasOpacityMask = (mask.style() != Qt::NoBrush);
- update();
-
- emit opacityMaskChanged(mask);
-}
-
-/*!
- \fn void QGraphicsOpacityEffect::opacityMaskChanged(const QBrush &mask)
-
- This signal is emitted whenever the effect's opacity mask changes.
- The \a mask parameter holds the effect's new opacity mask.
-*/
-
-/*!
- \reimp
-*/
-void QGraphicsOpacityEffect::draw(QPainter *painter)
-{
- Q_D(QGraphicsOpacityEffect);
-
- // Transparent; nothing to draw.
- if (d->isFullyTransparent)
- return;
-
- // Opaque; draw directly without going through a pixmap.
- if (d->isFullyOpaque && !d->hasOpacityMask) {
- drawSource(painter);
- return;
- }
-
- QPoint offset;
- Qt::CoordinateSystem system = sourceIsPixmap() ? Qt::LogicalCoordinates : Qt::DeviceCoordinates;
- QPixmap pixmap = sourcePixmap(system, &offset, QGraphicsEffect::NoPad);
- if (pixmap.isNull())
- return;
-
- painter->save();
- painter->setOpacity(d->opacity);
-
- if (d->hasOpacityMask) {
- QPainter pixmapPainter(&pixmap);
- pixmapPainter.setRenderHints(painter->renderHints());
- pixmapPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn);
- if (system == Qt::DeviceCoordinates) {
- QTransform worldTransform = painter->worldTransform();
- worldTransform *= QTransform::fromTranslate(-offset.x(), -offset.y());
- pixmapPainter.setWorldTransform(worldTransform);
- pixmapPainter.fillRect(sourceBoundingRect(), d->opacityMask);
- } else {
- pixmapPainter.translate(-offset);
- pixmapPainter.fillRect(pixmap.rect(), d->opacityMask);
- }
- }
-
- if (system == Qt::DeviceCoordinates)
- painter->setWorldTransform(QTransform());
-
- painter->drawPixmap(offset, pixmap);
- painter->restore();
-}
-
-
-QT_END_NAMESPACE
-
-#endif //QT_NO_GRAPHICSEFFECT
diff --git a/src/gui/effects/qgraphicseffect.h b/src/gui/effects/qgraphicseffect.h
deleted file mode 100644
index 6ddb6ae92c..0000000000
--- a/src/gui/effects/qgraphicseffect.h
+++ /dev/null
@@ -1,289 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QGRAPHICSEFFECT_H
-#define QGRAPHICSEFFECT_H
-
-#include <QtCore/qobject.h>
-#include <QtCore/qpoint.h>
-#include <QtCore/qrect.h>
-#include <QtGui/qcolor.h>
-#include <QtGui/qbrush.h>
-
-#ifndef QT_NO_GRAPHICSEFFECT
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Gui)
-
-class QGraphicsItem;
-class QStyleOption;
-class QPainter;
-class QPixmap;
-
-class QGraphicsEffectSource;
-
-class QGraphicsEffectPrivate;
-class Q_GUI_EXPORT QGraphicsEffect : public QObject
-{
- Q_OBJECT
- Q_FLAGS(ChangeFlags)
- Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged)
-public:
- enum ChangeFlag {
- SourceAttached = 0x1,
- SourceDetached = 0x2,
- SourceBoundingRectChanged = 0x4,
- SourceInvalidated = 0x8
- };
- Q_DECLARE_FLAGS(ChangeFlags, ChangeFlag)
-
- enum PixmapPadMode {
- NoPad,
- PadToTransparentBorder,
- PadToEffectiveBoundingRect
- };
-
- QGraphicsEffect(QObject *parent = 0);
- virtual ~QGraphicsEffect();
-
- virtual QRectF boundingRectFor(const QRectF &sourceRect) const;
- QRectF boundingRect() const;
-
- bool isEnabled() const;
-
-public Q_SLOTS:
- void setEnabled(bool enable);
- void update();
-
-Q_SIGNALS:
- void enabledChanged(bool enabled);
-
-protected:
- QGraphicsEffect(QGraphicsEffectPrivate &d, QObject *parent = 0);
- virtual void draw(QPainter *painter) = 0;
- virtual void sourceChanged(ChangeFlags flags);
- void updateBoundingRect();
-
- bool sourceIsPixmap() const;
- QRectF sourceBoundingRect(Qt::CoordinateSystem system = Qt::LogicalCoordinates) const;
- void drawSource(QPainter *painter);
- QPixmap sourcePixmap(Qt::CoordinateSystem system = Qt::LogicalCoordinates,
- QPoint *offset = 0,
- PixmapPadMode mode = PadToEffectiveBoundingRect) const;
-
-private:
- Q_DECLARE_PRIVATE(QGraphicsEffect)
- Q_DISABLE_COPY(QGraphicsEffect)
- friend class QGraphicsItem;
- friend class QGraphicsItemPrivate;
- friend class QGraphicsScenePrivate;
- friend class QWidget;
- friend class QWidgetPrivate;
-
-public:
- QGraphicsEffectSource *source() const; // internal
-
-};
-Q_DECLARE_OPERATORS_FOR_FLAGS(QGraphicsEffect::ChangeFlags)
-
-class QGraphicsColorizeEffectPrivate;
-class Q_GUI_EXPORT QGraphicsColorizeEffect: public QGraphicsEffect
-{
- Q_OBJECT
- Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged)
- Q_PROPERTY(qreal strength READ strength WRITE setStrength NOTIFY strengthChanged)
-public:
- QGraphicsColorizeEffect(QObject *parent = 0);
- ~QGraphicsColorizeEffect();
-
- QColor color() const;
- qreal strength() const;
-
-public Q_SLOTS:
- void setColor(const QColor &c);
- void setStrength(qreal strength);
-
-Q_SIGNALS:
- void colorChanged(const QColor &color);
- void strengthChanged(qreal strength);
-
-protected:
- void draw(QPainter *painter);
-
-private:
- Q_DECLARE_PRIVATE(QGraphicsColorizeEffect)
- Q_DISABLE_COPY(QGraphicsColorizeEffect)
-};
-
-class QGraphicsBlurEffectPrivate;
-class Q_GUI_EXPORT QGraphicsBlurEffect: public QGraphicsEffect
-{
- Q_OBJECT
- Q_FLAGS(BlurHint BlurHints)
- Q_PROPERTY(qreal blurRadius READ blurRadius WRITE setBlurRadius NOTIFY blurRadiusChanged)
- Q_PROPERTY(BlurHints blurHints READ blurHints WRITE setBlurHints NOTIFY blurHintsChanged)
-public:
- enum BlurHint {
- PerformanceHint = 0x00,
- QualityHint = 0x01,
- AnimationHint = 0x02
- };
- Q_DECLARE_FLAGS(BlurHints, BlurHint)
-
- QGraphicsBlurEffect(QObject *parent = 0);
- ~QGraphicsBlurEffect();
-
- QRectF boundingRectFor(const QRectF &rect) const;
- qreal blurRadius() const;
- BlurHints blurHints() const;
-
-public Q_SLOTS:
- void setBlurRadius(qreal blurRadius);
- void setBlurHints(BlurHints hints);
-
-Q_SIGNALS:
- void blurRadiusChanged(qreal blurRadius);
- void blurHintsChanged(BlurHints hints);
-
-protected:
- void draw(QPainter *painter);
-
-private:
- Q_DECLARE_PRIVATE(QGraphicsBlurEffect)
- Q_DISABLE_COPY(QGraphicsBlurEffect)
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(QGraphicsBlurEffect::BlurHints)
-
-class QGraphicsDropShadowEffectPrivate;
-class Q_GUI_EXPORT QGraphicsDropShadowEffect: public QGraphicsEffect
-{
- Q_OBJECT
- Q_PROPERTY(QPointF offset READ offset WRITE setOffset NOTIFY offsetChanged)
- Q_PROPERTY(qreal xOffset READ xOffset WRITE setXOffset NOTIFY offsetChanged)
- Q_PROPERTY(qreal yOffset READ yOffset WRITE setYOffset NOTIFY offsetChanged)
- Q_PROPERTY(qreal blurRadius READ blurRadius WRITE setBlurRadius NOTIFY blurRadiusChanged)
- Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged)
-public:
- QGraphicsDropShadowEffect(QObject *parent = 0);
- ~QGraphicsDropShadowEffect();
-
- QRectF boundingRectFor(const QRectF &rect) const;
- QPointF offset() const;
-
- inline qreal xOffset() const
- { return offset().x(); }
-
- inline qreal yOffset() const
- { return offset().y(); }
-
- qreal blurRadius() const;
- QColor color() const;
-
-public Q_SLOTS:
- void setOffset(const QPointF &ofs);
-
- inline void setOffset(qreal dx, qreal dy)
- { setOffset(QPointF(dx, dy)); }
-
- inline void setOffset(qreal d)
- { setOffset(QPointF(d, d)); }
-
- inline void setXOffset(qreal dx)
- { setOffset(QPointF(dx, yOffset())); }
-
- inline void setYOffset(qreal dy)
- { setOffset(QPointF(xOffset(), dy)); }
-
- void setBlurRadius(qreal blurRadius);
- void setColor(const QColor &color);
-
-Q_SIGNALS:
- void offsetChanged(const QPointF &offset);
- void blurRadiusChanged(qreal blurRadius);
- void colorChanged(const QColor &color);
-
-protected:
- void draw(QPainter *painter);
-
-private:
- Q_DECLARE_PRIVATE(QGraphicsDropShadowEffect)
- Q_DISABLE_COPY(QGraphicsDropShadowEffect)
-};
-
-class QGraphicsOpacityEffectPrivate;
-class Q_GUI_EXPORT QGraphicsOpacityEffect: public QGraphicsEffect
-{
- Q_OBJECT
- Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity NOTIFY opacityChanged)
- Q_PROPERTY(QBrush opacityMask READ opacityMask WRITE setOpacityMask NOTIFY opacityMaskChanged)
-public:
- QGraphicsOpacityEffect(QObject *parent = 0);
- ~QGraphicsOpacityEffect();
-
- qreal opacity() const;
- QBrush opacityMask() const;
-
-public Q_SLOTS:
- void setOpacity(qreal opacity);
- void setOpacityMask(const QBrush &mask);
-
-Q_SIGNALS:
- void opacityChanged(qreal opacity);
- void opacityMaskChanged(const QBrush &mask);
-
-protected:
- void draw(QPainter *painter);
-
-private:
- Q_DECLARE_PRIVATE(QGraphicsOpacityEffect)
- Q_DISABLE_COPY(QGraphicsOpacityEffect)
-};
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-#endif //QT_NO_GRAPHICSEFFECT
-
-#endif // QGRAPHICSEFFECT_H
-
diff --git a/src/gui/effects/qgraphicseffect_p.h b/src/gui/effects/qgraphicseffect_p.h
deleted file mode 100644
index 6a94db005e..0000000000
--- a/src/gui/effects/qgraphicseffect_p.h
+++ /dev/null
@@ -1,231 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QGRAPHICSEFFECT_P_H
-#define QGRAPHICSEFFECT_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists for the convenience
-// of qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp. This header
-// file may change from version to version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qgraphicseffect.h"
-
-#include <QPixmapCache>
-
-#include <private/qobject_p.h>
-#include <private/qpixmapfilter_p.h>
-
-#ifndef QT_NO_GRAPHICSEFFECT
-QT_BEGIN_NAMESPACE
-
-class QGraphicsEffectSourcePrivate;
-class Q_GUI_EXPORT QGraphicsEffectSource : public QObject
-{
- Q_OBJECT
-public:
- ~QGraphicsEffectSource();
- const QGraphicsItem *graphicsItem() const;
- const QWidget *widget() const;
- const QStyleOption *styleOption() const;
-
- bool isPixmap() const;
- void draw(QPainter *painter);
- void update();
-
- QRectF boundingRect(Qt::CoordinateSystem coordinateSystem = Qt::LogicalCoordinates) const;
- QRect deviceRect() const;
- QPixmap pixmap(Qt::CoordinateSystem system = Qt::LogicalCoordinates,
- QPoint *offset = 0,
- QGraphicsEffect::PixmapPadMode mode = QGraphicsEffect::PadToEffectiveBoundingRect) const;
-
-protected:
- QGraphicsEffectSource(QGraphicsEffectSourcePrivate &dd, QObject *parent = 0);
-
-private:
- Q_DECLARE_PRIVATE(QGraphicsEffectSource)
- Q_DISABLE_COPY(QGraphicsEffectSource)
- friend class QGraphicsEffect;
- friend class QGraphicsEffectPrivate;
- friend class QGraphicsScenePrivate;
- friend class QGraphicsItem;
- friend class QGraphicsItemPrivate;
- friend class QWidget;
- friend class QWidgetPrivate;
-};
-
-class QGraphicsEffectSourcePrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QGraphicsEffectSource)
-public:
- QGraphicsEffectSourcePrivate()
- : QObjectPrivate()
- , m_cachedSystem(Qt::DeviceCoordinates)
- , m_cachedMode(QGraphicsEffect::PadToTransparentBorder)
- {}
-
- enum InvalidateReason
- {
- TransformChanged,
- EffectRectChanged,
- SourceChanged
- };
-
- virtual ~QGraphicsEffectSourcePrivate();
- virtual void detach() = 0;
- virtual QRectF boundingRect(Qt::CoordinateSystem system) const = 0;
- virtual QRect deviceRect() const = 0;
- virtual const QGraphicsItem *graphicsItem() const = 0;
- virtual const QWidget *widget() const = 0;
- virtual const QStyleOption *styleOption() const = 0;
- virtual void draw(QPainter *p) = 0;
- virtual void update() = 0;
- virtual bool isPixmap() const = 0;
- virtual QPixmap pixmap(Qt::CoordinateSystem system, QPoint *offset = 0,
- QGraphicsEffect::PixmapPadMode mode = QGraphicsEffect::PadToTransparentBorder) const = 0;
- virtual void effectBoundingRectChanged() = 0;
-
- void setCachedOffset(const QPoint &offset);
- void invalidateCache(InvalidateReason reason = SourceChanged) const;
- Qt::CoordinateSystem currentCachedSystem() const { return m_cachedSystem; }
- QGraphicsEffect::PixmapPadMode currentCachedMode() const { return m_cachedMode; }
-
- friend class QGraphicsScenePrivate;
- friend class QGraphicsItem;
- friend class QGraphicsItemPrivate;
-
-private:
- mutable Qt::CoordinateSystem m_cachedSystem;
- mutable QGraphicsEffect::PixmapPadMode m_cachedMode;
- mutable QPoint m_cachedOffset;
- mutable QPixmapCache::Key m_cacheKey;
-};
-
-class Q_GUI_EXPORT QGraphicsEffectPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QGraphicsEffect)
-public:
- QGraphicsEffectPrivate() : source(0), isEnabled(1) {}
-
- inline void setGraphicsEffectSource(QGraphicsEffectSource *newSource)
- {
- QGraphicsEffect::ChangeFlags flags;
- if (source) {
- flags |= QGraphicsEffect::SourceDetached;
- source->d_func()->invalidateCache();
- source->d_func()->detach();
- delete source;
- }
- source = newSource;
- if (newSource)
- flags |= QGraphicsEffect::SourceAttached;
- q_func()->sourceChanged(flags);
- }
-
- QGraphicsEffectSource *source;
- QRectF boundingRect;
- quint32 isEnabled : 1;
- quint32 padding : 31; // feel free to use
-};
-
-
-class QGraphicsColorizeEffectPrivate : public QGraphicsEffectPrivate
-{
- Q_DECLARE_PUBLIC(QGraphicsColorizeEffect)
-public:
- QGraphicsColorizeEffectPrivate()
- : opaque(true)
- {
- filter = new QPixmapColorizeFilter;
- }
- ~QGraphicsColorizeEffectPrivate() { delete filter; }
-
- QPixmapColorizeFilter *filter;
- quint32 opaque : 1;
- quint32 padding : 31;
-};
-
-class QGraphicsBlurEffectPrivate : public QGraphicsEffectPrivate
-{
- Q_DECLARE_PUBLIC(QGraphicsBlurEffect)
-public:
- QGraphicsBlurEffectPrivate() : filter(new QPixmapBlurFilter) {}
- ~QGraphicsBlurEffectPrivate() { delete filter; }
-
- QPixmapBlurFilter *filter;
-};
-
-class QGraphicsDropShadowEffectPrivate : public QGraphicsEffectPrivate
-{
- Q_DECLARE_PUBLIC(QGraphicsDropShadowEffect)
-public:
- QGraphicsDropShadowEffectPrivate() : filter(new QPixmapDropShadowFilter) {}
- ~QGraphicsDropShadowEffectPrivate() { delete filter; }
-
- QPixmapDropShadowFilter *filter;
-};
-
-class QGraphicsOpacityEffectPrivate : public QGraphicsEffectPrivate
-{
- Q_DECLARE_PUBLIC(QGraphicsOpacityEffect)
-public:
- QGraphicsOpacityEffectPrivate()
- : opacity(qreal(0.7)), isFullyTransparent(0), isFullyOpaque(0), hasOpacityMask(0) {}
- ~QGraphicsOpacityEffectPrivate() {}
-
- qreal opacity;
- QBrush opacityMask;
- uint isFullyTransparent : 1;
- uint isFullyOpaque : 1;
- uint hasOpacityMask : 1;
-};
-
-QT_END_NAMESPACE
-
-#endif //QT_NO_GRAPHICSEFFECT
-#endif // QGRAPHICSEFFECT_P_H
-