MimeDatabase: Add allGlobPatterns and allFiltersString

Change-Id: I255d1ef3140b220de9bdc279788abf3fecb16af9
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
This commit is contained in:
Eike Ziller
2015-01-29 15:26:00 +01:00
parent b4f494f6c7
commit 013e10fda8
2 changed files with 35 additions and 0 deletions

View File

@@ -40,6 +40,7 @@
#include "mimeprovider_p.h" #include "mimeprovider_p.h"
#include "mimetype_p.h" #include "mimetype_p.h"
#include <QtCore/QCoreApplication>
#include <QtCore/QFile> #include <QtCore/QFile>
#include <QtCore/QFileInfo> #include <QtCore/QFileInfo>
#include <QtCore/QSet> #include <QtCore/QSet>
@@ -51,6 +52,8 @@
#include <algorithm> #include <algorithm>
#include <functional> #include <functional>
static const char ALL_FILES_FILTER[] = QT_TRANSLATE_NOOP("Core", "All Files (*)");
using namespace Utils; using namespace Utils;
using namespace Utils::Internal; using namespace Utils::Internal;
@@ -311,6 +314,36 @@ void MimeDatabase::addMimeTypes(const QString &fileName)
xmlProvider->addFile(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; \fn MimeType MimeDatabase::mimeTypeForName(const QString &nameOrAlias) const;
Returns a MIME type for \a nameOrAlias or an invalid one if none found. Returns a MIME type for \a nameOrAlias or an invalid one if none found.

View File

@@ -84,6 +84,8 @@ public:
// Qt Creator additions // Qt Creator additions
static void addMimeTypes(const QString &fileName); static void addMimeTypes(const QString &fileName);
static QString allFiltersString(QString *allFilesFilter = 0);
static QStringList allGlobPatterns();
private: private:
Internal::MimeDatabasePrivate *d; Internal::MimeDatabasePrivate *d;