summaryrefslogtreecommitdiff
path: root/library/resource.cpp
Side-by-side diff
Diffstat (limited to 'library/resource.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/resource.cpp33
1 files changed, 4 insertions, 29 deletions
diff --git a/library/resource.cpp b/library/resource.cpp
index 43fdc60..cfa0d26 100644
--- a/library/resource.cpp
+++ b/library/resource.cpp
@@ -17,125 +17,100 @@
** not clear to you.
**
**********************************************************************/
#define QTOPIA_INTERNAL_MIMEEXT
#include <qpe/qpeapplication.h>
#include "resource.h"
#include "mimetype.h"
#include <qdir.h>
#include <qpixmapcache.h>
// this namespace is just a workaround for a gcc bug
// gcc exports inline functions in the generated file
// inlinepics_p.h
namespace {
#include "inlinepics_p.h"
}
static bool g_notUseSet = ::getenv("OVERWRITE_ICON_SET");
/*!
\class Resource resource.h
\brief The Resource class provides access to named resources.
The resources may be provided from files or other sources.
The allSounds() function returns a list of all the sounds available.
A particular sound can be searched for using findSound().
Images can be loaded with loadImage(), loadPixmap(), loadBitmap()
and loadIconSet().
\ingroup qtopiaemb
*/
/*!
\fn Resource::Resource()
\internal
*/
/*!
Returns the QPixmap called \a pix. You should avoid including
any filename type extension (e.g. .png, .xpm).
*/
QPixmap Resource::loadPixmap( const QString &pix )
{
QPixmap pm;
-
- // Give the pixmaps some kind of namespace in the pixmapcache
- int index = pix.find('/');
- QString appName1 = qApp->argv()[0];
- appName1 = appName1.replace(QRegExp(".*/"),"");
- QString appName2 = pix.left(index);
-
- if ( appName2 == "" || appName2 == pix || appName2 == "icons" )
- appName2 = "Global";
-
- QString appKey1 = "_QPE_" + appName1 + "_" + pix;
- QString appKey2 = "_QPE_" + appName2 + "_" + pix.mid(index+1);
-
- if ( !QPixmapCache::find(appKey1, pm) ) {
- if ( !QPixmapCache::find(appKey2, pm) ) {
- QImage img;
- QString f = findPixmap( pix );
- if ( !f.isEmpty() ) {
- img.load(f);
- if ( !img.isNull() ) {
- pm.convertFromImage(img);
- if ( f.contains(appName1) ) {
- QPixmapCache::insert( appKey1, pm);
- } else {
- QPixmapCache::insert( appKey2, pm);
- }
- }
- }
- }
+ QString key="QPE_"+pix;
+ if ( !QPixmapCache::find(key,pm) ) {
+ pm.convertFromImage(loadImage(pix));
+ QPixmapCache::insert(key,pm);
}
return pm;
}
/*!
Returns the QBitmap called \a pix. You should avoid including
any filename type extension (e.g. .png, .xpm).
*/
QBitmap Resource::loadBitmap( const QString &pix )
{
QBitmap bm;
bm = loadPixmap(pix);
return bm;
}
/*!
Returns the filename of a pixmap called \a pix. You should avoid including
any filename type extension (e.g. .png, .xpm).
Normally you will use loadPixmap() rather than this function.
*/
QString Resource::findPixmap( const QString &pix )
{
QString picsPath = QPEApplication::qpeDir() + "pics/";
QString f;
// 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...
QStrList fileFormats = QImageIO::inputFormats();
QString ff = fileFormats.first();
while ( fileFormats.current() ) {
QStringList exts = MimeType("image/"+ff.lower()).extensions();
for ( QStringList::ConstIterator it = exts.begin(); it!=exts.end(); ++it ) {
QString f = picsPath + pix + "." + *it;
if ( QFile(f).exists() )
return f;
}
ff = fileFormats.next();
}