forked from qt-creator/qt-creator
Add a "All Projects" Filter to the Load Project dialog
This commit is contained in:
@@ -455,7 +455,7 @@ bool MimeType::setPreferredSuffix(const QString &s)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static QString formatFilterString(const QString &description, const QList<QRegExp> &globs)
|
QString MimeType::formatFilterString(const QString &description, const QList<QRegExp> &globs)
|
||||||
{
|
{
|
||||||
QString rc;
|
QString rc;
|
||||||
if (globs.empty()) // Binary files
|
if (globs.empty()) // Binary files
|
||||||
|
@@ -176,6 +176,8 @@ public:
|
|||||||
|
|
||||||
friend QDebug operator<<(QDebug d, const MimeType &mt);
|
friend QDebug operator<<(QDebug d, const MimeType &mt);
|
||||||
|
|
||||||
|
static QString formatFilterString(const QString &description, const QList<QRegExp> &globs);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit MimeType(const MimeTypeData &d);
|
explicit MimeType(const MimeTypeData &d);
|
||||||
unsigned matchesFileBySuffix(Internal::FileMatchContext &c) const;
|
unsigned matchesFileBySuffix(Internal::FileMatchContext &c) const;
|
||||||
|
@@ -87,6 +87,8 @@ QList<ProjectFileFactory *> ProjectFileFactory::createFactories(QString *filterS
|
|||||||
QList<IProjectManager*> projectManagers =
|
QList<IProjectManager*> projectManagers =
|
||||||
ExtensionSystem::PluginManager::instance()->getObjects<IProjectManager>();
|
ExtensionSystem::PluginManager::instance()->getObjects<IProjectManager>();
|
||||||
|
|
||||||
|
QList<QRegExp> allGlobPatterns;
|
||||||
|
|
||||||
const QString filterSeparator = QLatin1String(";;");
|
const QString filterSeparator = QLatin1String(";;");
|
||||||
filterString->clear();
|
filterString->clear();
|
||||||
foreach (IProjectManager *manager, projectManagers) {
|
foreach (IProjectManager *manager, projectManagers) {
|
||||||
@@ -94,8 +96,13 @@ QList<ProjectFileFactory *> ProjectFileFactory::createFactories(QString *filterS
|
|||||||
if (!filterString->isEmpty())
|
if (!filterString->isEmpty())
|
||||||
*filterString += filterSeparator;
|
*filterString += filterSeparator;
|
||||||
const QString mimeType = manager->mimeType();
|
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;
|
*filterString += pFilterString;
|
||||||
}
|
}
|
||||||
|
QString allProjectFilter = Core::MimeType::formatFilterString(tr("All Projects"), allGlobPatterns);
|
||||||
|
allProjectFilter.append(filterSeparator);
|
||||||
|
filterString->prepend(allProjectFilter);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user