author | zecke <zecke> | 2005-04-04 20:23:39 (UTC) |
---|---|---|
committer | zecke <zecke> | 2005-04-04 20:23:39 (UTC) |
commit | 8ea4d025ded75eee0918258121d54273aead66ad (patch) (unidiff) | |
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 | 35 | ||||
-rw-r--r-- | library/resource.h | 11 |
2 files changed, 33 insertions, 13 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 @@ | |||
25 | #include <qdir.h> | 25 | #include <qdir.h> |
26 | #include <qpixmapcache.h> | 26 | #include <qpixmapcache.h> |
27 | 27 | ||
28 | /* | ||
29 | * enable or disable the search for the icon without .png or .xpm | ||
30 | * suffix. We would use MimeType to lookup possible extensions... | ||
31 | */ | ||
32 | bool qpe_fast_findPixmap = false; // visible in libqpe | ||
33 | |||
28 | // this namespace is just a workaround for a gcc bug | 34 | // this namespace is just a workaround for a gcc bug |
29 | // gcc exports inline functions in the generated file | 35 | // gcc exports inline functions in the generated file |
30 | // inlinepics_p.h | 36 | // inlinepics_p.h |
@@ -65,13 +71,15 @@ QPixmap Resource::loadPixmap( const QString &pix ) | |||
65 | QPixmap pm; // null pixmap | 71 | QPixmap pm; // null pixmap |
66 | QString key="QPE_"+pix; | 72 | QString key="QPE_"+pix; |
67 | if ( !QPixmapCache::find(key,pm) ) { | 73 | if ( !QPixmapCache::find(key,pm) ) { |
68 | QImage I = loadImage(pix); | 74 | QImage I = loadImage(pix); |
69 | if( I.isNull() ) { | 75 | if( I.isNull() ) { |
70 | qWarning( "Could not load %s", pix.latin1() ); | 76 | qWarning( "Could not load %s", pix.latin1() ); |
71 | } else { | 77 | } else { |
72 | pm.convertFromImage(I); | 78 | pm.convertFromImage(I); |
73 | QPixmapCache::insert(key,pm); | 79 | QPixmapCache::insert(key,pm); |
74 | } | 80 | } |
81 | }else { | ||
82 | qWarning("In Cache for %s pixmap %s", qApp->argv()[0], pix.local8Bit().data() ); | ||
75 | } | 83 | } |
76 | return pm; | 84 | return pm; |
77 | } | 85 | } |
@@ -140,17 +148,20 @@ QString Resource::findPixmap( const QString &pix ) | |||
140 | if ( QFile( f ).exists() ) | 148 | if ( QFile( f ).exists() ) |
141 | return f; | 149 | return f; |
142 | 150 | ||
143 | // All formats... | 151 | if ( !qpe_fast_findPixmap ) { |
144 | QStringList exts = opie_imageExtensions(); | 152 | printf("Doing slow search for %s %s\n", qApp->argv()[0], pix.local8Bit().data() ); |
145 | for ( QStringList::ConstIterator it = exts.begin(); it!=exts.end(); ++it ) { | 153 | // All formats... |
146 | QString f = picsPath + pix + "." + *it; | 154 | QStringList exts = opie_imageExtensions(); |
147 | if ( QFile(f).exists() ) | 155 | for ( QStringList::ConstIterator it = exts.begin(); it!=exts.end(); ++it ) { |
148 | return f; | 156 | QString f = picsPath + pix + "." + *it; |
149 | } | 157 | if ( QFile(f).exists() ) |
158 | return f; | ||
159 | } | ||
150 | 160 | ||
151 | // Finally, no (or existing) extension... | 161 | // Finally, no (or existing) extension... |
152 | if ( QFile( picsPath + pix ).exists() ) | 162 | if ( QFile( picsPath + pix ).exists() ) |
153 | return picsPath + pix; | 163 | return picsPath + pix; |
164 | } | ||
154 | 165 | ||
155 | //qDebug("Cannot find pixmap: %s", pix.latin1()); | 166 | //qDebug("Cannot find pixmap: %s", pix.latin1()); |
156 | return QString(); | 167 | 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: | |||
42 | static QStringList allSounds(); | 42 | static QStringList allSounds(); |
43 | }; | 43 | }; |
44 | 44 | ||
45 | extern bool qpe_fast_findPixmap; | ||
45 | // Inline for compatibility with SHARP ROMs | 46 | // Inline for compatibility with SHARP ROMs |
46 | inline QIconSet Resource::loadIconSet( const QString &pix ) | 47 | inline QIconSet Resource::loadIconSet( const QString &pix ) |
47 | { | 48 | { |
49 | /* | ||
50 | * disable the slow load | ||
51 | */ | ||
52 | bool oldMode = qpe_fast_findPixmap; | ||
53 | qpe_fast_findPixmap = true; | ||
54 | |||
48 | QPixmap dpm = loadPixmap( pix + "_disabled" ); | 55 | QPixmap dpm = loadPixmap( pix + "_disabled" ); |
49 | QPixmap pm = loadPixmap( pix ); | 56 | QPixmap pm = loadPixmap( pix ); |
50 | QIconSet is( pm ); | 57 | QIconSet is( pm ); |
51 | if ( !dpm.isNull() ) | 58 | if ( !dpm.isNull() ) |
52 | is.setPixmap( dpm, pm.width() <= 22 ? QIconSet::Small : QIconSet::Large, QIconSet::Disabled ); | 59 | is.setPixmap( dpm, pm.width() <= 22 ? QIconSet::Small : QIconSet::Large, QIconSet::Disabled ); |
60 | |||
61 | qpe_fast_findPixmap = oldMode; | ||
53 | return is; | 62 | return is; |
54 | } | 63 | } |
55 | 64 | ||