summaryrefslogtreecommitdiffstats
path: root/src/corelib/mimetypes/qmimedatabase_p.h
diff options
context:
space:
mode:
authorDavid Faure <david.faure@kdab.com>2017-10-08 21:20:24 +0200
committerDavid Faure <david.faure@kdab.com>2017-11-30 12:54:43 +0000
commit916266a7b3538c3d31abe245ee84e691934fab40 (patch)
tree272d3ab9561c91bfa9c43089a1aa872d9c87a886 /src/corelib/mimetypes/qmimedatabase_p.h
parent2c062546a21edc68ded82b7b852df3c993d332e0 (diff)
QMimeDatabase: ensure mutex is locked in provider()
This wasn't the case when called from QMimeType, or some QMimeDatabase methods. Now fixed. Change-Id: Ifd515c1520482e4a23c399f1f773269659c92359 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/mimetypes/qmimedatabase_p.h')
-rw-r--r--src/corelib/mimetypes/qmimedatabase_p.h17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/corelib/mimetypes/qmimedatabase_p.h b/src/corelib/mimetypes/qmimedatabase_p.h
index 3f63f5f103..5dfcf31237 100644
--- a/src/corelib/mimetypes/qmimedatabase_p.h
+++ b/src/corelib/mimetypes/qmimedatabase_p.h
@@ -77,9 +77,6 @@ public:
static QMimeDatabasePrivate *instance();
- QMimeProviderBase *provider();
- void setProvider(QMimeProviderBase *theProvider);
-
inline QString defaultMimeType() const { return m_defaultMimeType; }
bool inherits(const QString &mime, const QString &parent);
@@ -91,8 +88,22 @@ public:
QMimeType mimeTypeForFileNameAndData(const QString &fileName, QIODevice *device, int *priorityPtr);
QMimeType findByData(const QByteArray &data, int *priorityPtr);
QStringList mimeTypeForFileName(const QString &fileName);
+ QMimeGlobMatchResult findByFileName(const QString &fileName);
+
+ // API for QMimeType. Takes care of locking the mutex.
+ void loadMimeTypePrivate(QMimeTypePrivate &mimePrivate);
+ void loadGenericIcon(QMimeTypePrivate &mimePrivate);
+ void loadIcon(QMimeTypePrivate &mimePrivate);
+ QStringList parents(const QString &mimeName);
+ QStringList listAliases(const QString &mimeName);
+ bool mimeInherits(const QString &mime, const QString &parent);
+
+private:
+ QMimeProviderBase *provider();
mutable QMimeProviderBase *m_provider;
+
+public:
const QString m_defaultMimeType;
QMutex mutex;
};