summaryrefslogtreecommitdiff
path: root/library/mimetype.cpp
Side-by-side diff
Diffstat (limited to 'library/mimetype.cpp') (more/less context) (show whitespace changes)
-rw-r--r--library/mimetype.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/library/mimetype.cpp b/library/mimetype.cpp
index 23de70b..ec45794 100644
--- a/library/mimetype.cpp
+++ b/library/mimetype.cpp
@@ -110,8 +110,9 @@ public:
MimeType::Private* MimeType::d=0;
static QMap<QString,QString> *typeFor = 0;
static QMap<QString,QStringList> *extFor = 0;
+static bool appsUpdated = FALSE;
MimeType::Private& MimeType::data()
{
if ( !d ) {
@@ -270,8 +271,11 @@ void MimeType::registerApp( const AppLnk& lnk )
void MimeType::clear()
{
delete d;
d = 0;
+ delete typeFor; typeFor = 0;
+ delete extFor ; extFor = 0;
+ appsUpdated = FALSE;
}
void MimeType::loadExtensions()
{
@@ -321,11 +325,10 @@ void MimeType::init( const QString& ext_or_id )
i = (*typeFor)[ext.lower()];
if ( i.isNull() )
i = "application/octet-stream";
}
- static bool appsUpdated = FALSE;
+
if ( !appsUpdated ) {
- appsUpdated = TRUE;
updateApplications();
}
}
@@ -352,9 +355,10 @@ QString MimeType::appsFolderName()
Reloads application definitions.
*/
void MimeType::updateApplications()
{
- clear();
+// clear();
+ appsUpdated = true;
AppLnkSet apps( appsFolderName() );
updateApplications(&apps);
}