diff --git a/src/plugins/coreplugin/mimedatabase.cpp b/src/plugins/coreplugin/mimedatabase.cpp index ea92354a357..b98f010d39f 100644 --- a/src/plugins/coreplugin/mimedatabase.cpp +++ b/src/plugins/coreplugin/mimedatabase.cpp @@ -455,7 +455,7 @@ bool MimeType::setPreferredSuffix(const QString &s) return true; } -static QString formatFilterString(const QString &description, const QList &globs) +QString MimeType::formatFilterString(const QString &description, const QList &globs) { QString rc; if (globs.empty()) // Binary files diff --git a/src/plugins/coreplugin/mimedatabase.h b/src/plugins/coreplugin/mimedatabase.h index 13a9d3a370f..751447f6d89 100644 --- a/src/plugins/coreplugin/mimedatabase.h +++ b/src/plugins/coreplugin/mimedatabase.h @@ -176,6 +176,8 @@ public: friend QDebug operator<<(QDebug d, const MimeType &mt); + static QString formatFilterString(const QString &description, const QList &globs); + private: explicit MimeType(const MimeTypeData &d); unsigned matchesFileBySuffix(Internal::FileMatchContext &c) const; diff --git a/src/plugins/projectexplorer/pluginfilefactory.cpp b/src/plugins/projectexplorer/pluginfilefactory.cpp index a6c5961e819..c8bfe397ca6 100644 --- a/src/plugins/projectexplorer/pluginfilefactory.cpp +++ b/src/plugins/projectexplorer/pluginfilefactory.cpp @@ -87,6 +87,8 @@ QList ProjectFileFactory::createFactories(QString *filterS QList projectManagers = ExtensionSystem::PluginManager::instance()->getObjects(); + QList allGlobPatterns; + const QString filterSeparator = QLatin1String(";;"); filterString->clear(); foreach (IProjectManager *manager, projectManagers) { @@ -94,8 +96,13 @@ QList ProjectFileFactory::createFactories(QString *filterS if (!filterString->isEmpty()) *filterString += filterSeparator; const QString mimeType = manager->mimeType(); - const QString pFilterString = Core::ICore::instance()->mimeDatabase()->findByType(mimeType).filterString(); + Core::MimeType mime = Core::ICore::instance()->mimeDatabase()->findByType(mimeType); + const QString pFilterString = mime.filterString(); + allGlobPatterns.append(mime.globPatterns()); *filterString += pFilterString; } + QString allProjectFilter = Core::MimeType::formatFilterString(tr("All Projects"), allGlobPatterns); + allProjectFilter.append(filterSeparator); + filterString->prepend(allProjectFilter); return rc; }