QPixmapIconEngineEntry *QPixmapIconEngine::tryMatch(const QSize &size, QIcon::Mode mode, QIcon::State state)
{
QPixmapIconEngineEntry *pe = 0;
- for (int i = 0; i < pixmaps.count(); ++i) {
+ for (int i = 0; i < pixmaps.count(); ++i)
if (pixmaps.at(i).mode == mode && pixmaps.at(i).state == state) {
if (pe)
pe = bestSizeMatch(size, &pixmaps[i], pe);
else
pe = &pixmaps[i];
}
- }
return pe;
}
return icon;
}
- icon = *qtIconCache()->object(name);
- if (icon.isNull()) {
+ if (qtIconCache()->contains(name)) {
+ icon = *qtIconCache()->object(name);
+ } else {
QIcon *cachedIcon = new QIcon(new QIconLoaderEngine(name));
qtIconCache()->insert(name, cachedIcon);
icon = *cachedIcon;