diff options
author | David Boddie <david.boddie@nokia.com> | 2011-03-22 15:55:52 (GMT) |
---|---|---|
committer | David Boddie <david.boddie@nokia.com> | 2011-03-22 15:55:52 (GMT) |
commit | 1d8b7f41a5393f77eb3079513b083739edd90b91 (patch) | |
tree | 232e346dba7226f35af80043e072538dba473201 /src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp | |
parent | 624368f588e555f523fc507986bf3ec80681be48 (diff) | |
parent | bf95c0ed87bf8a2ccd0a3d57ed81b8ae8fb8c4f2 (diff) | |
download | Qt-1d8b7f41a5393f77eb3079513b083739edd90b91.zip Qt-1d8b7f41a5393f77eb3079513b083739edd90b91.tar.gz Qt-1d8b7f41a5393f77eb3079513b083739edd90b91.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt into 4.7
Conflicts:
doc/src/declarative/declarativeui.qdoc
doc/src/declarative/dynamicobjects.qdoc
doc/src/declarative/elements.qdoc
doc/src/examples/qml-examples.qdoc
Diffstat (limited to 'src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp')
-rw-r--r-- | src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp b/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp index 016b87d..8cc8165 100644 --- a/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp +++ b/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp @@ -231,9 +231,18 @@ void QDeclarativeAnimatedImage::load() { Q_D(QDeclarativeAnimatedImage); + QDeclarativeImageBase::Status oldStatus = d->status; + qreal oldProgress = d->progress; + if (d->url.isEmpty()) { delete d->_movie; + d->setPixmap(QPixmap()); + d->progress = 0; d->status = Null; + if (d->status != oldStatus) + emit statusChanged(d->status); + if (d->progress != oldProgress) + emit progressChanged(d->progress); } else { #ifndef QT_NO_LOCALFILE_OPTIMIZED_QML QString lf = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(d->url); @@ -245,7 +254,8 @@ void QDeclarativeAnimatedImage::load() delete d->_movie; d->_movie = 0; d->status = Error; - emit statusChanged(d->status); + if (d->status != oldStatus) + emit statusChanged(d->status); return; } connect(d->_movie, SIGNAL(stateChanged(QMovie::MovieState)), @@ -262,20 +272,25 @@ void QDeclarativeAnimatedImage::load() d->setPixmap(d->_movie->currentPixmap()); d->status = Ready; d->progress = 1.0; - emit statusChanged(d->status); - emit sourceChanged(d->url); - emit progressChanged(d->progress); + if (d->status != oldStatus) + emit statusChanged(d->status); + if (d->progress != oldProgress) + emit progressChanged(d->progress); return; } #endif d->status = Loading; + d->progress = 0; + emit statusChanged(d->status); + emit progressChanged(d->progress); QNetworkRequest req(d->url); req.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true); d->reply = qmlEngine(this)->networkAccessManager()->get(req); QObject::connect(d->reply, SIGNAL(finished()), this, SLOT(movieRequestFinished())); + QObject::connect(d->reply, SIGNAL(downloadProgress(qint64,qint64)), + this, SLOT(requestProgress(qint64,qint64))); } - emit statusChanged(d->status); } #define ANIMATEDIMAGE_MAXIMUM_REDIRECT_RECURSION 16 |