summaryrefslogtreecommitdiffstats
path: root/src/imports/particles/qdeclarativeparticles.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/particles/qdeclarativeparticles.cpp')
-rw-r--r--src/imports/particles/qdeclarativeparticles.cpp33
1 files changed, 10 insertions, 23 deletions
diff --git a/src/imports/particles/qdeclarativeparticles.cpp b/src/imports/particles/qdeclarativeparticles.cpp
index 630c068..a7c445d 100644
--- a/src/imports/particles/qdeclarativeparticles.cpp
+++ b/src/imports/particles/qdeclarativeparticles.cpp
@@ -437,7 +437,7 @@ public:
, lifeSpanDev(1000), fadeInDur(200), fadeOutDur(300)
, angle(0), angleDev(0), velocity(0), velocityDev(0), emissionCarry(0.)
, addParticleTime(0), addParticleCount(0), lastAdvTime(0)
- , motion(0), pendingPixmapCache(false), clock(this)
+ , motion(0), clock(this)
{
}
@@ -456,7 +456,7 @@ public:
void updateOpacity(QDeclarativeParticle &p, int age);
QUrl url;
- QPixmap image;
+ QDeclarativePixmap image;
int count;
int emissionRate;
qreal emissionVariance;
@@ -475,7 +475,6 @@ public:
QDeclarativeParticleMotion *motion;
QDeclarativeParticlesPainter *paintItem;
- bool pendingPixmapCache;
QList<QPair<int, int> > bursts;//countLeft, emissionRate pairs
QList<QDeclarativeParticle> particles;
@@ -709,9 +708,6 @@ QDeclarativeParticles::QDeclarativeParticles(QDeclarativeItem *parent)
QDeclarativeParticles::~QDeclarativeParticles()
{
- Q_D(QDeclarativeParticles);
- if (d->pendingPixmapCache)
- QDeclarativePixmapCache::cancel(d->url, this);
}
/*!
@@ -732,10 +728,8 @@ QUrl QDeclarativeParticles::source() const
void QDeclarativeParticles::imageLoaded()
{
Q_D(QDeclarativeParticles);
- d->pendingPixmapCache = false;
- QString errorString;
- if (QDeclarativePixmapCache::get(d->url, &d->image, &errorString)==QDeclarativePixmapReply::Error)
- qmlInfo(this) << errorString;
+ if (d->image.isError())
+ qmlInfo(this) << d->image.error();
d->paintItem->updateSize();
d->paintItem->update();
}
@@ -747,27 +741,20 @@ void QDeclarativeParticles::setSource(const QUrl &name)
if ((d->url.isEmpty() == name.isEmpty()) && name == d->url)
return;
- if (d->pendingPixmapCache) {
- QDeclarativePixmapCache::cancel(d->url, this);
- d->pendingPixmapCache = false;
- }
if (name.isEmpty()) {
d->url = name;
- d->image = QPixmap();
+ d->image.clear(this);
d->paintItem->updateSize();
d->paintItem->update();
} else {
d->url = name;
Q_ASSERT(!name.isRelative());
- QString errorString;
- QDeclarativePixmapReply::Status status = QDeclarativePixmapCache::get(d->url, &d->image, &errorString);
- if (status != QDeclarativePixmapReply::Ready && status != QDeclarativePixmapReply::Error) {
- QDeclarativePixmapReply *reply = QDeclarativePixmapCache::request(qmlEngine(this), d->url);
- connect(reply, SIGNAL(finished()), this, SLOT(imageLoaded()));
- d->pendingPixmapCache = true;
+ d->image.load(qmlEngine(this), d->url);
+ if (d->image.isLoading()) {
+ d->image.connectFinished(this, SLOT(imageLoaded()));
} else {
- if (status == QDeclarativePixmapReply::Error)
- qmlInfo(this) << errorString;
+ if (d->image.isError())
+ qmlInfo(this) << d->image.error();
//### unify with imageLoaded
d->paintItem->updateSize();
d->paintItem->update();