diff options
author | Warwick Allison <warwick.allison@nokia.com> | 2010-02-01 01:41:07 (GMT) |
---|---|---|
committer | Warwick Allison <warwick.allison@nokia.com> | 2010-02-01 01:41:07 (GMT) |
commit | 7e85c6dc7ba0aaa6dfcad40dc0e9df0e2adb3741 (patch) | |
tree | 07e839b8dd88c381471b96917ef5aafa484233b1 /src/gui/image/qpixmap.cpp | |
parent | 6e8feab83fa9303b1345f4a27478ba3ee0316e86 (diff) | |
parent | 5cf8677758e6fbfa5bf360c73519c14630db808c (diff) | |
download | Qt-7e85c6dc7ba0aaa6dfcad40dc0e9df0e2adb3741.zip Qt-7e85c6dc7ba0aaa6dfcad40dc0e9df0e2adb3741.tar.gz Qt-7e85c6dc7ba0aaa6dfcad40dc0e9df0e2adb3741.tar.bz2 |
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Conflicts:
src/declarative/util/qmlpixmapcache.cpp
Diffstat (limited to 'src/gui/image/qpixmap.cpp')
-rw-r--r-- | src/gui/image/qpixmap.cpp | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp index 674d5da..f823fdc 100644 --- a/src/gui/image/qpixmap.cpp +++ b/src/gui/image/qpixmap.cpp @@ -833,14 +833,21 @@ bool QPixmap::load(const QString &fileName, const char *format, Qt::ImageConvers if (QPixmapCache::find(key, *this)) return true; - QPixmapData *tmp = QPixmapData::create(0, 0, QPixmapData::PixmapType); - if (tmp->fromFile(fileName, format, flags)) { - data = tmp; - QPixmapCache::insert(key, *this); - return true; + bool ok; + + if (data) { + ok = data->fromFile(fileName, format, flags); + } else { + QScopedPointer<QPixmapData> tmp(QPixmapData::create(0, 0, QPixmapData::PixmapType)); + ok = tmp->fromFile(fileName, format, flags); + if (ok) + data = tmp.take(); } - delete tmp; - return false; + + if (ok) + QPixmapCache::insert(key, *this); + + return ok; } /*! |