summaryrefslogtreecommitdiff
path: root/library/mimetype.cpp
Side-by-side diff
Diffstat (limited to 'library/mimetype.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/mimetype.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/library/mimetype.cpp b/library/mimetype.cpp
index c6a4453..9fab160 100644
--- a/library/mimetype.cpp
+++ b/library/mimetype.cpp
@@ -19,4 +19,5 @@
**********************************************************************/
+#define QTOPIA_INTERNAL_MIMEEXT
#include "mimetype.h"
#include "applnk.h"
@@ -47,4 +48,5 @@ public:
}
QString id;
+ QString extension;
QString desc;
QPixmap regIcon;
@@ -60,4 +62,5 @@ public:
MimeType::Dict* MimeType::d=0;
static QMap<QString,QString> *typeFor = 0;
+static QMap<QString,QString> *extFor = 0;
MimeType::Dict& MimeType::dict()
@@ -97,4 +100,10 @@ QPixmap MimeType::pixmap() const
}
+QString MimeType::extension() const
+{
+ loadExtensions();
+ return *(*extFor).find(i);
+}
+
QPixmap MimeType::bigPixmap() const
{
@@ -129,4 +138,5 @@ void MimeType::loadExtensions()
{
if ( !typeFor ) {
+ extFor = new QMap<QString,QString>;
typeFor = new QMap<QString,QString>;
loadExtensions("/etc/mime.types");
@@ -146,7 +156,10 @@ void MimeType::loadExtensions(const QString& filename)
if ( it != tokens.end() ) {
QString id = *it; ++it;
- while (it != tokens.end()) {
- (*typeFor)[*it] = id;
- ++it;
+ if ( it != tokens.end() ) {
+ (*extFor)[id] = *it;
+ while (it != tokens.end()) {
+ (*typeFor)[*it] = id;
+ ++it;
+ }
}
}