summaryrefslogtreecommitdiff
path: root/library/resource.cpp
authorwimpie <wimpie>2005-01-09 02:59:13 (UTC)
committer wimpie <wimpie>2005-01-09 02:59:13 (UTC)
commit987bc9a2c5b39ddd4dc2a665cea65688bfd2179e (patch) (unidiff)
tree815fc6d12162f1a5eccc4b1ae0da61dea3811bdf /library/resource.cpp
parente54346d28b19d3ac671802a25e8c03f346693291 (diff)
downloadopie-987bc9a2c5b39ddd4dc2a665cea65688bfd2179e.zip
opie-987bc9a2c5b39ddd4dc2a665cea65688bfd2179e.tar.gz
opie-987bc9a2c5b39ddd4dc2a665cea65688bfd2179e.tar.bz2
applnk : lazy loading of mime type icons (load only when needed)
resource.cpp : print warning when requested image cannot be found and print the name of that image too
Diffstat (limited to 'library/resource.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/resource.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/library/resource.cpp b/library/resource.cpp
index cfa0d26..b31876f 100644
--- a/library/resource.cpp
+++ b/library/resource.cpp
@@ -50,31 +50,37 @@ static bool g_notUseSet = ::getenv("OVERWRITE_ICON_SET");
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*/
62#include <stdio.h>
62QPixmap Resource::loadPixmap( const QString &pix ) 63QPixmap Resource::loadPixmap( const QString &pix )
63{ 64{
64 QPixmap pm; 65 QPixmap pm; // null pixmap
65 QString key="QPE_"+pix; 66 QString key="QPE_"+pix;
66 if ( !QPixmapCache::find(key,pm) ) { 67 if ( !QPixmapCache::find(key,pm) ) {
67 pm.convertFromImage(loadImage(pix)); 68 QImage I = loadImage(pix);
68 QPixmapCache::insert(key,pm); 69 if( I.isNull() ) {
70 qWarning( "Could not load %s", pix.latin1() );
71 } else {
72 pm.convertFromImage(I);
73 QPixmapCache::insert(key,pm);
74 }
69 } 75 }
70 return pm; 76 return pm;
71} 77}
72 78
73/*! 79/*!
74 Returns the QBitmap called \a pix. You should avoid including 80 Returns the QBitmap called \a pix. You should avoid including
75 any filename type extension (e.g. .png, .xpm). 81 any filename type extension (e.g. .png, .xpm).
76*/ 82*/
77QBitmap Resource::loadBitmap( const QString &pix ) 83QBitmap Resource::loadBitmap( const QString &pix )
78{ 84{
79 QBitmap bm; 85 QBitmap bm;
80 bm = loadPixmap(pix); 86 bm = loadPixmap(pix);
@@ -92,25 +98,24 @@ QString Resource::findPixmap( const QString &pix )
92 QString picsPath = QPEApplication::qpeDir() + "pics/"; 98 QString picsPath = QPEApplication::qpeDir() + "pics/";
93 99
94 QString f; 100 QString f;
95 101
96 // Common case optimizations... 102 // Common case optimizations...
97 f = picsPath + pix + ".png"; 103 f = picsPath + pix + ".png";
98 if ( QFile( f ).exists() ) 104 if ( QFile( f ).exists() )
99 return f; 105 return f;
100 f = picsPath + pix + ".xpm"; 106 f = picsPath + pix + ".xpm";
101 if ( QFile( f ).exists() ) 107 if ( QFile( f ).exists() )
102 return f; 108 return f;
103 109
104
105 // All formats... 110 // All formats...
106 QStrList fileFormats = QImageIO::inputFormats(); 111 QStrList fileFormats = QImageIO::inputFormats();
107 QString ff = fileFormats.first(); 112 QString ff = fileFormats.first();
108 while ( fileFormats.current() ) { 113 while ( fileFormats.current() ) {
109 QStringList exts = MimeType("image/"+ff.lower()).extensions(); 114 QStringList exts = MimeType("image/"+ff.lower()).extensions();
110 for ( QStringList::ConstIterator it = exts.begin(); it!=exts.end(); ++it ) { 115 for ( QStringList::ConstIterator it = exts.begin(); it!=exts.end(); ++it ) {
111 QString f = picsPath + pix + "." + *it; 116 QString f = picsPath + pix + "." + *it;
112 if ( QFile(f).exists() ) 117 if ( QFile(f).exists() )
113 return f; 118 return f;
114 } 119 }
115 ff = fileFormats.next(); 120 ff = fileFormats.next();
116 } 121 }