summaryrefslogtreecommitdiff
path: root/library/resource.cpp
authorzecke <zecke>2005-04-04 20:23:39 (UTC)
committer zecke <zecke>2005-04-04 20:23:39 (UTC)
commit8ea4d025ded75eee0918258121d54273aead66ad (patch) (side-by-side diff)
tree9fd3ac0d4c355cc3e5c7345b2de8c7edd3b60db1 /library/resource.cpp
parentbe7d04d2b402e5515cfac3a2b32ed5831e15340b (diff)
downloadopie-8ea4d025ded75eee0918258121d54273aead66ad.zip
opie-8ea4d025ded75eee0918258121d54273aead66ad.tar.gz
opie-8ea4d025ded75eee0918258121d54273aead66ad.tar.bz2
Speed up start times of applications:
-Do not load MimeType when using Resource::loadIconSet we introduce a global boolean (like TT) What is bad: The boolean is visible outside of libqpe and we've that extern in the header... On the former we can use visibility attributes soon
Diffstat (limited to 'library/resource.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/resource.cpp35
1 files changed, 23 insertions, 12 deletions
diff --git a/library/resource.cpp b/library/resource.cpp
index 18139b9..da09892 100644
--- a/library/resource.cpp
+++ b/library/resource.cpp
@@ -25,6 +25,12 @@
#include <qdir.h>
#include <qpixmapcache.h>
+/*
+ * enable or disable the search for the icon without .png or .xpm
+ * suffix. We would use MimeType to lookup possible extensions...
+ */
+bool qpe_fast_findPixmap = false; // visible in libqpe
+
// this namespace is just a workaround for a gcc bug
// gcc exports inline functions in the generated file
// inlinepics_p.h
@@ -65,13 +71,15 @@ QPixmap Resource::loadPixmap( const QString &pix )
QPixmap pm; // null pixmap
QString key="QPE_"+pix;
if ( !QPixmapCache::find(key,pm) ) {
- QImage I = loadImage(pix);
- if( I.isNull() ) {
+ QImage I = loadImage(pix);
+ if( I.isNull() ) {
qWarning( "Could not load %s", pix.latin1() );
} else {
pm.convertFromImage(I);
QPixmapCache::insert(key,pm);
}
+ }else {
+ qWarning("In Cache for %s pixmap %s", qApp->argv()[0], pix.local8Bit().data() );
}
return pm;
}
@@ -140,17 +148,20 @@ QString Resource::findPixmap( const QString &pix )
if ( QFile( f ).exists() )
return f;
- // All formats...
- QStringList exts = opie_imageExtensions();
- for ( QStringList::ConstIterator it = exts.begin(); it!=exts.end(); ++it ) {
- QString f = picsPath + pix + "." + *it;
- if ( QFile(f).exists() )
- return f;
- }
+ if ( !qpe_fast_findPixmap ) {
+ printf("Doing slow search for %s %s\n", qApp->argv()[0], pix.local8Bit().data() );
+ // All formats...
+ QStringList exts = opie_imageExtensions();
+ for ( QStringList::ConstIterator it = exts.begin(); it!=exts.end(); ++it ) {
+ QString f = picsPath + pix + "." + *it;
+ if ( QFile(f).exists() )
+ return f;
+ }
- // Finally, no (or existing) extension...
- if ( QFile( picsPath + pix ).exists() )
- return picsPath + pix;
+ // Finally, no (or existing) extension...
+ if ( QFile( picsPath + pix ).exists() )
+ return picsPath + pix;
+ }
//qDebug("Cannot find pixmap: %s", pix.latin1());
return QString();