summaryrefslogtreecommitdiff
path: root/library/resource.cpp
Unidiff
Diffstat (limited to 'library/resource.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/resource.cpp33
1 files changed, 4 insertions, 29 deletions
diff --git a/library/resource.cpp b/library/resource.cpp
index 43fdc60..cfa0d26 100644
--- a/library/resource.cpp
+++ b/library/resource.cpp
@@ -41,77 +41,52 @@ static bool g_notUseSet = ::getenv("OVERWRITE_ICON_SET");
41 41
42 The resources may be provided from files or other sources. 42 The resources may be provided from files or other sources.
43 43
44 The allSounds() function returns a list of all the sounds available. 44 The allSounds() function returns a list of all the sounds available.
45 A particular sound can be searched for using findSound(). 45 A particular sound can be searched for using findSound().
46 46
47 Images can be loaded with loadImage(), loadPixmap(), loadBitmap() 47 Images can be loaded with loadImage(), loadPixmap(), loadBitmap()
48 and loadIconSet(). 48 and loadIconSet().
49 49
50 \ingroup qtopiaemb 50 \ingroup qtopiaemb
51*/ 51*/
52 52
53/*! 53/*!
54 \fn Resource::Resource() 54 \fn Resource::Resource()
55 \internal 55 \internal
56*/ 56*/
57 57
58/*! 58/*!
59 Returns the QPixmap called \a pix. You should avoid including 59 Returns the QPixmap called \a pix. You should avoid including
60 any filename type extension (e.g. .png, .xpm). 60 any filename type extension (e.g. .png, .xpm).
61*/ 61*/
62QPixmap Resource::loadPixmap( const QString &pix ) 62QPixmap Resource::loadPixmap( const QString &pix )
63{ 63{
64 QPixmap pm; 64 QPixmap pm;
65 65 QString key="QPE_"+pix;
66 // Give the pixmaps some kind of namespace in the pixmapcache 66 if ( !QPixmapCache::find(key,pm) ) {
67 int index = pix.find('/'); 67 pm.convertFromImage(loadImage(pix));
68 QString appName1 = qApp->argv()[0]; 68 QPixmapCache::insert(key,pm);
69 appName1 = appName1.replace(QRegExp(".*/"),"");
70 QString appName2 = pix.left(index);
71
72 if ( appName2 == "" || appName2 == pix || appName2 == "icons" )
73 appName2 = "Global";
74
75 QString appKey1 = "_QPE_" + appName1 + "_" + pix;
76 QString appKey2 = "_QPE_" + appName2 + "_" + pix.mid(index+1);
77
78 if ( !QPixmapCache::find(appKey1, pm) ) {
79 if ( !QPixmapCache::find(appKey2, pm) ) {
80 QImage img;
81 QString f = findPixmap( pix );
82 if ( !f.isEmpty() ) {
83 img.load(f);
84 if ( !img.isNull() ) {
85 pm.convertFromImage(img);
86 if ( f.contains(appName1) ) {
87 QPixmapCache::insert( appKey1, pm);
88 } else {
89 QPixmapCache::insert( appKey2, pm);
90 }
91 }
92 }
93 }
94 } 69 }
95 return pm; 70 return pm;
96} 71}
97 72
98/*! 73/*!
99 Returns the QBitmap called \a pix. You should avoid including 74 Returns the QBitmap called \a pix. You should avoid including
100 any filename type extension (e.g. .png, .xpm). 75 any filename type extension (e.g. .png, .xpm).
101*/ 76*/
102QBitmap Resource::loadBitmap( const QString &pix ) 77QBitmap Resource::loadBitmap( const QString &pix )
103{ 78{
104 QBitmap bm; 79 QBitmap bm;
105 bm = loadPixmap(pix); 80 bm = loadPixmap(pix);
106 return bm; 81 return bm;
107} 82}
108 83
109/*! 84/*!
110 Returns the filename of a pixmap called \a pix. You should avoid including 85 Returns the filename of a pixmap called \a pix. You should avoid including
111 any filename type extension (e.g. .png, .xpm). 86 any filename type extension (e.g. .png, .xpm).
112 87
113 Normally you will use loadPixmap() rather than this function. 88 Normally you will use loadPixmap() rather than this function.
114*/ 89*/
115QString Resource::findPixmap( const QString &pix ) 90QString Resource::findPixmap( const QString &pix )
116{ 91{
117 QString picsPath = QPEApplication::qpeDir() + "pics/"; 92 QString picsPath = QPEApplication::qpeDir() + "pics/";