From 99b055b572f64f180751b3a43440796d1bf9fc4f Mon Sep 17 00:00:00 2001 From: zecke Date: Sun, 26 Dec 2004 13:40:21 +0000 Subject: Merge the way we insert Images into the PixmapCache --- (limited to 'library/resource.cpp') diff --git a/library/resource.cpp b/library/resource.cpp index cfa0d26..43fdc60 100644 --- a/library/resource.cpp +++ b/library/resource.cpp @@ -62,10 +62,35 @@ static bool g_notUseSet = ::getenv("OVERWRITE_ICON_SET"); QPixmap Resource::loadPixmap( const QString &pix ) { QPixmap pm; - QString key="QPE_"+pix; - if ( !QPixmapCache::find(key,pm) ) { - pm.convertFromImage(loadImage(pix)); - QPixmapCache::insert(key,pm); + + // Give the pixmaps some kind of namespace in the pixmapcache + int index = pix.find('/'); + QString appName1 = qApp->argv()[0]; + appName1 = appName1.replace(QRegExp(".*/"),""); + QString appName2 = pix.left(index); + + if ( appName2 == "" || appName2 == pix || appName2 == "icons" ) + appName2 = "Global"; + + QString appKey1 = "_QPE_" + appName1 + "_" + pix; + QString appKey2 = "_QPE_" + appName2 + "_" + pix.mid(index+1); + + if ( !QPixmapCache::find(appKey1, pm) ) { + if ( !QPixmapCache::find(appKey2, pm) ) { + QImage img; + QString f = findPixmap( pix ); + if ( !f.isEmpty() ) { + img.load(f); + if ( !img.isNull() ) { + pm.convertFromImage(img); + if ( f.contains(appName1) ) { + QPixmapCache::insert( appKey1, pm); + } else { + QPixmapCache::insert( appKey2, pm); + } + } + } + } } return pm; } -- cgit v0.9.0.2