author | zecke <zecke> | 2005-04-04 20:23:39 (UTC) |
---|---|---|
committer | zecke <zecke> | 2005-04-04 20:23:39 (UTC) |
commit | 8ea4d025ded75eee0918258121d54273aead66ad (patch) (side-by-side diff) | |
tree | 9fd3ac0d4c355cc3e5c7345b2de8c7edd3b60db1 | |
parent | be7d04d2b402e5515cfac3a2b32ed5831e15340b (diff) | |
download | opie-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
-rw-r--r-- | library/resource.cpp | 11 | ||||
-rw-r--r-- | library/resource.h | 9 |
2 files changed, 20 insertions, 0 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 @@ -72,6 +78,8 @@ QPixmap Resource::loadPixmap( const QString &pix ) pm.convertFromImage(I); QPixmapCache::insert(key,pm); } + }else { + qWarning("In Cache for %s pixmap %s", qApp->argv()[0], pix.local8Bit().data() ); } return pm; } @@ -140,6 +148,8 @@ QString Resource::findPixmap( const QString &pix ) 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 ) { @@ -151,6 +161,7 @@ QString Resource::findPixmap( const QString &pix ) // Finally, no (or existing) extension... if ( QFile( picsPath + pix ).exists() ) return picsPath + pix; + } //qDebug("Cannot find pixmap: %s", pix.latin1()); return QString(); diff --git a/library/resource.h b/library/resource.h index 1f1ba9a..4a3502a 100644 --- a/library/resource.h +++ b/library/resource.h @@ -42,14 +42,23 @@ public: static QStringList allSounds(); }; +extern bool qpe_fast_findPixmap; // Inline for compatibility with SHARP ROMs inline QIconSet Resource::loadIconSet( const QString &pix ) { + /* + * disable the slow load + */ + bool oldMode = qpe_fast_findPixmap; + qpe_fast_findPixmap = true; + QPixmap dpm = loadPixmap( pix + "_disabled" ); QPixmap pm = loadPixmap( pix ); QIconSet is( pm ); if ( !dpm.isNull() ) is.setPixmap( dpm, pm.width() <= 22 ? QIconSet::Small : QIconSet::Large, QIconSet::Disabled ); + + qpe_fast_findPixmap = oldMode; return is; } |