diff options
author | Eike Ziller <eike.ziller@theqtcompany.com> | 2015-01-29 15:26:00 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@theqtcompany.com> | 2015-02-17 12:41:01 +0000 |
commit | 013e10fda8bc65281df32fc1fda7886b79dd394a (patch) | |
tree | c8d2ccd8df54510916a69c4d406baa344f80c63b /src | |
parent | b4f494f6c72a86d8ecb45c6a74e4c64412c3166a (diff) | |
download | qt-creator-013e10fda8bc65281df32fc1fda7886b79dd394a.tar.gz |
MimeDatabase: Add allGlobPatterns and allFiltersString
Change-Id: I255d1ef3140b220de9bdc279788abf3fecb16af9
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/utils/mimetypes/mimedatabase.cpp | 33 | ||||
-rw-r--r-- | src/libs/utils/mimetypes/mimedatabase.h | 2 |
2 files changed, 35 insertions, 0 deletions
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 <QtCore/QCoreApplication> #include <QtCore/QFile> #include <QtCore/QFileInfo> #include <QtCore/QSet> @@ -51,6 +52,8 @@ #include <algorithm> #include <functional> +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<QString> 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; |