From 21500d384dbe007e84133096af2877c56a63f09b Mon Sep 17 00:00:00 2001 From: Daniel Teske <daniel.teske@digia.com> Date: Thu, 17 Jul 2014 14:25:04 +0200 Subject: [PATCH] ProjectExplorerPlugin: Use one factory for all project managers Change-Id: Ie2204cd82bf8e060136fd28098cce5affac2cbde Reviewed-by: hjk <hjk121@nokiamail.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com> --- .../projectexplorer/projectexplorer.cpp | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 693f59ae79d..ba34773a702 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -1220,26 +1220,29 @@ void ProjectExplorerPlugin::extensionsInitialized() const QString filterSeparator = QLatin1String(";;"); QStringList filterStrings; + + auto factory = new IDocumentFactory; + factory->setOpener([this](const QString &fileName) -> IDocument* { + QString errorMessage; + ProjectExplorerPlugin::instance()->openProject(fileName, &errorMessage); + if (!errorMessage.isEmpty()) + QMessageBox::critical(Core::ICore::mainWindow(), + tr("Failed to open project"), errorMessage); + return 0; + }); + foreach (IProjectManager *manager, projectManagers) { - auto factory = new IDocumentFactory; - factory->addMimeType(manager->mimeType()); - factory->setOpener([this](const QString &fileName) -> IDocument* { - QString errorMessage; - ProjectExplorerPlugin::instance()->openProject(fileName, &errorMessage); - if (!errorMessage.isEmpty()) - QMessageBox::critical(Core::ICore::mainWindow(), - tr("Failed to open project"), errorMessage); - return 0; - }); const QString mimeType = manager->mimeType(); + factory->addMimeType(mimeType); MimeType mime = MimeDatabase::findByType(mimeType); allGlobPatterns.append(mime.globPatterns()); filterStrings.append(mime.filterString()); - d->m_profileMimeTypes += factory->mimeTypes(); - addAutoReleasedObject(factory); + d->m_profileMimeTypes += mimeType; } + addAutoReleasedObject(factory); + filterStrings.prepend(MimeType::formatFilterString( tr("All Projects"), allGlobPatterns)); d->m_projectFilterString = filterStrings.join(filterSeparator); -- GitLab