diff --git a/src/plugins/coreplugin/mimedatabase.cpp b/src/plugins/coreplugin/mimedatabase.cpp index ea92354a357c23e18995316a1f16997cb8e0e412..b98f010d39fe2d22e97a43976c607e9d0edfafd5 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<QRegExp> &globs) +QString MimeType::formatFilterString(const QString &description, const QList<QRegExp> &globs) { QString rc; if (globs.empty()) // Binary files diff --git a/src/plugins/coreplugin/mimedatabase.h b/src/plugins/coreplugin/mimedatabase.h index 13a9d3a370f6090893a4d09ff2f25388794fb69d..751447f6d89ebf57cabf7d01e55a38a311ecae81 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<QRegExp> &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 a6c5961e819165548069c66225bbe91136e0eac5..c8bfe397ca64e07dc1cb2e59fb8211c35de863b2 100644 --- a/src/plugins/projectexplorer/pluginfilefactory.cpp +++ b/src/plugins/projectexplorer/pluginfilefactory.cpp @@ -87,6 +87,8 @@ QList<ProjectFileFactory *> ProjectFileFactory::createFactories(QString *filterS QList<IProjectManager*> projectManagers = ExtensionSystem::PluginManager::instance()->getObjects<IProjectManager>(); + QList<QRegExp> allGlobPatterns; + const QString filterSeparator = QLatin1String(";;"); filterString->clear(); foreach (IProjectManager *manager, projectManagers) { @@ -94,8 +96,13 @@ QList<ProjectFileFactory *> 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; }