diff options
Diffstat (limited to 'src/corelib/mimetypes/qmimedatabase_p.h')
-rw-r--r-- | src/corelib/mimetypes/qmimedatabase_p.h | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/src/corelib/mimetypes/qmimedatabase_p.h b/src/corelib/mimetypes/qmimedatabase_p.h index 3f63f5f103..1c38f46115 100644 --- a/src/corelib/mimetypes/qmimedatabase_p.h +++ b/src/corelib/mimetypes/qmimedatabase_p.h @@ -59,7 +59,9 @@ #include "qmimetype_p.h" #include "qmimeglobpattern_p.h" +#include <QtCore/qelapsedtimer.h> #include <QtCore/qmutex.h> +#include <QtCore/qvector.h> QT_BEGIN_NAMESPACE @@ -77,22 +79,37 @@ 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); QList<QMimeType> allMimeTypes(); - + QString resolveAlias(const QString &nameOrAlias); + QStringList parents(const QString &mimeName); QMimeType mimeTypeForName(const QString &nameOrAlias); 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 mimeParents(const QString &mimeName); + QStringList listAliases(const QString &mimeName); + bool mimeInherits(const QString &mime, const QString &parent); - mutable QMimeProviderBase *m_provider; +private: + QVector<QMimeProviderBase *> providers(); + bool shouldCheck(); + void loadProviders(); + + mutable QVector<QMimeProviderBase *> m_providers; + QElapsedTimer m_lastCheck; + +public: const QString m_defaultMimeType; QMutex mutex; }; |