From 013e10fda8bc65281df32fc1fda7886b79dd394a Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 29 Jan 2015 15:26:00 +0100 Subject: MimeDatabase: Add allGlobPatterns and allFiltersString Change-Id: I255d1ef3140b220de9bdc279788abf3fecb16af9 Reviewed-by: David Schulz --- src/libs/utils/mimetypes/mimedatabase.cpp | 33 +++++++++++++++++++++++++++++++ src/libs/utils/mimetypes/mimedatabase.h | 2 ++ 2 files changed, 35 insertions(+) (limited to 'src') diff --git a/src/libs/utils/mimetypes/mimedatabase.cpp b/src/libs/utils/mimetypes/mimedatabase.cpp index f10fe8a1be..5db9eb89cd 100644 --- a/src/libs/utils/mimetypes/mimedatabase.cpp +++ b/src/libs/utils/mimetypes/mimedatabase.cpp @@ -40,6 +40,7 @@ #include "mimeprovider_p.h" #include "mimetype_p.h" +#include #include #include #include @@ -51,6 +52,8 @@ #include #include +static const char ALL_FILES_FILTER[] = QT_TRANSLATE_NOOP("Core", "All Files (*)"); + using namespace Utils; using namespace Utils::Internal; @@ -311,6 +314,36 @@ void MimeDatabase::addMimeTypes(const QString &fileName) xmlProvider->addFile(fileName); } +QString MimeDatabase::allFiltersString(QString *allFilesFilter) +{ + MimeDatabase mdb; + QSet uniqueFilters; + foreach (const MimeType &mt, mdb.allMimeTypes()) + uniqueFilters.insert(mt.filterString()); + QStringList filters; + foreach (const QString &filter, uniqueFilters) + filters.append(filter); + filters.sort(); + static const QString allFiles = + QCoreApplication::translate("Core", ALL_FILES_FILTER); + if (allFilesFilter) + *allFilesFilter = allFiles; + + // Prepend all files filter + filters.prepend(allFiles); + + return filters.join(QLatin1String(";;")); +} + +QStringList MimeDatabase::allGlobPatterns() +{ + MimeDatabase mdb; + QStringList patterns; + foreach (const MimeType &mt, mdb.allMimeTypes()) + patterns.append(mt.globPatterns()); + return patterns; +} + /*! \fn MimeType MimeDatabase::mimeTypeForName(const QString &nameOrAlias) const; Returns a MIME type for \a nameOrAlias or an invalid one if none found. diff --git a/src/libs/utils/mimetypes/mimedatabase.h b/src/libs/utils/mimetypes/mimedatabase.h index 71d43041e1..e760cb69fd 100644 --- a/src/libs/utils/mimetypes/mimedatabase.h +++ b/src/libs/utils/mimetypes/mimedatabase.h @@ -84,6 +84,8 @@ public: // Qt Creator additions static void addMimeTypes(const QString &fileName); + static QString allFiltersString(QString *allFilesFilter = 0); + static QStringList allGlobPatterns(); private: Internal::MimeDatabasePrivate *d; -- cgit v1.2.1