-rw-r--r-- | library/resource.cpp | 35 |
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 @@ -20,16 +20,22 @@ #define QTOPIA_INTERNAL_MIMEEXT #include <qpe/qpeapplication.h> #include "resource.h" #include "mimetype.h" #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 #ifndef LIBQPE_NO_INLINE_IMAGES namespace { #include "inlinepics_p.h" } @@ -60,23 +66,25 @@ namespace { any filename type extension (e.g. .png, .xpm). */ #include <stdio.h> 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; } /*! Returns the QBitmap called \a pix. You should avoid including any filename type extension (e.g. .png, .xpm). */ @@ -135,27 +143,30 @@ QString Resource::findPixmap( const QString &pix ) // Common case optimizations... f = picsPath + pix + ".png"; if ( QFile( f ).exists() ) return f; f = picsPath + pix + ".xpm"; 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(); } /*! Returns a sound file for a sound called \a name. |