Ignore:
Timestamp:
Aug 2, 2010, 9:27:30 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.6.3 sources from branches/vendor/nokia/qt.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/gui/image/qicon.cpp

    r763 r769  
    105105static QBasicAtomicInt serialNumCounter = Q_BASIC_ATOMIC_INITIALIZER(1);
    106106
     107static void qt_cleanup_icon_cache();
     108typedef QCache<QString, QIcon> IconCache;
     109Q_GLOBAL_STATIC_WITH_INITIALIZER(IconCache, qtIconCache, qAddPostRoutine(qt_cleanup_icon_cache))
     110
     111static void qt_cleanup_icon_cache()
     112{
     113    qtIconCache()->clear();
     114}
     115
    107116QIconPrivate::QIconPrivate()
    108117    : engine(0), ref(1),
     
    964973QIcon QIcon::fromTheme(const QString &name, const QIcon &fallback)
    965974{
    966     static QCache <QString, QIcon> iconCache;
    967 
    968975    QIcon icon;
    969976
    970     if (iconCache.contains(name)) {
    971         icon = *iconCache.object(name);
     977    if (qtIconCache()->contains(name)) {
     978        icon = *qtIconCache()->object(name);
    972979    } else {
    973980        QIcon *cachedIcon  = new QIcon(new QIconLoaderEngine(name));
    974         iconCache.insert(name, cachedIcon);
     981        qtIconCache()->insert(name, cachedIcon);
    975982        icon = *cachedIcon;
    976983    }
    977984
    978     if (icon.availableSizes().isEmpty())
     985    // Note the qapp check is to allow lazy loading of static icons
     986    // Supporting fallbacks will not work for this case.
     987    if (qApp && icon.availableSizes().isEmpty())
    979988        return fallback;
    980989
Note: See TracChangeset for help on using the changeset viewer.