Fix bug showing folder icons for files
Fix an issue where the cache was updated with the folder icon, even though this is never used from the cache. This caused files to sometimes be shown with a folder icon: If a folder has an extension (e.g. a folder named 'folder.ext'), this means the folder icon will be written to the cache for the 'ext' extension, and from that point on all .ext files will be shown with the folder icon. The fix is to not save an icon in the cache for those cases where it will not be used from the cache anyway, by using the same condition for updating the cache as for reading it (which is in line 8 of the same function). Change-Id: I9ce8fca0718b2b62b9390fa64989acd54952a88e Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
This commit is contained in:
parent
c227546d2e
commit
437da962c2
@ -376,15 +376,16 @@ QIcon QFileIconProviderPrivate::getMacIcon(const QFileInfo &fi) const
|
|||||||
qt_mac_constructQIconFromIconRef(iconRef, 0, &retIcon);
|
qt_mac_constructQIconFromIconRef(iconRef, 0, &retIcon);
|
||||||
ReleaseIconRef(iconRef);
|
ReleaseIconRef(iconRef);
|
||||||
|
|
||||||
pixmap = retIcon.pixmap(16);
|
if (fi.isFile() && !fi.isExecutable() && !fi.isSymLink()) {
|
||||||
QPixmapCache::insert(keyBase + QLatin1String("16"), pixmap);
|
pixmap = retIcon.pixmap(16);
|
||||||
pixmap = retIcon.pixmap(32);
|
QPixmapCache::insert(keyBase + QLatin1String("16"), pixmap);
|
||||||
QPixmapCache::insert(keyBase + QLatin1String("32"), pixmap);
|
pixmap = retIcon.pixmap(32);
|
||||||
pixmap = retIcon.pixmap(64);
|
QPixmapCache::insert(keyBase + QLatin1String("32"), pixmap);
|
||||||
QPixmapCache::insert(keyBase + QLatin1String("64"), pixmap);
|
pixmap = retIcon.pixmap(64);
|
||||||
pixmap = retIcon.pixmap(128);
|
QPixmapCache::insert(keyBase + QLatin1String("64"), pixmap);
|
||||||
QPixmapCache::insert(keyBase + QLatin1String("128"), pixmap);
|
pixmap = retIcon.pixmap(128);
|
||||||
|
QPixmapCache::insert(keyBase + QLatin1String("128"), pixmap);
|
||||||
|
}
|
||||||
return retIcon;
|
return retIcon;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user