diff options
author | Martin Jones <martin.jones@nokia.com> | 2009-11-19 03:50:43 (GMT) |
---|---|---|
committer | Martin Jones <martin.jones@nokia.com> | 2009-11-19 03:50:43 (GMT) |
commit | d363016a703f565432d2fd3d84cea4e179c79995 (patch) | |
tree | 138b34e99a9ac11b4402a966e7e4ba395b49bee9 /src/declarative/graphicsitems/qmlgraphicsimagebase.cpp | |
parent | 1337ed2a695e5d78cfde830f07877ff55a5b7051 (diff) | |
download | Qt-d363016a703f565432d2fd3d84cea4e179c79995.zip Qt-d363016a703f565432d2fd3d84cea4e179c79995.tar.gz Qt-d363016a703f565432d2fd3d84cea4e179c79995.tar.bz2 |
Add Image auto test
Also fix qmlpixmapcache error reporting and Image and BorderImage
progress reporting for null images.
Diffstat (limited to 'src/declarative/graphicsitems/qmlgraphicsimagebase.cpp')
-rw-r--r-- | src/declarative/graphicsitems/qmlgraphicsimagebase.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/declarative/graphicsitems/qmlgraphicsimagebase.cpp b/src/declarative/graphicsitems/qmlgraphicsimagebase.cpp index 0b57540..3e86a7c 100644 --- a/src/declarative/graphicsitems/qmlgraphicsimagebase.cpp +++ b/src/declarative/graphicsitems/qmlgraphicsimagebase.cpp @@ -108,16 +108,15 @@ void QmlGraphicsImageBase::setSource(const QUrl &url) if (url.isEmpty()) { d->pix = QPixmap(); d->status = Null; - d->progress = 1.0; setImplicitWidth(0); setImplicitHeight(0); emit statusChanged(d->status); emit sourceChanged(d->url); - emit progressChanged(1.0); update(); } else { d->status = Loading; - QNetworkReply *reply = QmlPixmapCache::get(qmlEngine(this), d->url, &d->pix); + bool ok = true; + QNetworkReply *reply = QmlPixmapCache::get(qmlEngine(this), d->url, &d->pix, &ok); if (reply) { d->pendingPixmapCache = true; connect(reply, SIGNAL(finished()), this, SLOT(requestFinished())); @@ -125,15 +124,19 @@ void QmlGraphicsImageBase::setSource(const QUrl &url) this, SLOT(requestProgress(qint64,qint64))); } else { //### should be unified with requestFinished - setImplicitWidth(d->pix.width()); - setImplicitHeight(d->pix.height()); - - if (d->status == Loading) - d->status = Ready; + if (ok) { + setImplicitWidth(d->pix.width()); + setImplicitHeight(d->pix.height()); + + if (d->status == Loading) + d->status = Ready; + } else { + d->status = Error; + } d->progress = 1.0; emit statusChanged(d->status); emit sourceChanged(d->url); - emit progressChanged(1.0); + emit progressChanged(d->progress); update(); } } |