Source Code (Use browser search to find items of interest.)
Class Index
qt'QPixmapCache (./qt-2.1.0/src/kernel/qpixmapcache.h:34)
class Q_EXPORT QPixmapCache // global pixmap cache
{
public:
static int cacheLimit();
static void setCacheLimit( int );
static QPixmap *find( const QString &key );
static bool find( const QString &key, QPixmap& );
static bool insert( const QString &key, QPixmap * );
static void insert( const QString &key, const QPixmap& );
static void clear();
};
qt'QPixmapCache::find() (./qt-2.1.0/src/kernel/qpixmapcache.cpp:178)
QPixmap *QPixmapCache::find( const QString &key )
{
return pm_cache ? pm_cache->find(key) : 0;
}
/*!
Looks for a cached pixmap associated with \a key in the cache. If a
pixmap is found, the function sets \a pm to that pixmap and returns
TRUE. Otherwise, the function returns FALSE and does not change \a
pm.
Example:
\code
QPixmap p;
if ( !QPixmapCache::find("my_previous_copy", pm) ) {
pm.load("bigimage.png");
QPixmapCache::insert("my_previous_copy", pm);
}
painter->drawPixmap(0, 0, p);
\endcode
*/
qt'QPixmapCache::find() (./qt-2.1.0/src/kernel/qpixmapcache.cpp:201)
bool QPixmapCache::find( const QString &key, QPixmap& pm )
{
QPixmap* p = pm_cache ? pm_cache->find(key) : 0;
if ( p ) pm = *p;
return !!p;
}
/*!
\obsolete
Inserts the pixmap \a pm associated with \a key into the cache.
Returns TRUE if successful, or FALSE if the pixmap is too big for the cache.
<strong>
NOTE: \a pm must be allocated on the heap (using \c new).
If this function returns FALSE, you must delete \a pm yourself.
If this function returns TRUE, do not use \a pm afterwards or
keep references to it, as any other insertions into the cache,
from anywhere in the application, or within Qt itself, could cause
the pixmap to be discarded from the cache, and the pointer to
become invalid.
Due to these dangers, we strongly recommend that you use
insert(const QString&, const QPixmap&) instead.
</strong>
*/
qt'QPixmapCache::insert() (./qt-2.1.0/src/kernel/qpixmapcache.cpp:230)
bool QPixmapCache::insert( const QString &key, QPixmap *pm )
{
if ( !pm_cache ) { // create pixmap cache
pm_cache = new QPMCache;
CHECK_PTR( pm_cache );
}
return pm_cache->insert( key, pm, pm->width()*pm->height()*pm->depth()/8 );
}
/*!
Inserts a copy of the pixmap \a pm associated with \a key into the cache.
Returns TRUE if successful, or FALSE if the pixmap is too big for the cache.
All pixmaps inserted by the Qt library have a key starting with "$qt..".
Use something else for your own pixmaps.
When a pixmap is inserted and the cache is about to exceed its limit, it
removes pixmaps until there is enough room for the pixmap to be inserted.
The oldest pixmaps (least recently accessed in the cache) are deleted
when more space is needed.
\sa setCacheLimit().
*/
qt'QPixmapCache::insert() (./qt-2.1.0/src/kernel/qpixmapcache.cpp:255)
void QPixmapCache::insert( const QString &key, const QPixmap& pm )
{
if ( !pm_cache ) { // create pixmap cache
pm_cache = new QPMCache;
CHECK_PTR( pm_cache );
}
QPixmap *p = new QPixmap(pm);
if ( !pm_cache->insert( key, p, p->width()*p->height()*p->depth()/8 ) )
delete p;
}
/*!
Returns the cache limit (in kilobytes).
The default setting is 1024 kilobytes.
\sa setCacheLimit().
*/
qt'QPixmapCache::cacheLimit() (./qt-2.1.0/src/kernel/qpixmapcache.cpp:274)
int QPixmapCache::cacheLimit()
{
return cache_limit;
}
/*!
Sets the cache limit to \a n kilobytes.
The default setting is 1024 kilobytes.
\sa cacheLimit()
*/
qt'QPixmapCache::setCacheLimit() (./qt-2.1.0/src/kernel/qpixmapcache.cpp:287)
void QPixmapCache::setCacheLimit( int n )
{
cache_limit = n;
if ( pm_cache )
pm_cache->setMaxCost( 1024*cache_limit );
}
/*!
Removes all pixmaps from the cache.
*/
qt'QPixmapCache::clear() (./qt-2.1.0/src/kernel/qpixmapcache.cpp:299)
void QPixmapCache::clear()
{
if ( pm_cache )
pm_cache->clear();
}